I'm trying to implement a half-duplex 1Mbps RS485 bus (1 master controlling ~8 motors). After facing occasional communication errors I've invested in a Saleae logic 4.
The RS485 A/B lines probed directly give this output.
(that framing error at the end doesn't seem to hurt, so I'll ignore it for now) and here is the TX line (GND referenced) of a single packet being sent from the master
I am noticing that the slew rates are quite slow (not to mention the ringing). I am using CAT5 cables, total length at the time of this test was ~5 feet, connecting master and 4 slaves.
I am using the SP3485EN transceiver (RX/TX connected directly to microcontroller USART pins). There is a 220 ohm termination resistor (between A and B) that is populated at the master at the moment, and I've tried adding and removing the 220ohm at the other end (on the last slave) but it doesn't seem to make any difference. (I tried to add a schematic but need 10 reputation to post more than 3 images)
Is there any advice on how to improve the slew rates? My guess at the moment is that my communication errors are caused by the digital signals being so non-square. I am using STM32F3 microcontrollers with the USART configured at 50MHz speed.
Are there passives that could be added before the transceiver? After the transceiver? Should I be using a different transceiver?
I just chose to answer to add an image of a scope readout of the TX transmission above, and as everyone suggested, these are very square looking, and the lower frequencies are because of the saleae's sampling. Thanks for the help! I will move on to debugging the firmware.