In my project I'm using TMC2209 drivers in STEP/DIR mode. In theory, pulling EN low should enable the motors, thus holding position, but in my case it does nothing no matter how I try.
Moving the rotor works, but as soon as the movement stops, the motor gets deenergized and does not provide a holding torque.
I wired the drivers up like this:
EN - GND
MS1/MS2 - x
PDN_UART - x
STEP/DIR - Arduino pins
VM - 24V
GND - GND
VIO - x
(x - not connected anywhere)
Of course I connected the GND of the arduino and drivers together.
Is this a common/known issue with the driver/user mistake?
I tried that, nothing changes. I think my code does not influence anything, as I tried connecting EN directly to 3.3/5V and GND. The code I tried included the default accelstepper library examples, so that definetly should work I think.
Motor is a 17HS4401S, this is the datasheet
If there is a STEP signal there is a sinusoidal signal going to the motor from the driver, when it idles, regardless if it is enabled or not, there is VM (24V in this case but i tried everything from 9V to 26V) on all coil outputs.
No, as in other cases it worked flawlessly without that. Anyways, I did not even think about that I would need that, duh. So, if i use a 3.3V STM32, do I connect 3.3V straight from the Nucleo board to the driver?
If this is why the enable did not work, then why did the motors move at all? How is this possible that only EN did not work?
EDIT: Doesn't the TMC2209 have an internal 5V regulator for well, some stuff it needs? is a separate external 3.3v supply needed too?
I did not know that, thanks. Apparently I'm really bad at reading datasheets. Unfortunately I can't try it out now as I'm out of house for a couple of weeks, but I will update this thread once I get the chance to try the suggested things, so connect 3.3V to VIO and pull PDN_UART to HIGH state.
I have two more questions: If I supply VIO with 3v3, will also 3v3 be considered high instead of 5v?
If VIO gets 5V, will 5V be considered HIGH?