Monday, November 09, 2015

Microcontroller Evaluation Platforms - Managing Variety

Embedded computers, the computers embedded deep inside everyday products that you neither see nor care for, are actually responsible for the safe and continued operation of your device. Microwave oven, washing machine, refrigerator, printer, TV set, even the lowly but ubiquitous TV remote are numerous examples of embedded computers at work, silently. You don't think of these devices as computers but without the computer chips installed in them and programmed to perform the given task over and over again, your gadget would not work flawlessly.

How does one learn about them? How does one learn about them for the purpose of creating similar devices? Embedded computers or embedded system design, is in fact a field of study in most electronics and computers related engineering courses. Of course, it is possible to know more about them even without enrolling in such courses, all thanks to the availability of copious information on the Internet.

TI-CEPD Activities

We, at NSIT have a collaboration with Texas Instruments, India and have formed a centre called The Texas Instruments Centre for Embedded Products Design. There are several objectives that this Centre tries to achieve. Amongst them are (a) create pedagogy material for electronics and embedded computer education (b) conduct training programs for students, teachers and hobbyists to further TI technologies which span a wide spectrum of components from specialized analog components to embedded computers (c) and to create innovative embedded products.

As part of our training activity, we have been organizing a 4-week long internship programme called The TI Internship Workshop on Embedded System Design during summer and winter vacations since June 2013. The next such program will be held from December 7 2015. In our last internship programme, we had over 100 participants spread over four tracks on (i) MSP430 (ii) TIVA ARM (iii) C2000 Digital Signal Controller and (iv) BeagleBone Black.

Infrastructure for Training

While the focus of the training is on understanding track specific architecture in the general context of embedded system design enabling each participant to complete a stand alone project using the microcontroller from the chosen track, having a good grip on programming fundamentals becomes critically essential for the success. To help with the programming, each participant is provided with a LaunchPad for the chosen microcontroller. A LaunchPad is a simple and inexpensive microcontroller evaluation kit that allows a user to download and debug a program from the development platform (usually a PC/laptop) into the memory of the microcontroller on the LaunchPad. The following picture shows four LaunchPads from TI.



TI LaunchPads and BoosterPacks

The LaunchPad exposes the pins of the microcontroller through connectors and allows the user to connect peripheral devices such as push-buttons, LEDs, LCD and other I/O devices. To help with connecting various I/O interfaces to the LaunchPad, there is a rich ecosystem of interface boards called BoosterPacks. BoosterPacks come in all shapes, sizes and features and connect to the LaunchPad through the connectors on the LaunchPad and offer specific input-output functionality. The picture below is a sensorhub BoosterPack which hosts a variety of sensors that the user can connect to a LaunchPad. Sensorhub BoosterPack is a TI product.



Use of BoosterPacks together with a LaunchPad for personal use during self exploration of embedded systems is a fine method. However, in a group learning environment such as our internship workshop, it can increase the cost of training program substantially besides becoming a logistics nightmare of having to keep track of large number of BoosterPacks. We, at TI-CEPD, therfore decided to explore an alternative approach. We decided to create a 'motherboard' that could host a LaunchPad. The idea of motherboards and daughterboards is common and quite old in the field of electronics and computers. However, instead of creating an individual motherboard for each and every microcontroller family LaunchPad, we decided to create a common motherboard which could host as many as possible, different LaunchPads for the various microcontroller tracks we offer in our training programs. In the past we have created a motherboard for the Tiva LaunchPad but at the time we did not consider compatibility with LaunchPads for other microcontrollers (such as the MSP430, MSP432, and C2000 and others).

Managing Variety

The most popular LaunchPad from the TI stable is the MSP430 LaunchPad for the G series of microcontrollers. However, these are entry level microcontrollers and have low I/O pin count. Microcontrollers from other families of MSP432, Tiva and C2000, on the other hand have substantially more pins and that is reflected in the LaunchPads of these microcontroller families. The G series MSP430 LaunchPad has two rows of expansion pins whereas, the rest of the microcontroller family LaunchPads have four rows, doubling the number of available pins. Incidentally, even the LaunchPad for the F series MSP430 offers four rows of expansion pins. So, we decided to create our motherboard compatible with the LaunchPads that offer four rows of expansion pins. Since this was our second attempt at creating a motherboard, we wanted a solution that would be common to as many LaunchPads as possible. The result is Starship-XP. Choice of this name is obvious. Starship would be the mothership hosting a LaunchPad. XP stands for cross platform, indicating the cross platform compatibility.

The block diagram  below shows the original plan. The actual implementation has added more features than originally planned.



The features that we managed to offer on the Starship-XP are as follows

Communication Protocols

UART, Bluetooth, Wi-Fi, I2C and SPI

User Interface

320x240 Color Graphics LCD, 16x2 Character LCD, 16-key Keypad, 5-key Navigation keys, RGB LED and Buzzer

Sensors

Temperature (I2C digital sensor), Humidity and Temperature (1-wire digital sensor), Potentiometer, LDR, Thermistor and Microphone with preamplifier.

Storage

SD Card

Motion

Servo motor, External Stepper and DC motor Interface

Misc.

RTC with NVRAM and Battery Backup, Audio Input Left and Right Channel,  2-Ch DAC and Stereo Audio Output, 8-bit Shift Register

Here are pictures of the first version of the Starship-XP with four different LaunchPads. The picture below is with a Tiva LaunchPad.

Then we have Starship with F series MSP430 LaunchPad.


The picture below is Starship with MSP432 LaunchPad.


And, the one here is Starship with a C2000 digital signal controller LaunchPad.
We have tested the Starship with Tiva LaunchPad and few shortcomings have been noticed and in the second version these are being ironed out. Also, the second version will have bigger push-buttons with caps and more liberal arrangement of the components. We hope to have the second version in time for the forthcoming TI Internship Workshop starting from December 7, 2015!