Some six months ago Texas Instruments announced the Evalbot, a development platform for their Stellaris ARM Cortex-M3 microcontrollers in the shape of a little robot. It took me a while to get hold of one, but now I have one driving happily around in my living room. It is actually a pretty neat and cleverly engineered kit that you have to assemble yourself. Most parts are made out of PCB material – the two wheels for instance are each made of three disks and a rubber ring – the rest are mainly nuts & bolts. Two little motors with gears drive the wheels and everything is powered from three AA batteries.
The Evalbot is not a gadget; it is a powerful development board with wheels. In the center off the disk-shaped board sits an LM3S9B92 ARM Cortex-M3 controller (256 KB flash, 96 KB RAM and more peripherals than you will probably ever need) assisted by a tiny 96 x 16 blue OLED display, 6 push-buttons (including the on/reset and the off buttons), an Ethernet connector, a USB host port, a USB device port, a USB debugger/programmer port (ICDI), a micro-SD card connector, a speaker, power supply, JTAG, two LEDs and probably more that I am overlooking now; and two motor drivers. Thanks to the battery holders (with batteries) on the bottom of the board the whole thing is pretty heavy and the rubber “tires” prevent sliding it off your desk when you hook the board up to a computer with a USB cable that wants to unwind the wrong way around.
A special wireless expansion port is available too on which you can plug a CC1101EM sub-1 GHz transceiver, which will get you an 868 or 915 MHz radio link. The James Bond part of this setup is a third kit from TI, the eZ430-Chronos based on the CC430F6137 sub-1 GHz RF SoC. This is a combination of a biggish but stylish black watch with a large character display and a USB access point for your PC. Once connected you can control your PC with the watch, although it takes some exercise to do it properly. But... you can also use the watch to control the Evalbot! An integrated accelerometer lets you influence the driving direction of the robot by tilting and rotating the watch. Cool huh? The watch in itself is actually a dev kit and you can reprogram it with your own application.
Programming the dev kits is done with Code Composer Studio 4, the Eclipse-based dev environment from TI. A license file is included with the Evalbot kit, but what exactly this enables is not clear to me. I did read something somewhere about code sizes & limits, but I forgot where. Anyway, all the source code for the Chronos controlled Evalbot is available, it compiles without warnings and errors and programs fine. This really is a fine (but strange) development kit.
Showing posts with label Cortex-M3. Show all posts
Showing posts with label Cortex-M3. Show all posts
Wednesday, July 6, 2011
Thursday, April 14, 2011
New kit on the blog
At the last Embedded World show it was Cortex-M3 everywhere and I discovered that Fujitsu (now?) also sells cheapish development kits for their Cortex-M3 products. I obtained one of these kits, the SK-FM3-100PMC, to check out. The kit contains an SK-FM3-100PMC board, an AB type USB cable, a CDROM and a sheet with additional information. It does not contain the promised CD/DVD with Softune Workbench mentioned in the additional information.
On the board you’ll find an MB9BF506N processor (100 pins, 80 MHz, 512 KB flash, 64 KB RAM, 8 multifunction serial ports, 2 CAN ports & USB host & device, plus of course the usual timers and PWM-like peripherals, DMA and what not). Available connectors are UART-A RS-232 (9-pin female subd), UART-B USB (type A), CAN (9-pin male subd), USB host, USB device (type A), 20-pin JTAG (as usual the wrong way around for my Keil pod, Keil even gets this wrong on their own boards. Actually the cable is upside down on the pod) & Trace and headers for all the processor’s pins. On-board gadgets are two 7-segment LED displays (I always like that) and two square white push buttons.
The board can be powered from a multitude of sources: externally feeding a 1117 5V regulator, JTAG and both USB-A connectors. The processor itself will work from 2.7V up to 5.5V, meaning that this is one of the rare Cortex-M3 devices that can run directly from 5V.

