Today's smart power ICs drive a wide range of small motors such as dc, stepper and brushless dc (BLDC). These smart power ICs typically interface directly to the output of a microcontroller or an ASIC, and provide all of the circuitry required to interface between the logic and the power outputs driving the motor, including the level shift, charge pumps and cross-conduction protection, and even the power stage itself.
However, as the devices become more complex, it becomes increasingly difficult to evaluate a device driving it with a simple bench setup using a few switches or a function generator. Many current-generation devices feature a serial interface that greatly reduces the pin count, but makes it almost impossible to operate without dedicated hardware and software to communicate with the device.
To aid in the evaluation of these devices and speed the development, the PractiSPIN system has been released by STMicroelectronics. PractiSPIN lets designers quickly evaluate the device's performance in the actual application without writing any code or building any hardware.
The PractiSPIN system consists of three components:
A dedicated evaluation board for each supported device.
A hardware interface board based on the ST72264 microcontroller.
User-interface software that runs on a Windows-based PC.
The system block diagram of the PractiSPIN system is shown in Fig. 1.
In operation, the interface board communicates with the graphical user interface (GUI) via the RS232 serial port and drives the evaluation board. Commands from the GUI are transmitted to the interface board, which interprets the high-level commands and generates the real-time control signals to drive the IC under evaluation. The firmware on the interface board also can be updated as required across the RS232 interface.
The Interface Board
To easily control a variety of applications, the system needed a general-purpose interface that could be easily programmed for each configuration. The system also needed to run on a variety of PC platforms, including laptops, where adding an internal card to the PC isn't an option. The design target for the board included:
Two PWM outputs, for setting references on the evaluation board.
Eight to 12 general-purpose I/Os.
An RS232 interface.
A reprogrammable Flash program memory.
Two analog inputs (A/D converter) for adjustments.
A simple board, shown in Fig. 2 and based on the ST72264 microcontroller, was designed to provide the interface. The ST72264 was chosen because it included all of the requirements for the system. Using the in-application programming capability of the on-board Flash memory, the firmware required for each configuration could be downloaded across the serial interface and programmed as needed.
To facilitate the download and transfer, a small boot loader program resides in 1 kb of protected memory, which is configured so that it cannot be reprogrammed in the application. This small program can receive the data and reprogram the remaining 7 kb of Flash. 
The ST72264 also includes the serial communications interface (SCI) needed for communication with the host PC across the RS232, and a serial peripheral interface (SPI) that can be used to control the evaluation cards, if needed. Two 16-bit counter/timers can be configured to provide PWM outputs and provide the time base needed for running the application. In addition, the device has an A/D converter and high-current outputs capable of driving LEDs. After reserving the pins required for the serial communication, up to 18 general-purpose I/Os are available for driving the application.
Each device supported by the PractiSPIN system has a dedicated evaluation board that connects to the ST7 interface card using a 34-pin flat ribbon cable, such as the EVAL6208PD board shown in Fig. 3. The evaluation board includes the dedicated circuitry around the device being evaluated. Generally, this circuitry is similar to the typical application shown on the data sheet for the device.
Connections for the power supply and the motor(s) are provided on the evaluation board. In most configurations, the 5-V power for the interface board is supplied from the evaluation board.  The board also may be connected to the controller for the final application and used while developing the software.
The PractiSPIN system includes dedicated software for each of the supported devices. For devices that share a common interface configuration, several ICs will be supported by a single version of software. The PractiSPIN software features a user interface that runs on a Windows-based PC and dedicated firmware for the ST7 for each family of supported devices. Although the features vary depending on the device and motor configuration, the PractiSPIN for the L6208 is typical.
When the user starts the PractiSPIN system, the first screen he sees allows him to select setup options, including the type of motor being evaluated (if multiple types are supported by the system) and the communications port. After selecting the appropriate options, the user can connect to the hardware.
When the software connects to the hardware, it first verifies that the ST7 has the correct version of firmware. If the firmware version in the ST7 doesn't match the version expected by the user interface — either because it is an old version or because it's the firmware for another configuration — the system asks the user if the firmware should be updated, and then automatically updates the firmware. Once the firmware version has been verified, the system opens the appropriate user interface.
Stepper Motor Software
The user interface for the L6208 family driving a stepper motor is shown in Fig. 4. The top row of controls on the interface lets the user select the operating modes, such as full step, half step or microstepping operation, and the device type being evaluated. If one of the modes is not supported for a particular device, it will be grayed out and unavailable for that device. For microstepping, the default setting is 16 microsteps per step or 1/16th of a step. Other ratios are possible with a modified version of the firmware. Currently, a 1/64th step version also is available.
The second and third row of controls sets the movement profile. The system supports a trapezoidal velocity profile that is commonly used in many applications. [3, 4] The user can set the acceleration and deceleration rates (in steps-per-second squared), the maximum speed (in steps per second) and the current (as a percentage of maximum current) for each phase of the movement. In the full step mode, the “step” in the acceleration and speed setting is one full step of the motor. In the half step mode, the “step” is one half step, and when microstepping, the “step” is 1/16th of a step.
The section on the right of the screen lets the user define a series of movements as well as the wait time between each movement. For each movement defined, the motor moves forward (for a positive number) or reverses (for a negative number) the indicated number of steps. Remember that forward and reverse are relative terms, and the actual direction of rotation depends on how the motor is connected. For a bipolar stepper motor, reversing the connections to one of the two coils reverses the direction of rotation.
As it executes each movement, the motor accelerates at the rate indicated, runs at a constant velocity and decelerates at the indicated rate so that it stops the correct number of steps from the starting position. For each movement, the user interface issues a wait command with the dwell time and a move command with the number of steps to move. When a move command is received, the ST7 calculates the velocity profile required to move the total number of steps and then executes the movement.  When the movement is finished, the ST7 waits the required time before starting the execution of the next movement.
Selecting the constant speed mode allows the user to run the motor at a constant speed without considering the actual position. In constant speed mode, the motor accelerates up to the set speed and runs at that speed until commanded to stop. It then decelerates at the set rate to a stop.
Because all commands to the ST7 are sent as simple ASCII commands, the system can be used with a user-developed interface that sends the required ASCII commands.
The PractiSPIN software supports open-loop voltage- and current-mode drive for dc and BLDC motors. The interface screen (Fig. 5) allows the user to set either the PWM duty cycle that effectively sets the operating voltage, or the current as a percentage of maximum. When running, the device is driven by a duty cycle set on the interface, and the reference for the current is set by a PWM output that is filtered and applied to the reference input.
PractiSPIN also includes thermal analysis software that estimates the operating die temperature during operation. Fig. 6 shows the thermal analysis screen for stepper motor applications. The software calculates the die temperature during operation based on the operating conditions set by the user. The graph on the right shows the die temperature as a function of time when repetitive movements are made. Using this simulation, the user can estimate the amount of heatsink required for his application.
The PractiSPIN system allows designers to quickly evaluate a smart power device in a real application, much as emulator systems allow users to evaluate and debug microcontroller systems. The system includes components to: quickly set the operating parameters of the device and evaluate it with the motor working in real time; and to verify that the device will operate within the safe operating limits. The system allows for a quick evaluation without having to develop any software or hardware before the evaluation begins, greatly reducing the time required to set up and evaluate a device/motor combination.
Nolan, D. “Field Updates for Flash-Based ST7 Applications Using a PC Comm Port,” AN1796, STMicroelectronics, November 2003.
Hopkins, T., Nolan, D. & Marano, V. “PractiSPIN Evaluation System Configuration and Set-up Guide,” AN1794, STMicroelectronics, November 2003.
Leenhouts, A. “The Art and Practice of Step Motor Control,” Intertech Communications, Vetura. Calif., 1987.
Nolan, D. “Operating Principals for PractiSPIN Stepper Motor Motion Control,” STMicroelectronics, 2004.
For more information on this article, CIRCLE 333 on Reader Service Card