|The Educational BoosterPack MK II, the Texas Instruments kit with loads of goodies. Who hasn't seen it?|
I have one. And I have plans with it. I want to turn it into the user interface for a safety features test bed for Hercules micro controllers.
The Hercules family is specialized in safe operation and safe failure. It's used in automotive, industrial and medical applications where reliability and resiliance to mishaps is key. All modules inside the controller - including the ARM core - have hardware supported redundancy and error detection.
TI released a PC application that tests these features. A program where you can generate error situations and then see how the controller deals with that.
Wouldn't it be cool if you can do the same without the PC?
But there are Many Examples for LaunchPads and this BoosterPack
Yes, but not for the Hercules family. The Educational BoosterPack examples are based on energia. Hercules isn't a target for that platform (yet?).
That's OK in my situation. I have a micro controller that is supported (an MSP430). So I can run examples and probe the data traffic.
And I also have access to all the source code. I'll run this project as a port exercise. I'll start from the energia sources and libraries, and transpose them to Hercules code.
I can swap between the platforms whenever something is not working. It's always good to have a working reference design when you're porting code.
Matching the Signals
The Hercules LaunchPad family isn't known for its compliance with the BoosterPack connector standard. MSP430, 432 and TM4C usually are in line with the boosterpack pin layout.
The RM46 LaunchPad is the closest fit with BoosterPack conventions. That's why I'm using that one to start the exercise.
I checked the BoosterPack schematics to see what pins are used for LCD operations, and I think that I have a match for all the signals.
The LCD uses SPI. And there are additional signals for backlight PWM and the Data/Command line for the display.
The SPI signals match with (MIB)SPI lines on the Hercules. The PWM signal can be contolled by the RM46's ePWM module, and the other lines are GIO-capable.
My first - unchecked - assessment is that I'll be able to cover all functionality for the LCD display.
Why Do I Blog about this?
The main reason is for self documentation. I often blog with the fake reason to share information with the world - the real reason being that it forces me to document my proceedings.
When you're designing something, it's easy to keep going on without leaving a trace. You can spend many hours building great and not so great things. And the result is forgotten in a few weeks. By yourself and by the world.
Some engineers keep a log book with their proceedings. I prefer to use a blog for that purpose.
A blog is a great tool for self documentation. You get feedback as a free bonus. And you get an intensive to finish your work as an additional bonus - it's easier to keep commitment if the world is watching.
Also: both ipv1 and martinvalencia are working on LCD display integration at this moment. Maybe our combined effort can be bigger than the sum of our work...
I'm going to take on the port exercise step-by-step. I'll check how the energia libraries are set up. One by one, I'll make Hercules functions that perform the same activities.
I'm not going to restructure the energia libraries at this point. Getting them to work is the first and most important task.
I'll learn the design while doing that (porting helps you to understand a design to great depth. It's an efficient method to learn something new. If there's room for improvement, I'll pick it up once the port works;
This blog series will stop when I have a working LCD display library.
Only then I'll start with a safety test application for the Hercules family with the Educational BoosterPack as user interface.
|Educational BoosterPack and Hercules LaunchPad: LCD Driver - Part 1|
|Part 2: Logic Analyzer and LCD Backlight|
|Part 3: SPI Works|
|Part 4: Everything Works|