10-19-2023 01:14 PM
WE ARE TALKING!
We reversed the polarity on the receive line and we are now reading exactly 86 bytes with the proper start character. Thank you guys so much for your help and ideas. I've learned a lot about how the byte level works, including how to read it with a voltmeter. I didn't realize that the sending wires would be a constant 3.3v and only go low for 0s and stop bytes.
10-19-2023 01:54 PM
@Furbs wrote:
I've learned a lot about how the byte level works, including how to read it with a voltmeter. I didn't realize that the sending wires would be a constant 3.3v and only go low for 0s and stop bytes.
You should be looking at both the + and - lines on an oscilloscope. You will see a lot more. But more importantly, RS-422 requires that the + side be higher than the - to cause a TRUE bit. That is the point of a differential signal. Per UART, the normal state is a TRUE (+ is high, - is low). A Start bit is when the signal results in a FALSE (+ is low, - is high) and then the data is sent for the rest of the byte (number of bits and parity set the number of bits sent to get the byte).
Just wait until you get a device that nobody knows what the baud rate is and you have to somehow talk to it. Out comes the oscilloscope. If you have a good one, it can decode the UART signal for you. I did not have a good oscilloscope, so I had to measure the bit widths and figure out the baud rate along with all of the other settings.
10-19-2023 01:56 PM
@Furbs wrote:
WE ARE TALKING!
We reversed the polarity on the receive line and we are now reading exactly 86 bytes with the proper start character. Thank you guys so much for your help and ideas. I've learned a lot about how the byte level works, including how to read it with a voltmeter. I didn't realize that the sending wires would be a constant 3.3v and only go low for 0s and stop bytes.
RS-485 is a differential signal, so the voltage level respect to ground is not at important as the differential voltage between A and B.