Arduino RP2040 and UART to TMC2208

I am trying to drive a stepper motor from an Arduino RP2040 using a TMC2208 driver. The datasheet recommends connecting the UART of the driver to the RX line and to add a 1kOhm resistor between the RX and TX lines.

When I write to the serial output, I do see the TX pin change properly from 0 to 3.3V, but the RX pin "only" changes between 1.8V and 3.3V. I assume this is because of a pull up resistor on the RX line? I'm looking for recommendations on what to change to get the system working.

That implies you are trying to TX when the TMC2208 is in TX mode or not being configured for UART interface?

You saw this in the datasheet?

When using the UARTinterface, the configuration pin should be disabled via GCONF.pdn_disable= 1.

Thank you for your help!

Turns out I think this is due to the rest of my circuit somehow. I have the same issue if I remove the TMC2208 chip altogether, but the issue goes away if I just put a 1kOhm resistor between RX and TX on the arduino and nothing else.

It has to have something to do with the U74HC4053 multiplexer I use to "split" the RX channel between the three TMC2208 I want to drive.

This is the schematic I'm using, the RX_00, RX_01 and RX_1X pins are in practice floating in my testing because I removed the TMC2208 module (otherwise they'd be connected to the module). I am getting the same result regardless of the value of the digital pins 14 and 15

OK, I think I figured out where I messed up. Vee in the multiplexer should have been ground, not Vcc...

Which is why we ask you post the whole circuit, and the whole code - tunnel vision is common when trying to troubleshoot - the whole picture more often than not is important.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.