No hay datos de XPORT (- USART) a TELNET

0

aficionados y estudiantes,

[TL: DR]: ¿No puedo enviar (uart) caracteres de mi PIC a través de mi puerto xport a mi conexión telnet (y no puedo recibir)?

[Software◆

  • IDL MBLAB X
  • Lantronix DeviceInstaller
  • compilador XC8

[Hardware◆

  • MCU: PIC PIC18F66K22
  • Lantronix: XPORT XP1001000-05R (Rev. A11)
  • PICkit 3: Programador
  • PC (con Lantronix DeviceInstaller)
  • Interruptor

[Pasos exitosos]

  • Puedo ver el XPORT en el instalador del dispositivo y puedo conectarme con Telnet ...
  • Al conectarme con Telnet obtendré un modo de configuración. Pero puedo ir al modo de monitor presionando 'M'
  • Puedo enviar 'comandos' para verificar su versión en modo Monitor (telnet)
  • Tengo un botón (probado con led) que ejecuta xportSend ('A'); (También probé Write2USART ('A') en la prensa.
  • Tanto xportEnable () como xportSetup () se llaman en mi main.
  • Las luces de comunicación XPORT parpadearán cuando se envíen a través de telnet

Estoy usando el segundo puerto de usuario de mi PIC con la configuración predeterminada de xport

#include <usart.h>
#include "xport.h"
#include "defines.h"

/* XPORT DEFAULTS:
 Baud:      9600
 Databits:  8
 Parity:    none
 Stop bits: 1*/

void xportSetup(void){
    BAUDCON2 = 1;
    RCSTA2bits.SPEN = 1;
    TRISGbits.TRISG2 = 1;
    TRISGbits.TRISG1 = 0;
    Open2USART(         USART_TX_INT_OFF  &         // Transmit Interrupt OFF
                        USART_RX_INT_OFF  &         // Receive Interrupt ON
                        USART_ASYNCH_MODE &         // Asynchronous Mode
                        USART_EIGHT_BIT   &         // 8-bit Transmit/Receive
                        USART_CONT_RX     &         // Continuous Reception
                        USART_BRGH_HIGH,            // High Baud Rate
                        (64E6 / 9600 / 16 - 1)      // Baud Rate 9600
               );
                        //http://www.microchip.com/forums/FindPost/836738
}

void xportEnable(void){
    LDO_SHDN = true;
    XRESET = true;
}

void xportSend(char data){
    Write2USART(data);
}
char xportReceive(void){
    return Read2USART();
}
  • [SOLUCIONADO, sí xport es compatible con PIC, vea el enlace a continuación] Pregunta uno: ¿Es el hardware directamente compatible? He escuchado que el XPORT usa 3,3V y el PIC RX / TX al menos necesita 4V (disparador Schmitt) (basado en 5V). enlace

  • Pregunta dos: ¿Estoy usando la configuración correcta para recibir mensajes de uart (Telnet en modo monitor (puerto 9999))? También probé TELNET con el puerto 10001, pero tampoco mostró nada.

  • Pregunta tres: ¿Algo más podría estar mal en esta interfaz?

Creo que estas preguntas son bastante fáciles de responder, aunque no he encontrado una fuente confiable en mi búsqueda de Google. No estoy tan interesado en el código, debería poder manejarlo yo mismo (si solo describe qué hacer) pero creo que podría haber algún problema con mi configuración de USART (también). (Como muchas cosas pueden / pueden estar equivocadas también). Espero que algunos de ustedes con más experiencia con el XPORT o la electrónica me puedan iluminar.

Saludos cordiales,

FuaZe Estudiante en la universidad de ciencias aplicadas HAN (Países Bajos)

    
pregunta Paul

2 respuestas

1

¿Conectó el X-port RX (Data IN) a PIC TX? El XPORT no puede tolerar señales de 5V. Debe conectarse al puerto 10001 (puente UART predeterminado) y no al puerto de configuración.

Editar: Algunas aclaraciones.

    
respondido por el Lior Bilia
1

BAUDCON2 = 1;

Este ingenioso fragmento de código se coló, en la etapa inicial de configuración del código. Se supone que es la detección de velocidad de transmisión automática. Más tarde me di cuenta de que sería mejor establecer una velocidad en baudios. El USART no funcionaría antes de que se completara la detección de velocidad de transmisión automática.

Gracias por la ayuda del puerto 10001, parece que es compatible con 5v.

Sin embargo, obtuve un carácter realmente extraño en el primer intento, pero esa sería mi velocidad en baudios no siendo la correcta.

    
respondido por el Paul

Lea otras preguntas en las etiquetas