New(ish) Tools for STM32 Development – STM32Cube

About 2 years ago, I authored a five-part tutorial on setting up a free/open source toolchain with Eclipse and GCC to develop code on ST's line of STM32 microcontrollers. (Part 1, Part 2, Part 3, Part 4, Part 5, Followup) That series demonstrated how challenging it can be to properly set up these tools and get them configured for the microcontroller of your choice.

Since then, ST has really upped their game and has introduced two tools that really make the process of developing for the STM32 line of parts much, much easier. In fact, I'd go so far as to say my tutorial series has been made obsolete. Continue reading New(ish) Tools for STM32 Development – STM32Cube

Selecting Crystal Load Capacitors

When designing a circuit recently, I was faced with selecting appropriate load capacitors for the crystal oscillator on my microcontroller. While in the end this selection is rather straightforward, finding the relevant information can be a challenge. My Google searches weren't as helpful as I'd hoped they'd be, and I had to pull together information from several sources. I wrote this blog post to pull together all of the information I found into a single page that hopefully can serve as a reference for others.

So let's begin: what are load capacitors and why are they needed? Continue reading Selecting Crystal Load Capacitors

Yet Another Low-Cost Dev Board

Freescale joins the bevy of companies offering low-cost ARM dev boards with the Cortex-M0+ based "Freedom" dev platform.

Based on the Kinetis L series KL1 and KL2 chips, this $12 board offers the usual slew of peripherals, an onboard debugger, and various goodies including USB, an accelerometer, and a tri-color LED. A touch slider is included as well, and the chip supports updating firmware via a simple drag-and-drop USB mass storage interface, which is cool.

Interestingly, Freescale designed the board to be pin-compatible with Arduino shields. This is surprising news from a company that has been known to be very unfriendly to hackers/makers.

So I've got my STM32F0DISCOVERY, my STM32F4DISCOVERY, my LPCXpress board, my Stellaris M4F should be here soon, now there's the Freescale part (that I may or may not order), and I haven't even ordered a Raspberry Pi yet.

How many other low-cost ARM dev boards are there? How are manufacturers going to differentiate their products if this trend continues?

Free STM32F4DISCOVERY dev board