Lets go!
Insert the CDROM and connect the board to the PC using the UART-B connector. A pretty well written Readme file pops up that guides you through the process of setting up a development environment for the kit. Driver installation is very easy, Windows can do it all alone (except for the usual “Do you really want to do this?” nagging). When the board is powered the 7-segment display starts counting up to 99 and then stops. Pressing the INT0 push-button makes it count down to 00, pressing INT1 makes it count up again.
The readme also describes how everything should be packed in the box, which is cool if you want to put it away properly.
The board has a reset LED, interesting. It lights up when you press the (square blue) reset button. Such an LED is maybe helpful to detect situations where the board is kept in reset without you wanting to?
The CDROM contains a free serial port terminal program SKwizard. This utility only knows about four COM ports, when my board is on COM20… Luckily the flash programming tool FM3 can handle COM ports up to nr. 20 (phew…). Yes, I know you can assign a different number to a virtual COM port, but this is poor/old school programming. The other flash programming tool (there are two) allows port numbers up to 255.
To test ease of (re)programming the board I first tried the FM3 flash tool. This one uses the serial port for programming and is pretty straightforward to use. The only weird thing (besides the COM port numbers) is that the file picker wants an S-record file, but only knows the extensions MHX, CNV & AHX, and not the SREC files that come with the kit.
The second tool for direct USB programming over the USB device port is a bit more difficult to get started, because it needs a driver that is not on the CDROM and I could not find it on the Fujitsu website either. Contacting Fujitsu taught me that the driver is hidden in the installation folder of the Flash USB Direct tool (on my PC: c:\Program Files\Fujitsu\FUJITSU USB DIRECT Programmer\driver\). I was also told that no drivers are available yet for Windows 7, but they are coming. Once the driver installed (COM 22!), I could reprogram the board. To my surprise direct USB programming turned out to be as slow (or fast, but I prefer slow in this case) as serial port programming. However, I did like the friendly message after successful programming: “It ended normally completely”. (Probably to be pronounced with a Japanese accent.)
Example code is provided for IAR and Keil compilers. I did have Keil uVision 3 with a ULINK2 pod, but you need version 4 to open the project files, so I downloaded & installed an upgrade of 312 MB. Now with my brand new version 4 I could indeed open the example projects.
What the people at Fujitsu forgot to mention is that you have to copy the examples to your hard disk otherwise uVision will not be able to build them as it tries to create files in the project folder. More annoying is that they also did not mention that you have to manually select the device - for some reason the project does not include the device – otherwise you cannot flash the board after a build and you receive confusing error messages. So, before building a project, select the device: Project -> Options for Target, click on the Device tab and select the MB9BF506N. This will also load the correct flash algorithm file. Now build the project and load it in the processor with your ULINK2, ME or PRO pod.
If you look closely at the project files you will see a file named FLASH_DEBUG_README.txt. This file says that you should copy an FLM file from the project to the Keil environment, but it seems that uVision 4 already contains usable flash files that get loaded when you select the target device.
I could not try trace recording, because you need a ULINK Pro for that.

The board in a Keil uVision 4 / ULINK2 environment.
Now that I am finally ready to start developing for this board it is a shame to discover that there doesn’t seem to be a nice Fujitsu library encapsulating all the peripherals of the chip and the board; some sort of a BSP as people like to call it nowadays. The best they have come up with is an empty template project, a bit meager.
Documentation includes full schematics of the board, but it is lacking a mechanical drawing with the positions of the break-out connectors that seem to be placed on a convenient 0.1 inch grid. So measure carefully when you design an extension card for it.
On the board you’ll find an MB9BF506N processor (100 pins, 80 MHz, 512 KB flash, 64 KB RAM, 8 multifunction serial ports, 2 CAN ports & USB host & device, plus of course the usual timers and PWM-like peripherals, DMA and what not). Available connectors are UART-A RS-232 (9-pin female subd), UART-B USB (type A), CAN (9-pin male subd), USB host, USB device (type A), 20-pin JTAG (as usual the wrong way around for my Keil pod, Keil even gets this wrong on their own boards. Actually the cable is upside down on the pod) & Trace and headers for all the processor’s pins. On-board gadgets are two 7-segment LED displays (I always like that) and two square white push buttons.
The board can be powered from a multitude of sources: externally feeding a 1117 5V regulator, JTAG and both USB-A connectors. The processor itself will work from 2.7V up to 5.5V, meaning that this is one of the rare Cortex-M3 devices that can run directly from 5V.

