Discovery Kit Needs Info

February 8, 2011

3 Min Read
Discovery Kit Needs Info

Engineers might jump at the chance to buy an ARM-basedmicrocontroller module for under $10. But they should be aware that the costsavings might not overcome the difficulties they'll face in obtaining gooddocumentation to put the microcontroller module to good use.

My lab work with the STM32 Value LineDiscovery board started well and I looked forward to working with theTM32F100RBT6B Value Line MCU that includes 128 Kbytes of Flash memory, timers,analog peripherals, digital I/O ports and serial interfaces. The board requiredno USB driver installation and its demo program started right away. Pressing abutton changed the Flash rate for an LED that showed the test code worked.

Working on this board, engineers can use software tools from IARSystems, Atollic or Keil (a subsidiary of ARM). I obtained a 30-day trial versionof the Atollic TrueSTUDIO/STM32 Pro software and followed instructions inAtollic's helpful "Installation Guide" and detailed "QuickstartGuide for STM32." The latter document includes steps to create a newproject, set equipment and software parameters, build the code and run theprogram on the Discovery board. That process went smoothly and I liked workingwith the Eclipse-based Atollic tools and recommend them. (There's someconfusion about instructions for the debug connection. Use the free 30-daylicensed Pro version of Atollic's tools and you can avoid any confusion untilAtollic updates its manuals.)

After experimenting with the Atollic code example that controlledtwo LEDs with a push-button, I modified the code to change the LED pattern. ThenI wanted to access a general-purpose I/O port to create some 8-bit patterns andrecord them on a logic analyzer. That's when problems began.

STM provides a library of functions that control peripherals - everythingfrom analog-to-digital converters to watch-dog timers. Although STM provides 12example programs (Application Note AN3268), the documents for the STM32 MCUslack comprehensive information about individual library functions, how theywork and how to use them. I spent hours going through many .h and .c files forinformation about how to set up an 8-bit output port and found nothing basicenough to describe how to do it for someone unfamiliar with the STM library.

Keep in mind that the peripherals on an STM32 MCU require manysetup steps that include programming registers and initializing clocks. So, Iexpected a bit of tutorial information or even some step-by-step instructionsthat explained how to use I/O ports. I posted a comment about the lack ofmanuals on the STM Forum for the Discovery board and received several comments.One person referred me to the ARM MCU data sheet, which didn't help. Someoneelse suggested reading the compiled help file: stm32F10x_stdperiph_lib_um.chm.After I figured out how to open it I found information such as:

#define DBGAFR_SWJCFG_MASK   ((uint32_t)0xF0FFFFFF)
Definition at line 67 of file stm32f10x_gpio.c.
Referenced by GPIO_PinRemapConfig()

A sample I/O program, GPIO_IOToggle, from STM seemed just ascryptic. Other comments on the STM Forum pages noted similar frustrations withthe lack of helpful information about how to use the C libraries. As far as Ican determine, STM offers no documents comparable to those supplied for earlierversions of the code library. People should download "UM0919 User Manual:STM32VLDISCOVERY," which provides useful information about jumpers,component locations, indicators, intentional solder bridges, and the pinoutsand functions of the board's pins. Unfortunately, STM's other documents don'tmeet the standard of this helpful document.

 

Sign up for the Design News Daily newsletter.

You May Also Like