I have micro dual serial motor controller, which I’m trying to use with a Coridium ARMexpress as the main controller.
The problem is that the SMC docs say “The logic power supply [pin 3] is the voltage at which your main controller operates, such as 5 V… make sure the logic supply does not exceed 5.5 volts.” But the ARMexpress has an onboard power regulator, and (in my case at least) is running off a 9V battery. It doesn’t have a regulated power output. So how should I power my motor controller?
The ARMexpress has an integrated voltage regulator, it looks like it runs on 3.3V (can’t find an actual schematic), but it has all TTL compatible IO lines.
My personal solution, if they don’t have a dedicated 3.3V peripheral pin, would be to find the output pin of the 3.3V regulator and solder a small wire to it, or to a trace that connects directly to it (like if there is a close plated through-hole).
Alternatively you could set one (or more tied together, but my guess is that one will do) of the ARMexpress’ digital outputs high and use that as the power source for your micro SMC. This is sort of a hack, and a waste of IO lines, but its simple, and it should work just fine.
A final option is to get a separate 3.3V regulator, connect it to your battery in parallel with the ARMexpress, and use its output as the logic supply for the motor controller. If you compare the micro and non-micro Pololu dual SMC’s one big difference is that the non-micro SMC has its own logic supply voltage regulator.
Actually I can’t think of a reason why any 2.5V-5.5V regulator wouldn’t work, except that the Pololu guide says to use “the voltage at which your main controller operates”. I’m reading the Sparkfun description of how the ARMexpress, and it says that the digital IO is TTL compatible. If that includes the serial lines (which it should) then you’re set!
The main reason to run both sides at the same voltage is for noise immunity. If the guaranteed threshold is around 0.6*Vdd, the threshold is around 3 V for a 5 V supply. This means that just a little bit of noise on a 3.3 V signal could cause trouble.
You might also want to put in a few resistors (around a few hundred ohms) if you’re going to use several I/O lines in parallel so that you don’t accidentally damage some pins by driving them in different directions.
OK, so this implies that it’s just the voltage that matters, not whether the main controller and the motor controller are powered from the same supply. So my current solution, where the motor controller is run off the 3V motor power supply, ought to work (the main controller output signals are 0-3.3V).
I don’t understand this. Can you elaborate, or point me to a reference where I can learn more about such things?
Let’s say your I/O lines are good for 5 mA, and you want to use two in parallel for 10 mA. If you just tie the two together and then accidentally drive one high and one low, you might damage your chip. If you use two resistors, one to each pin and connected together on the other side, you’ll limit the current that can flow in that bad state. You’ll get some drop across the resistor, so you don’t want them too big. I said a few hundred ohms, but you probably would want around 100 or even a bit less.