Lets go!
Insert the CDROM and connect the board to the PC using the UART-B connector. A pretty well written Readme file pops up that guides you through the process of setting up a development environment for the kit. Driver installation is very easy, Windows can do it all alone (except for the usual “Do you really want to do this?” nagging). When the board is powered the 7-segment display starts counting up to 99 and then stops. Pressing the INT0 push-button makes it count down to 00, pressing INT1 makes it count up again.
The readme also describes how everything should be packed in the box, which is cool if you want to put it away properly.
The board has a reset LED, interesting. It lights up when you press the (square blue) reset button. Such an LED is maybe helpful to detect situations where the board is kept in reset without you wanting to?
The CDROM contains a free serial port terminal program SKwizard. This utility only knows about four COM ports, when my board is on COM20… Luckily the flash programming tool FM3 can handle COM ports up to nr. 20 (phew…). Yes, I know you can assign a different number to a virtual COM port, but this is poor/old school programming. The other flash programming tool (there are two) allows port numbers up to 255.
To test ease of (re)programming the board I first tried the FM3 flash tool. This one uses the serial port for programming and is pretty straightforward to use. The only weird thing (besides the COM port numbers) is that the file picker wants an S-record file, but only knows the extensions MHX, CNV & AHX, and not the SREC files that come with the kit.
The second tool for direct USB programming over the USB device port is a bit more difficult to get started, because it needs a driver that is not on the CDROM and I could not find it on the Fujitsu website either. Contacting Fujitsu taught me that the driver is hidden in the installation folder of the Flash USB Direct tool (on my PC: c:\Program Files\Fujitsu\FUJITSU USB DIRECT Programmer\driver\). I was also told that no drivers are available yet for Windows 7, but they are coming. Once the driver installed (COM 22!), I could reprogram the board. To my surprise direct USB programming turned out to be as slow (or fast, but I prefer slow in this case) as serial port programming. However, I did like the friendly message after successful programming: “It ended normally completely”. (Probably to be pronounced with a Japanese accent.)
Example code is provided for IAR and Keil compilers. I did have Keil uVision 3 with a ULINK2 pod, but you need version 4 to open the project files, so I downloaded & installed an upgrade of 312 MB. Now with my brand new version 4 I could indeed open the example projects.
What the people at Fujitsu forgot to mention is that you have to copy the examples to your hard disk otherwise uVision will not be able to build them as it tries to create files in the project folder. More annoying is that they also did not mention that you have to manually select the device - for some reason the project does not include the device – otherwise you cannot flash the board after a build and you receive confusing error messages. So, before building a project, select the device: Project -> Options for Target, click on the Device tab and select the MB9BF506N. This will also load the correct flash algorithm file. Now build the project and load it in the processor with your ULINK2, ME or PRO pod.
If you look closely at the project files you will see a file named FLASH_DEBUG_README.txt. This file says that you should copy an FLM file from the project to the Keil environment, but it seems that uVision 4 already contains usable flash files that get loaded when you select the target device.
I could not try trace recording, because you need a ULINK Pro for that.

The board in a Keil uVision 4 / ULINK2 environment.
Now that I am finally ready to start developing for this board it is a shame to discover that there doesn’t seem to be a nice Fujitsu library encapsulating all the peripherals of the chip and the board; some sort of a BSP as people like to call it nowadays. The best they have come up with is an empty template project, a bit meager.
Documentation includes full schematics of the board, but it is lacking a mechanical drawing with the positions of the break-out connectors that seem to be placed on a convenient 0.1 inch grid. So measure carefully when you design an extension card for it.
Tuesday, March 8, 2011
Embedded World 2011 - Cortex-M3 everywhere
This year I renewed my visit to the Embedded World show in Nuremburg, Germany. Walking around the four halls that make up this big show it was simply impossible not to notice the ARM Cortex-M3 based controllers all around. Most chip manufacturers showed off boards with Cortex M3 devices, including ARM itself with their mbed board and other dev boards. There were also some Cortex-M4 demo's around from f.i. NXP (LPC4300) and Freescale (Kinetis).
This show was also rich in free kits; especially ST was very generously handing out STM32 and STM8 kits. I did not accept all of them, because I have no idea what to do with ‘em. Yet I did leave with (amongst others) a BeagleBoard-xM (thank you TI!), an FTDI Vinculo that I will review later on this blog and a ZigBee kit from ST. Fujitsu promised me to send me a Cortex-M3 kit by mail, I wonder if it will ever arrive.
Update 18/3: I received today a Fujitsu SK-FM3-100PMC kit, nicely boxed. More about it, hopefully soon, on this blog.
Due to a rather large amount of business meetings I did not see a whole lot of new or exciting things this year. However, I did get a demo of the very impressive new PIC32 compiler from MikroElektronika. These guys are definitely setting the new comfort standards for embedded software development. Wow! I always liked Microsoft’s Visual Studio, but this is way, way better. And the good news is that they are planning an ARM compiler too! At just under $300 (or $200 if you buy a board too) this is a bargain.
While I’m on compilers, Atmel too presented a new one: AVR Studio 5. This is a great tool too, and toujours completely free. V5 brings together AVR Studio 4 and AVR32 Studio into one IDE. It also integrates the AVR Software Framework (ASF) and over 400 example projects that used to be all over their website. Now you just pick your board and then the example that comes closest to what you want to do and off you go.
From the chip front I would like to mention the new ultra low-power 32-bit micro-controller family from Renesas, the RL78. Besides being low-power, this family is also ultra low-dollar. With an operating current of only 70 µA/MHz this is a direct competitor for the MSP430 from TI. But TI told me that they will announce an ultra-ultra-low-power MSP family later this year that will blow away the competition.
Microchip proudly announced their new PIC18F K80 micro. This is an 8-bit device that costs over one dollar, even at high quantities. This nicely illustrates the 8/32 bit paradox, but both Atmel and Microchip expect that the 8-bit market will continue to grow.
That is was not only Cortex-M3 all around proved Digi who had on display their pretty impressive ConnectCore Wi-i.MX51. As Digi's website says: "This module is a highly integrated and future-proof System-on-Module (SoM) solution based on the Freescale i.MX51 application processor with a high performance 600/800 MHz ARM Cortex-A8 core, powerful multimedia capabilities and a complete set of peripherals.".

