Hi, I have some L6208 stepper drivers and I wish to build a three axis controller board with them. All the logic inputs are compatible with TTL except the enable pin which also has a drain connected internally for over current protection. The data sheet gives two example circuits to drive the enable pin, one is open collector and one is for push/pull. I'm not sure what these mean in the context of driving with an Arduino digital output pin, and google is not being very helpful (this is probably due to my search terms more than anything). I don't think I can connect either of these directly to the Arduino output pin, can I? (see attachment)
Secondly, the software (grbl) has only one enable output and says it must be shared between all three axis controllers. How would that make a difference, if any, to any supporting circuitry?
I've used this chip (some years ago), the enable pin is an I/O pin (both input and output), so it
has to be open-drain so it doesn't fight any external driver. You can connect many open-drain
pins together and nothing bad happens electrically. I2C bus uses this for instance, SCL and SDA are
open-drain signals - which is why pull-up resistor is needed.
The push-pull example in the datasheet has a series resistor to limit the current if the internal driver
pulls EN low while you are driving it high externally. This gives the internal over-current circuit
priority over external signal.
Thanks, Mark. I think I understand it now and in this instance I would consider the Arduino as a push/pull output because the Arduino pin is pulled down internally?
"open-drain" = "open-collector" for all practical purposes.
The reason the Enable Input of almost all motor drivers is either one or the other of the above is obvious. It allows all the motors to be disabled by a LOW , which can come from a uP or from a N.O. configured ESTOP button connected to GND.