Ich verwende einen PIC18F14K50 und einen RS485-Bus-Transceiver ( ADM3485 ), um mit einem Modbus-RTU-Sensornetzwerk zu kommunizieren. Die Platine wurde nicht von mir entworfen (und sie hat ein sehr dummes/kompaktes Design, so dass es sehr schwer zu debuggen oder zu untersuchen ist) und es scheint lästig zu sein. Abgesehen davon hat der PIC18F14K50 selbst keine Debugging-Fähigkeit.
Das Problem ist, dass, während der Logikanalysator angeschlossen ist, um die RS485-Signale zu überwachen, das Gerät gut funktioniert, aber wenn ich die Sonden abtrenne, wird es nicht.
Einige Hinweise:
Der vom Designer bereitgestellte Teil des Schaltplans:
Die uart-Bibliothek setzt die IO wie folgt:
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;
}
Es hört sich nach einem Gleichtaktspannungsproblem an, es sei denn, bei der Terminierung ist etwas schief gelaufen.
Verdrahten Sie die Erdung der verbundenen Knoten und versuchen Sie es dann ohne 120R und 150R in einem Abstand von weniger als 1 m.
Nur ich
TimWescott
brhans
Tirdad Sadri Nejad
Tirdad Sadri Nejad
brhans
TimWescott