ST Micro just announced the STM32F4 series of processors and the STM32F4DISCOVERY kit. In fact, as I write this, ST is having a giveaway promo for the new discovery board. I have been thinking of an audio effects processor project for which this series of chips would be perfect. They have floating point processors, I2S interfaces, external memory interfaces, and high clock rates. (Yes, this is the same project idea I had for the Renesas RX600 contest. The two chips both have features that make them candidates for the project; I'll discuss the pros and cons of each in a later post.)

So, of course, I ordered one right away. (Especially when I found out it was free!) It was shipped remarkably quickly. Digi-Key is clearly the fulfillment house for ST based on the return address on the package. The board comes in clamshell packaging with little to no documentation.

I have 2 or 3 projects in my queue right now (and still have a wife, a job, and two kids) so it may be a while before I get to use this.

Capacitive Touch Booster Pack for Launchpad

Texas Instruments has released the Capacitive Touch Booster Pack for the Launchpad platform. This hardware/software combo demonstrates the use of touch sensitivity and proximity sensing with the Launchpad platform. Check out the video for an interesting demonstration!

While I've not been a big fan of touch sensing (which has been all the rage lately), I have to admit that the demo does look pretty cool. TI spent some effort in designing the hardware and software to make interesting apps, and it shows. I actually found myself thinking about things I could do with this platform rather than dismissing the product out of hand like I've done before when looking at 'touch sense' applications.

The launch price is, surprise surprise, $4.30 but the claim is that's a limited time price. As with the Launchpad itself, you can order up to 3 of them at once. Also like the Launchpad order itself, TI is not charging shipping.

So I have a couple of these on their way to me; maybe I'll find something cool and interesting to do with them.

LPCXpresso Board Arrived

On March 12, I blogged about the NXP LPCXPresso giveaway. I posted a video online of myself destroying some chips using the NXP "break your 8/16 bit habit" theme to qualify for a free board.

At the time, I was somewhat doubtful that I'd get a board. The eligibility requirements weren't clearly spelled out and the entry form requires a 'business' e-mail address.

Well, I'm happy to report that NXP sent me an LCP1114 XPresso board! I haven't had time to dive into it yet but I'm pleased to have the new hardware. The Cortex M0 platform looks like it's going to be a lot of fun.

NPC LPCXpresso Giveaway

NXP is giving away LPCXPresso boards to people who submit a video of themselves destroying an 8 or 16 bit micro. I'm not sure which board they're giving away or what the qualifications are for being eligible (the submission ominously requires a "Business" email address) but it's worth a try I suppose.

The Cortex M0 is positioned as an upgrade for existing 8 or 16 bit applications. Color me jaded, but the M0 specs are significantly more impressive than the typical 8/16 bit micro. The low-end LPC111x series tout the following features (datasheet):

  • System:
    • ARM Cortex-M0 processor, running at frequencies of up to 50 MHz.
    • ARM Cortex-M0 built-in Nested Vectored Interrupt Controller (NVIC).
    • Serial Wire Debug.
    • System tick timer.
  • Memory:
    • 32 kB (LPC1114), 24 kB (LPC1113), 16 kB (LPC1112), or 8 kB (LPC1111) on-chip flash programming memory.
    • 8 kB, 4 kB, or 2 kB SRAM
    • In-System Programming (ISP) and In-Application Programming (IAP) via on-chip bootloader software.
  • Digital peripherals:
    • Up to 42 General Purpose I/O (GPIO) pins with configurable pull-up/pull-down resistors.
    • GPIO pins can be used as edge and level sensitive interrupt sources.
    • High-current output driver (20 mA) on one pin.
    • High-current sink drivers (20 mA) on two I2C-bus pins in Fast-mode Plus.
    • Four general purpose counter/timers with a total of four capture inputs and 13 match outputs.
    • Programmable WatchDog Timer (WDT).
  • Analog peripherals:
    • 10-bit ADC with input multiplexing among 8 pins.
  • Serial interfaces:
    • UART with fractional baud rate generation, internal FIFO, and RS-485 support.
    • Two SPI controllers with SSP features and with FIFO and multi-protocol capabilities (second SPI on LQFP48 and PLCC44 packages only).
    • I2C-bus interface supporting full I2C-bus specification and Fast-mode Plus with a data rate of 1 Mbit/s with multiple address recognition and monitor mode.
  • Clock generation:
    • 12 MHz internal RC oscillator trimmed to 1 % accuracy that can optionally be used as a system clock.
    • Crystal oscillator with an operating range of 1 MHz to 25 MHz.
    • Programmable watchdog oscillator with a frequency range of 7.8 kHz to 1.8 MHz.
    • PLL allows CPU operation up to the maximum CPU rate without the need for a high-frequency crystal. May be run from the system oscillator or the internal RC oscillator.
    • Clock output function with divider that can reflect the system oscillator clock, IRC clock, CPU clock, and the Watchdog clock.
  • Power control:
    • Integrated PMU (Power Management Unit) to minimize power consumption during Sleep, Deep-sleep, and Deep power-down modes.
    • Power profiles residing in boot ROM allowing to optimize performance and minimize power consumption for any given application through one simple function call. (LPC1100L series, on LPC111x/102/202/302 only.)
    • Three reduced power modes: Sleep, Deep-sleep, and Deep power-down.
    • Processor wake-up from Deep-sleep mode via a dedicated start logic using up to 13 of the functional pins.
    • Power-On Reset (POR).
    • Brownout detect with four separate thresholds for interrupt and forced reset.
  • Unique device serial number for identification.
  • Single power supply (1.8 V to 3.6 V).
  • Available as 48-pin LQFP package, 33-pin HVQFN package, and 44-pin PLCC package.

That pretty much eclipses any 8/16 bit micro I've ever used. The LPC1111 is priced as low as $2.02 for one piece at Digi-Key. That's easily within the realm of hobbyist dollars! (The QFN packaging, though, could be a roadblock to many. You can get an LPC1100L in 48-LQFP for $2.80)

I think I'll head outside and take a few video clips of semiconductor destruction today.

Arduino Sketches on the Launchpad?

Chris Hulbert has created a header file for the TI MSP430 Launchpad that ports some of the Arduino functions to TI's platform.

Macros for setup(), loop(), delay(), pinMode(), pinBit(), digitalWrite(), and digitalRead() are included. Chris also disables the MSP430's watchdog timer, which will help a lot of newbies (and would have helped me on my first project).

It'll be interesting to see how "Arduino-like" the community can make the TI platform. TI is clearly going after the hobbyist market with this platform, but they certainly aren't providing the support or the ecosystem that's needed to really engage this audience. Tools like this one may make up the difference. (I doubt, however, that the MSP430 will ever approach the popularity of the Arduino. TI just doesn't seem to "get it" about supporting and engaging the hobbyist community.)

I still plan on creating some tutorials for the Launchpad, but it'll have to wait at least until the Renesas RX Design Contest ends on the 27th.