Estoy usando un PIC18F14K50 y un transceptor de bus RS485 ( ADM3485 ) para comunicarme con una red de sensores Modbus RTU. la PCB no está diseñada por mí (y tiene un diseño muy tonto/compacto, por lo que es muy difícil de depurar o sondear) y parece problemático. aparte de eso, el PIC18F14K50 no tiene capacidad de depuración por sí solo.
El problema es que mientras el analizador lógico está conectado para monitorear las señales RS485, el dispositivo funciona bien, pero cuando desconecto las sondas, no lo hace.
Algunas pistas:
La parte del esquema proporcionada por el diseñador:
La biblioteca uart establece el IO de esta manera:
ANSELHbits.ANS11 = 0; //disable the analog input on RX
void uart_init(uint32_t sysCLK, uint32_t baudRate)
{
uint16_t baudTemp = (sysCLK/(64*baudRate))-1;
SPBRGH1_REG = (uint8_t)(baudTemp>>8);
SPBRG1_REG = (uint8_t)(baudTemp);
TXSTA1bits.SYNC = 0;
RX1_INPUT;
DISABLE_ANSEL_RX1;
TXSTA1bits.TXEN = 1;
RCSTA1bits.CREN = 1;
RCSTA1bits.SPEN = 1;
}
Suena como un problema de voltaje de modo común, a menos que algo haya salido mal con la terminación.
Cablee las conexiones a tierra de los nodos conectados, luego intente sin 120R y 150R, a menos de 1 m de distancia.
Sólo yo
Tim Wescott
brahans
Tirdad Sadri Nejad
Tirdad Sadri Nejad
brahans
Tim Wescott