So I had the following setup:
I was just driving a small DC motor with this circuit by either sinking current on pin 0 or 1 on the TLC with a motor voltage of 5 volts and everything was fine. The motor was drawing around 200mA and I thought I could upgrade the motor a bit so I picked one that drew around 350mA at 5V. After I connected the motor and powered the circuit the motor just twitched for a split of a second and then nothing. I changed my sketch and reset the TLC every 5 seconds and it turned out that the motor was just doing this every time the TLC tried to drive it in one direction.
I added ceramic capacitors between VCC and GND on the TLC and the H Bridge and electrolytic ones at the motor supply pin of the H Bridge but that did not help. Then I replaced the H Bridge with a beefier one, the L298 but that did also not help. Now I tried the circuit with a PCA9685 instead of the TLC5940 and it seemed to work now... but I was still wondering why it was not working before. I saw oscillations on my scope right in the moment when the motor tried to start that were driving the logic supply voltage of the circuit to almost 1V both times, when I used the PCA and the TLC, the PCA just seemed to "survive" this voltage drop and just continued working without needing to be reinitialized. Maybe because its minimum supply voltage is lower but I am not sure since I was not using a decouple capacitor on purpose. I understand that the motor draws lots of current when starting up, but I expected the drop on the motor supply voltage and not on the logic supply, I intentionally used different power supplies, both with an isolation transformer. Only the grounds in the circuit are tied together.
It is not visible in the drawing, but the power and ground rails on either side of the breadboard were connected. Also, I understand that the PCA is push pull and the TLC is open drain, I used the pull ups only for the TLC.
I am just wondering what is happening here or how I can prevent it because I really want to use the TLC over the PCA... I am happy for any solutions/ideas/opinions!
-
3\$\begingroup\$ Did you really build this circuit on a solderless breadboard? Please provide a link to data for the '350mA' motor. \$\endgroup\$– Bruce AbbottNov 22, 2020 at 6:04
-
1\$\begingroup\$ The L293D has internal clamping diodes. The L298 requires external clamping diodes. See figure 6 of the data sheet sparkfun.com/datasheets/Robotics/L298_H_Bridge.pdf for how clamping diodes should be added. You didn't say you added diodes, so perhaps you did not. I don't know if that is related to your problem, but it would be a good safety precaution, even if your troubles lie elsewhere. \$\endgroup\$– Math Keeps Me BusyNov 22, 2020 at 6:21
-
2\$\begingroup\$ Why the L293 is so bad on low voltages \$\endgroup\$– Andy akaNov 22, 2020 at 11:16
-
\$\begingroup\$ @BruceAbbott yes, actually also on a soldered one just to make sure. It was just a motor I had lying around and its draw was 350mA by hooking it up to a 5V dc supply. \$\endgroup\$– tlubesNov 22, 2020 at 18:18
-
1\$\begingroup\$ @MathKeepsMeBusy I used one of the little driver boards that has the clamping diodes populated on it, I made sure the ICs were used in a similar manner \$\endgroup\$– tlubesNov 22, 2020 at 18:20
1 Answer
Be aware of where the current is flowing. If the motor current can flow through the 0V of the logic, then you may get a voltage drop (ground bounce) that may upset the logic. Plug-in boards are really not good for higher currents.