ARQuattr
Member level 2
I have a board with a PIC18F46K22 on it, and one of its UART ports is fed to a MAX13430 RS-485 half-duplex transceiver to communicate with other identical boards on a multi-drop network. There are bias resistors on the lines, and the bus is running at 5V, 9600 baud.
For the most part the communications work well. All nodes keep the receiver on always, and the 'sending' node enables the transmitter just before sending a message. The protocol is set up to avoid collisions. Messages sent from the sending node appear properly on the bus and are received OK by the other nodes, except for at the very end of the packet. Just before disabling the transmitter driver (or perhaps it's happening as the driver is being disabled), there is a brief pulse which is seen as a start bit for a new character. The receivers see this as 0xFF. I have adjusted the protocol to filter out this last character, but I would like to know if this is normal or if I should be trying to figure out the reason and fix it.
I have attached a couple of logic probe captures I took at the end of the packet showing what I mean. The last byte was 0x20, and you can see the transmitter driver is then disabled. But then after the expected stop bit (differential A high, B low = high level at the receiving node's single-ended UART RX pin), the signals both invert (A low, B high = UART RX low), and then return to the normal idle state (A high, B low = UART RX high) after the transmitter is fully disabled. The second capture is just a close-up of the same pulse.
What could be causing that short pulse?
Thanks,
Angelo
For the most part the communications work well. All nodes keep the receiver on always, and the 'sending' node enables the transmitter just before sending a message. The protocol is set up to avoid collisions. Messages sent from the sending node appear properly on the bus and are received OK by the other nodes, except for at the very end of the packet. Just before disabling the transmitter driver (or perhaps it's happening as the driver is being disabled), there is a brief pulse which is seen as a start bit for a new character. The receivers see this as 0xFF. I have adjusted the protocol to filter out this last character, but I would like to know if this is normal or if I should be trying to figure out the reason and fix it.
I have attached a couple of logic probe captures I took at the end of the packet showing what I mean. The last byte was 0x20, and you can see the transmitter driver is then disabled. But then after the expected stop bit (differential A high, B low = high level at the receiving node's single-ended UART RX pin), the signals both invert (A low, B high = UART RX low), and then return to the normal idle state (A high, B low = UART RX high) after the transmitter is fully disabled. The second capture is just a close-up of the same pulse.
What could be causing that short pulse?
Thanks,
Angelo