One of the definitions of an “embedded” system, as opposed to a “computer,” is, “anything that uses electronics to replace a previously mechanical device.” Programmable thermostats are embedded systems because they replace two dumb pieces of bent metal with a microcontroller and some software. Antilock brakes are embedded systems because they use MCUs instead of hydraulics to control skidding. And pretty much anything with an electric motor in it is an embedded system, because motors are all computer-controlled these days.
That presents a juicy market opportunity for the guys who make motors, and for the guys who make control-control ICs. Guys like NXP. Guys, meet LPC1500, your newest embedded motor-control microcontroller.
Let’s take just a moment, before we get into the details, to savor the progress our industry has made. It wasn’t that long ago that a computer with a 32-bit CPU running at 75 MHz with 256 KB of RAM was considered a “real computer,” adequate for four users and a timesharing operating system. NASA designed moon rockets on lesser equipment. Now such devices are smaller than a postage stamp, sell for under $2, and are relegated to the underside of a washing machine.
Back in this decade, we’re trying to run our appliances’ motors more efficiently, more quietly, and more gently. In industrial uses, we want to control motors more precisely, starting and stopping them in various arcane ways to control torque and power. The mechanical spinning bits are pretty straightforward; it’s regulating the current into the motor windings that’s tricky.
Sounds like a job for LPC1500, man. Bursting onto the scene from NXP’s secret Dutch laboratories, LPC1500 combines the familiar ARM Cortex-M3 processor core with newly developed peripherals designed expressly for motor control. The combination is a single-chip solution for just about any kind of motor, large or small. It can even juggle two motors at once, just to show off.
The ARM processor is actually the least-interesting part of the chip. It’s the semi-intelligent peripherals that make the LPC1500 so useful. It starts with two 12-channel, 12-bit, 2-Msps ADCs for sampling whatever analog feedback mechanisms you might have. Because there are two separate ADCs, you’re able to monitor two unrelated motors simultaneously. Four comparators allow you to keep track of your own outputs or other analog-feedback loops. If you’ve got motors with digital feedback, the chip also has a quadrature-encoder interface (QEI).
NXP describes the LPC1500’s timers as “state configurable,” hinting at some of the complexity lurking within these normally pedestrian peripherals. As with the ADC inputs and the PWM outputs, the timers are configurable in myriad ways, and they work together with the other peripherals to run semi-autonomously without bothering the Cortex-M3. PID loops typically resolve themselves entirely in the peripheral block, for example. That frees up the ARM processor for more academic tasks.
To make sure the CPU is adequately amused, NXP supplies free motor-control algorithms with the LPC1500, including field-oriented control (FOC) for either sensor-enabled or sensor-less permanent-magnet synchronous motors (PMSM), and trapezoidal control for brushless DC (BLDC) motors. Check out NXP’s LPCWare website for the details.
Not into motor control? You’re not entirely out of luck. LPC1500’s combination of inputs and outputs isn’t strictly for motors only; you could use it for most anything that requires PWM outputs and ADC, quadrature, and/or comparator inputs. The canonical example of this is an uninterruptible power supply (UPS), where the comparators monitor for short circuits; the ADCs monitor voltage, current, and temperature; and the PWM outputs tweak power supply parameters, adjust the fans, dim the LED display, and play warning tones on the speaker. Get a little creative and you could make the industry’s first musical UPS.
For beginners, NXP offers two “different” evaluation kits that actually differ only in the motor that comes bundled with them. One kit comes with a PMSM and appropriate firmware; the other comes with a BLDC motor. Apart from that, they’re the same board, with the same LPC1500, RAM, cables, analog drive components, USB interface, quick-start guide, test points, and whatnot. Seems like a good way to get deeply embedded in motor control.