Electronic Design
ARMing CAN Motor Control

ARMing CAN Motor Control

Last year Texas Instrument’s (TI) acquired Luminary Micro and its Stellaris line of ARM Cortex-M3 microcontrollers. The Brushed DC Motor Control Reference Design Kit (Fig. 1) provides variable speed control for brushed DC motors at up to 40 A continuous current plus a CAN (Controller Area Network) control system allowing developers to experiment with remote motor management. The 12V version Stellaris Brushed DC Motor Control Module I checked out has been superseded by the 12/24V MDL-BDC24 but architecturally the two are very similar. I checked out the earlier version using the latest software from TI’s website.

The kit actually consists of two main components. The MDL-BDC (Fig. 2) is a self contained motor control system that incorporates a Stellaris LM3S2616 microcontroller. This implements the open- and closed-loop control and can handle servo operation. The serial control interface has a serial-to-CAN bridge that allows the module to be connected to the second component, the LM3S2965 Evaluation Board (Fig. 3). The latter contains the LM3S2965 microcontroller, an OLED graphics display and a CAN interface. Initially the board is programmed with a user interface to the CAN system that is designed to manage the motor connected to the MDL-BDC. Developers can work on the motor control or the remote control side of the package.

The MDL-BDC supports analog and quadrature encoder interfaces accessible via connectors on the front panel. The module utilizes the micro’s PWM interface to control an H-bridge system that handles up to 40A. This is more than the sample motor included with the RDK requires but it allows the system to be used with motors significantly larger. The micro takes advantage of the StellarisWare Peripheral Driver Library that is contained in ROM. StellarisWare is an open source system that also includes a set of optional libraries that can handle a range of chores from graphics to USB support. It also include in-system flash programming. The combination allows developers to write the entire application including device drivers in C. Development toolkits like TI’s Eclipse-based Code Compose Studio and those from IAR take advantage of StellarisWare.

I was very impressed with the MDL-BDC and the RDK. The package includes everything needed for evaluating and enhancing an advanced CAN-based motor control system. Getting started was extremely easy. The kit includes all the necessary cables and power supply. The LM3S2965 Evaluation Board comes preprogrammed with a control application that shows off both the eval board as well as the MDL-BDC. The eval board contains a set of buttons that provides access to the menu presented on the small but impressive 128 by 96 pixel OLED screen. There is also a small speaker. The complete set I/O ports are brought out to pads but you will need to solder a set of headers to gain access to them. That is not necessary to check out the CAN motor control configuration but they are handy for more ambitious projects.

A full JTAG interface is available although developers will likely start with the USB interface. There is actually a dual USB device controller that provides debug support as well as a serial USB interface for a serial port on the micro.

The LM3S2965 has a built-in CAN port. The CAN interface header requires a special cable to link to the RJ-45 connector on the MDL-BDC. MDL-BDC has a removable CAN bus terminator allowing other CAN devices to be daisy-chained together. This could potentially include more MDL-BDC modules.

Once wired, checking out the system is a trivial exercise although reading the documentation on the accompanying CD-ROM definitely helps. The CD was also the next place to turn for installing the remaining documentation, flash programmer software and firmware development kit. It also includes the original source code for the built-in application along with a host of additional sample applications. Schematics and board drawings are part of the package as well. There is also a PC-based application called BDC-COMM that controls the MDL-BDC using the serial-USB interface.

I will not go into a detailed review of StellarisWare but suffice it to say that the package is quite impressive. It is very well documented and there are quite a few code samples included as well.

At this point you need to decide what kind of development tools to try out. There is no IDE or compiler on the accompanying CD making the sample applications a little useless. Still, there are plenty of options and they can be downloaded from TI’s Stellaris website from major vendors such as CodeSorcery, Keil, IAR and, of course, Texas Instruments. Board locked versions of Texas Instruments Code Composer Studio is likely the best option although I like CodeSorcery’s G++ as well. A lite version of the latter is free but it is only a command line version of their GNU tools. It is possible to meld it with Eclipse but it is faster and likely cheaper to buy G++ or Code Composer. Both are Eclipse-based. Time-limited or code-limited eval versions of the development tools from a number of vendors can be downloaded from TI’s website. A QuickStart version of Code Composer Studio can be downloaded for the LM3S2965 Evaluation Board.

I would say the package was perfect if it included an IDE on the CD. As is, it is an excellent hardware combination. Some applications can take advantage of the MDL-BDC in which case the serial or CAN interface will be sufficient as is the tools provided with the kit.

Texas Instruments

 

TAGS: Components
Hide comments

Comments

  • Allowed HTML tags: <em> <strong> <blockquote> <br> <p>

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
Publish