Intro To MicroControllers – Stellaris: Initial Setup Guide
So, you want to use the Stellaris Launchpad, that’s great! There are a couple of things to get out of the way first.
NOTE: This is all assuming that you are installing using Windows, because it’s easier, getting things running on Mac / Linux are somewhat more complicated and guides for those will be coming later.
Download & Install in order:
- KEIL (IDE of choice, other option is CCS) (see this post on how)
- Stellarisware (software library) (see this post on how)
- Board drivers (see this post on how)
- LMFlash Programmer
- Putty or HyperTerm or TeraTerm (or equivalent)
To work with the Stellaris Launchpad you need some way of writing the code, some way of compiling the code and some way of loading the code onto the board. Also it is usually helpful to have a way to debug the code. All of these features wrapped up together are commonly referred to as an IDE (Integrated Development Environment). Usually there is one IDE developed by a chip manufacturer for their part, but because of the history behind the Stellaris team the Stellaris Launchpad actively supports several IDE’s. The two I have the most experience with, and therefore will talk about, are Code Composer Studio (based on Eclipse customized by TI) and KEIL (made by ARM). In addition to the IDE a software library called StellarisWare is provided, and in fact is rather indispensable. StellarisWare contains example code, backend code and hardware abstractions that make writing code almost trivial.
At this link (http://www.ti.com/tool/SW-EK-LM4F120XL) you will find a download that includes both your IDE of choice, the StellarisWare library, Drivers, and the LMFlash Programmer. TI requires an account to download the software because of trade restrictions, just fill out the info and say it’s for educational purposes and you will have no problems. A step by step of the install process is included in a separate post if you are interested.
In addition you will need some way of viewing UART data across COM ports, I highly recommend PUTTY though HyperTerm, TeraTerm and other alternatives are also viable.
The Stellaris Launchpad comes with build in JTAG (it’s a widely used standard for debugging) and as such requires special drivers to make it recognize properly. Download the drivers (http://www.ti.com/tool/stellaris_icdi_drivers) and install them. If you are having trouble with your driver install reference the Stellaris Driver Installation Guide under the “More Literature” section. Alternatively here is a direct link ( http://www.ti.com/tool/stellaris_icdi_drivers ).
That’s all the core software, the bare essentials required to get up and running. With these installed you can now build, load, and run code on the Stellaris Launchpad.
That said here are some fun extras that I think are worth a look.
Energia : a third party extension to run arduino on the Stellaris Launchpad.
LMFlash Programmer: the ‘load’ part of the IDE equation. It is a necessity if you are compiling your code via the command line. Otherwise it is simply useful to have around because when all else fails it has the ability to open the back door to your board and bring it back to life.
(http://www.ti.com/tool/lmflashprogrammer)
PinMux Utility: The Stellaris Launchpad has more functions than it has output pins, that’s part of what makes it such an awesome device. The mapping of which function goes to which pin is done via the PinMux. This is a somewhat technical affair with datasheets and user manuals… or at least it used to be. Now there is a wonderful graphic interface called the “PinMux Utility”. It makes choosing what device goes to what pins dead simple.
(http://www.ti.com/tool/lm4f_pinmux)
In addition there are several documents you should become familiar with.
Launchpad Manual : a general overview of all the pins and outputs on the Launchpad
Stellaris API : PDF with useful function names and variables, essentially a quick reference to the top level functions in StellarisWare. Keep it near at hand for referencing when writing code, absolutely essential.