Intelligent motor control can provide finer speed control and provide longer motor life— making it one of the hottest areas in electronics. Ramping up the speed of a motor, instead of hitting it with a full power surge, not only reduces the wear and tear on the motor, but can also make the product it is used in operate more smoothly. Once some intelligence is provided for motor control support, it’s possible to add more functions such as variable speed operation.
Motors come in a wide range of form factors and technologies. If you are looking for a good book on motors, check out "Electric Motors and Drives: Fundamentals, Types and Applications" by Austin Hughes (see ED# book review, ISBN: 0-7506-4718-3).
Motor control is typically relegated to microcontrollers with higher performance motors using digital signal controllers (DSC) or digital signal processors (DSP). In this article, I take a look at four 8-bit tools from Atmel, Cypress Semiconductor, Microchip and Zilog.
The typical motor control kit includes a board that has power transistors (since most microcontrollers cannot drive a motor directly). Likewise, motor feedback mechanisms are sometimes available (see "Smart Motion Makes For A Smarter Design," ED Online ID #11294). The kinds of microcontrollers mentioned in this article are suitable for handling small to medium sized motors of various types.
Atmel’s motor control support consists of a number of application notes, along with the company’s standard development tools suite. I checked out the AVR Fan Controller board, which can be controlled externally in the same manner employed with Atmel’s Butterfly board (see Fig. 1). I also got my hands on the more robust ATAVRMC100 Brushless DC Motor Evaluation Kit (see Fig. 2).
The ATAVRMC100 features a small board that houses the power electronics (8 to16V DC at 4A) and an AVR AT90PWM3 microcontroller. The AT90PWM3 has 8Kbytes of flash, 512 bytes of SRAM, and 512 bytes of EEPROM. It also has a 10-channel advanced PWM, an 11-channel 8-bit ADC, a 10-bit ADC with programmable gain, a 10-bit DAC, a pair of 12-bit PSC (power stage controllers) with 4-bit resolution enhancement and DALI protocol support. Serial communications support also handles LIN (Local Interconnect Network).
The kit also includes a heavy-duty 3-phase BLDC motor. It is suitable for Hall Sensor and sensorless applications. Sensorless systems actually use back EMF (electromotive force) feedback from the motor instead of external sensors.
The Butterfly is an inexpensive development board that includes an 8-bit Atmel AVR processor. (see "EiED Online>> A Butterfly Or USB Arm: You Choose," ED Online ID #10341). It costs about $20.
The software tools for all three platforms, including the BLDC (brushless DC) motor kit, fan controller, and Butterfly are the same. AVR Studio 4 can be downloaded from the Atmel site. Software is included with the BLDC kit, but not the other two platforms. Software emulators are available as well.
Atmel’s chips are great for programming. The AVR architecture is very regular, and handles C coding easily. AVR Studio 4 includes a gcc compiler for the AVR. Setting up the program is relatively easy, but connecting to the development boards is a little bit more tedious. There is an In-System-Programming (ISP) connection to the ATtiny chip on the fan controller, on the BLDC kit board, and the Butterfly, but you will need the ISP hardware to change the AVR’s flash memory. The Butterfly has a serial monitor interface that allows applications to be downloaded without the ISP hardware.
The ATAVRMC100 is also missing programming hardware, making the Butterfly the only item that can be programmed without extra hardware. This includes the AVR ISP, JTAGICE, and the STK500. I happened to have the STK500 on hand. The STK500 is a development system that is by itself suitable for handling a range of AVR chips with plenty of peripheral and patch support. You can find variations of the STK500 for as little as $100.
The ATAVRMC100 has connectors that work with all the development interfaces. These work with AVR Studio 4. Setting up the system was not a problem. The STK500 documentation handled initial setup of the board well; the ATAVRMC100 users’ manual shows how to get it and the other two development tools connected to the board. The ATAVRMC100 has a number of interfaces (see Fig. 3).
Atmel has character-based and graphical demo programs. It can be used to configure and control the motor. They can provide speed information, as well as control the speed of the system.
I didn’t have problems making incremental changes to the board’s demo program, which is written in C. Moving past this point, though, requires some knowledge about motor control. That will not be forthcoming from the demo application, but some of the applications notes will help.
The Atmel app notes and source code are well written. I reviewed the notes for the Butterfly and fan controller. In particular, the combination is annotated in the AVR441 application note. The fan controller board implements a serial interface that can be daisy chained to support multiple fans. In this case, the Butterfly is the controller with a simple LCD interface. The speed of the fans can be controlled, and the temperature near the fan can be obtained.
While the application note tends to be a standalone presentation, it can be modified. The source code is also available online. I would recommend that you reserve a good bit of time to learn the software tools and get used to downloading and debugging code before doing too much with this combination. Since it is not a formal kit, it is definitely not a quick startup—but the payback can be well worth the effort. The chip on the fan controller board is an 8-pin DIP. It is possible to remove it, which allows for upgrading or programming the chip externally. This may be required if you are using another Atmel development kit to program the chip.
The Atmel example is most interesting because of its serial interface and distributed nature. It is much simpler than something like an IPMI I2C control system found on high end AdvancedTCA systems.
Cypress Semiconductor’s PSoC Express Development Kit is priced at $499, and is a much more conventional development kit. In fact, the motor control arena is just a small part of the applications it can address.
The development board has plenty of patch area with jumper patch boards for very fast rewiring. This blends well with the reconfigurability of the PSoC microcontroller (see see "Breaking News: Analog PSoC Family" ED Online ID #5936). The PSoC has an 8-bit microcontroller core with digital and analog blocks wrapped around it. These can be combined to form a range of simple to complex peripherals from PWM outputs to ADC inputs.
The development board also has a LCD display and a number of headers designed for standard peripherals (like the two small motor boards) (see Fig. 4). I concentrated on these for this article. They have their own power control semiconductors, so it’s possible to disconnect the on-board motors and connect the drive hardware to an off-board motor.
There are two primary software tools that work with Cypress Semiconductor’s kit. The first is PSoC Designer. The second is PSoC Express. Designer provides fine grain configuration, making it more complex of the two. Express is a simple graphical modeling tool (see Fig. 5).
I recommend starting with PSoC Express. The latest version is significantly cleaner and more powerful than the first version (see see "EiED Online>> Soft MCU Goes Graphical" ED Online ID #10215).
Microchip’s Mechatronics (see Fig. 6) is priced at $149. It does not include a hardware debug tool like the USB-based MPLAB ICD 2 ($159). The Mechatronics kit comes with the latest version of the Windows-based MPLAB IDE. A free download is available, so you can check it out ahead of time. Assembler is standard. C is optional.
The Mechatronics board can handle a range of Microchip PIC processors from the 40-pin DIP versions on down. It can run off a 9V battery or a 9V-12V power brick (not included). The board has a pair of motors, one with an optical sensor building a feedback system. The power subsystem is sufficient to drive the system’s small, on-board motors; the drive connections easily allow attachment to off-board motors. There is also an over current sensing system with an error LED and reset button. This is very handy when working with motors or systems that may want more power than the board can deliver.
The board has plenty of connectors and jumpers, but no additional patch area. There is a LCD that can be used by the PIC microcontroller, along with a host of LEDs, switches, pots and sensors (light, temperature). Overall, the hardware is well designed, and very easy to use and configure.
Getting started was a snap. A separate CD contains the Mechatronics installation programs, sample applications, and documentation (including board layout). A short installation sheet indicates how to wire the board for running a sample application already programmed into the PIC. It is possible to exercise the board, (and even learn a little about motor control) but you will need to attach the MPLAB ICD 2 to make changes to the software. The rest of the documentation assumes you have the ICD 2.
Running through the manual and the half a dozen demo applications was a piece of cake once the MPLAB IDE was installed. The latter took a few minutes using the IDE CD. The sample applications exercise both the on-board stepper motor and the brushed DC motor. A thermometer application displays the temperature on the LCD. Using any of these applications overwrites the initial application, but you can always reprogram the PIC with it if necessary.
The sample applications are relatively small and exercise particular components on the board. Microchip’s CD also has a large collection of application notes that are biased toward general PIC programming, including details such as software stack management and wake-up on keystroke. Of course, there are still a number of motor related notes such as AN531: Intelligent Remote Positioner.
Getting a quick overview of the demo applications and the application notes will take a few hours. Of course, PIC programming is not the easiest thing to do, but anyone with a PIC background will be up and running at this point.
I liked the "Tips N’ Tricks" section. These are like generic apps notes with insights that PIC programmers can definitely take advantage of.
Finally there is the "Workshop In A Box" section designed to make the board part of a course. It includes student handouts, presentations and a set of labs. This section is a good addendum to the manual, but users can start with the Workshop. "Workshop In A Box" is useful for an educational setting, but it is also something Microchip trainers can use. There is even an evaluation form.
This is an extremely well polished product. It is a great training and learning tool, and has sufficient features and horsepower to handle application development.
Zilog’s Z8FMC16100 Motor Control Development Kit (see Fig. 7) targets developers using 3-phase BLDC motors. The kit, which is priced at $199, comes with a heft BLDC motor.
The Z8 processor has a range of features that make it an ideal match for motor control applications, including IrDA and I2C support. Its internal oscillator allows for a small footprint and lower bill of materials in many applications. Zilog includes a big poster that highlights the registers and features. Just the thing to stick on the wall next to your monitor.
Zilog uses a (large) module-based design with the motor’s power support on the base-board. The Z8 is a surface mount chip, so it’s easier to swap out chips. This will be done, though, at the cost of a new board. Because the Z8 has its own power unit, the processor board can be used independent of the base board. It also has the debugging interface. There is a small patch area on this board that can be used to modify the connection to the motor or to add other features such as status LEDs. There are status LEDs some on the board along with some switches and jumpers. There is also an IrDA transceiver.
Getting the system up and running is relatively easy. There is a printed "Quick Start Guide," but it is essentially a shore overview of software installation, hardware configuration, plus full schematics. Installing ZDS II, Zilog’s own development tool, is as simple as a doing so for a typical Windows application. ZDS II provides C and assembler support. Most will probably want to use the C compiler. There is some very good documentation for ZDS II and the C compiler.
The next step is to download the demo program using ZDS II. This exercises the motor and shows that the debugger, hardware, and motor work properly.
Zilog gets you up and running quickly, but that is where they leave you. There are a number of tech articles on the installation CD, but they deal with the processor architecture and C compiler, not about motor control.
Zilog’s offering is a solid development platform for BLDC work but it is not the best for those new motor controls, unless they have external resources to get up to speed for this application area.