The kit on the left is running Android, the kit at the right runs Ubuntu.
Digi's latest board, the ConnectCore Wi-i.MX53, was on display at the Freescale stand.
Rabbit 6000 modules are now available too.
Analog Devices showed me their new MEMS gyroscopes that have extremely low drift. So, I guess this is good news for the dead reckoning people.
FTDI presented a rather mysterious device, the FT1248. Although they did make it clear that this device communicates over a 1, 2, 4 or 8 bit wide bus of which the width can be adjusted on the fly, I did not grasp the reason of being of this chip. It is probably very useful or they wouldn’t have spent any time on it, but useful for what exactly? I guess that it is a bus extender of some sort, but I can’t find the data-sheet. Oh well, I am sure someone will figure this out for me.
I really like this show; I can hardly wait for next year.
This show was also rich in free kits; especially ST was very generously handing out STM32 and STM8 kits. I did not accept all of them, because I have no idea what to do with ‘em. Yet I did leave with (amongst others) a BeagleBoard-xM (thank you TI!), an FTDI Vinculo that I will review later on this blog and a ZigBee kit from ST. Fujitsu promised me to send me a Cortex-M3 kit by mail, I wonder if it will ever arrive.
Update 18/3: I received today a Fujitsu SK-FM3-100PMC kit, nicely boxed. More about it, hopefully soon, on this blog.
Due to a rather large amount of business meetings I did not see a whole lot of new or exciting things this year. However, I did get a demo of the very impressive new PIC32 compiler from MikroElektronika. These guys are definitely setting the new comfort standards for embedded software development. Wow! I always liked Microsoft’s Visual Studio, but this is way, way better. And the good news is that they are planning an ARM compiler too! At just under $300 (or $200 if you buy a board too) this is a bargain.
While I’m on compilers, Atmel too presented a new one: AVR Studio 5. This is a great tool too, and toujours completely free. V5 brings together AVR Studio 4 and AVR32 Studio into one IDE. It also integrates the AVR Software Framework (ASF) and over 400 example projects that used to be all over their website. Now you just pick your board and then the example that comes closest to what you want to do and off you go.
From the chip front I would like to mention the new ultra low-power 32-bit micro-controller family from Renesas, the RL78. Besides being low-power, this family is also ultra low-dollar. With an operating current of only 70 µA/MHz this is a direct competitor for the MSP430 from TI. But TI told me that they will announce an ultra-ultra-low-power MSP family later this year that will blow away the competition.
Microchip proudly announced their new PIC18F K80 micro. This is an 8-bit device that costs over one dollar, even at high quantities. This nicely illustrates the 8/32 bit paradox, but both Atmel and Microchip expect that the 8-bit market will continue to grow.
That is was not only Cortex-M3 all around proved Digi who had on display their pretty impressive ConnectCore Wi-i.MX51. As Digi's website says: "This module is a highly integrated and future-proof System-on-Module (SoM) solution based on the Freescale i.MX51 application processor with a high performance 600/800 MHz ARM Cortex-A8 core, powerful multimedia capabilities and a complete set of peripherals.".

The kit on the left is running Android, the kit at the right runs Ubuntu.
Digi's latest board, the ConnectCore Wi-i.MX53, was on display at the Freescale stand.
Rabbit 6000 modules are now available too.
Analog Devices showed me their new MEMS gyroscopes that have extremely low drift. So, I guess this is good news for the dead reckoning people.
FTDI presented a rather mysterious device, the FT1248. Although they did make it clear that this device communicates over a 1, 2, 4 or 8 bit wide bus of which the width can be adjusted on the fly, I did not grasp the reason of being of this chip. It is probably very useful or they wouldn’t have spent any time on it, but useful for what exactly? I guess that it is a bus extender of some sort, but I can’t find the data-sheet. Oh well, I am sure someone will figure this out for me.
I really like this show; I can hardly wait for next year.
Labels:
Atmel,
BeagleBoard,
Cortex-M3,
Digi,
Embedded World,
i.MX51,
i.MX53,
Microchip,
MikroElektronika,
RL78,
Vinculo
Subscribe to:
Posts (Atom)
