In our last Stellaris how-to we got the board working and set some registers to turn on the LED. This time we’ll start using StellarisWare Driverlib, which provides drivers for the microcontroller’s peripherals including GPIOs, UARTs, ADCs, and so on. These libraries make it easier to control the peripherals. We’ll build the Driverlib project, create a project from scratch to use the library, and run a simple LED blinking example.
For those that grabbed one of these TM1638 UI boards you can now easily use it with your Stellaris Launchpad. [Dan O] took it upon himself to publish an ARM library for the UI board.
There’s not a lot of new stuff to talk about here. We’ve already seen this being driven by an FPGA. [Dan] also links to both an Arduino and an MSP430 library for the board. The one thing that is good to know is that the board seems to run fine from the 3.3V supplied by the Stellaris Launchpad.
The ARM chip has four different hardware SPI modules which could have been used to drive this display. But [Dan] opted to bit bang instead. This give him more flexibility, like easily changing the pin mapping and foregoing the need for external components. All it takes is direct connections from three I/O pins which are used for clock, data in, and data out. We’ve embedded the obligatory demo video after the break.
We’ve already given an overview of the Stellaris Launchpad, but lets look at the first steps to running code on the device. First we’ll get the development software working, then we’ll build and run a very simple example.
TI allows use of the full version of their IDE, Code Composer Studio, with the Launchpad’s on-board debugger. To work with Stellaris microcontrollers, you’ll also need to grab StellarisWare. This free software package contains support for the Stellaris devices including peripheral drivers, a USB library, and code examples. Finally, you’ll need the ICDI drivers to communicate with the debugger. TI has all the required software for this board available here. See the TI getting started directions for a walk-through of how to install the required software.
We just got our hands on a Stellaris Launchpad. We had placed an order when the preorder was originally announced, but the marketing folks at TI reached out an offered to send us one a bit sooner and took them up on it. We’ve embedded a quick unboxing video after the break but read on for some info that didn’t make it into that clip.
The look and feel of the board and its packaging are almost exactly the same as the MSP430 version of the Launchpad. But why not? After all it worked so well the first time. This board hosts an ARM Cortex-M4 processor. The two buttons on the bottom are user buttons, the one on the upper right is a reset button. The top of the board is the programmer, with a micro USB port for connectivity. The kit also includes about a 2′ cable for this connection. Next to that jack is a switch that selects a power source. You’ll also notice a USB port to the left, this because the processor includes USB functionality, with a free library available from TI. Power can come from the programmer/debugger USB port, or from this device USB port. There are dual pin headers to either side on the face of the board, and pin sockets on the back which break out pins of the processor. Just below the reset button is a RGB LED, and a clock crystal has also been populated just above the chip.
When plugged in via the programmer’s USB port the PWR LED lights up as does the RGB LED. The firmware that ships on the device fades through a range of colors and the user buttons scroll through a set of predefined colors. The device enumerates as: “Bus 002 Device 005: ID 1cbe:00fd Luminary Micro Inc.” on our machine. But if you connect it via the device USB jack it enumerates as: “Bus 001 Device 015: ID 04e8:689e Samsung Electronics Co., Ltd GT-S5670 [Galaxy Fit]”. Interesting.
We have no idea if there are programming tools for flashing the board using a Linux box, but we’ll be trying to figure it out. If you have some info please share it in the comments.
We received a tip from [Fabien] that Texas Instruments had posted a set of IDEs for the Stellaris Launchpad on their download page. At first we skipped right over the link, but then decided to take a look and see if things had changed any since the MSP430 Launchpad had been released. As we expected, there’s really no help on this page if you’re looking to develop for the hardware without using one of these IDEs.
Why would we want to forego the preconfigured development environments TI supplies? For one thing, they offer only trial licenses. When you go to download one of the packages you have to wade through a eyebrow-raising non-export agreement. When we made it that far, the ~500 MB Sourcery package we downloaded was quite slow. And we don’t see any option for installing any of these on a Linux machine. No matter what OS you choose, we think you should be able to develop for any architecture using the same development environment — be it Eclipse, GNU Emacs, Notepad, or whatever . We don’t want to download a huge package just to try out a new chip.
We know you can develop for Stellaris ARM chips using a vanilla cross compiler like arm-none-eabi (we use Sourcery CodeBench Lite — formerly CodeSourcery G++ lite). We hope that TI is planning on adding a barebones package that supplies a simple Makefile, Linker Script, and base libraries for the hardware. But we won’t hold our breath. After all, it is an industry standard to leave out Linux support.
Here’s the first project we’ve seen for the new Stellaris Launchpad. It’s a frequency analyzer which displays a graph on an 8×8 LED module. What’s that you say? You haven’t received your new Launchpad board yet? Neither have we since they don’t start shipping until the end of the month. But [EuphonistiHack] works as a software dev for TI and snagged one of the early development units.
Hardware is rather simple. He uses an OpAmp to feed audio from his laptop to the ARM processor. The 8×8 LED module is an MSP430 booster pack that is addressed via SPI. On the software side of things he’s really taking advantage of hardware peripherals to simplify his work. A timer triggers each ADC reading which in turn writes the values using uDMA. Digital Signal Processing (available as a CMSIS library for many ARM chips) is then used to translate the ADC value to one that can be displayed on the LEDs. Check out the video after the break to see the final version.
The Hackaday writers are looking for an easier name for this hardware than “Stellaris Launchpad”. It doesn’t seem to lend itself to a shorter name, like RPi or Raspi does for the Raspberry Pi. If you’ve got a catchy nick name for the new board please share it in the comments.
Texas Instruments just open preorders for the new Stellaris LaunchPad. The boards won’t ship until the end of September, but if you don’t mind the wait you can get one for $4.99 including delivery (
we’d wager non-U.S. addresses have to pay for delivery, but leave a comment if you know for sure several readers have reported that international shipping is free).
We routinely pay more in shipping for parts orders so we already jumped at the opportunity and put in our own order. Earlier in the month we heard the first murmurs about the device. We’re glad to see they hit the $4.99 target price, but the TI website mentions that this is a promotional price that will be available for a limited time only. The board boasts an ARM Cortex-M4 processor, the Stellaris LM4F120H5QR. It includes 256 KB of flash memory, 32 KB of SRAM, and more peripherals than you can shake a stick at. To get you up and running quickly they’ve included two user buttons and an RGB LED. As with the 16-bit Launchpad, the board acts as its own programmer. It has a microUSB jack, but they’ve included a micro B to USB A cable in the kit to make sure you don’t need to also put in a cable order.
We’ll give a follow-up post once we finally get our hands on the board. We hope this will be easy to get working with a Linux box!