Hello!
I am using a ODrive V3.6 24V with firmware v0.5.5, bought from the official ODrive store. I want to control the ODrive with an Arduino over UART A (GPIO 1 and GPIO 2) but I am having trouble with reliable communication over higher baud rates. The setup works well at 9600, 38400 and even 74880 bauds, but if I go higher to 115200, I notice that the packets are not received well by the Arduino. For my application, I need the serial communincation to be as quick as possible, so higher baud rates are needed.
Upon further inspection, it seems to me that the ODrive is unable to drive its TX line very well. Is the GPIO configured as Open Drain?
This is the Arduino driving its TX line, rise time is about 36 ns:
But for the ODrive, the rise time on its TX line is about 1480 ns or 1.480 us:
The whole packet from the ODrive to the Arduino appears sluggish:
I looked through the ODrive Firmware but I am having a hard time tracking down the configuration for UART GPIO 1 and GPIO 2, could it be that they are not set as push-pull? If they are set as push-pull, is there anything I could do to help with the rise time? Adding a pullup resistor does not work as it raises the signal low level too.
Thank you for any help!