This morning (29/7) I took off from Schiphol (Amsterdam airport) for Austin, Texas to assist at the 17th NIWeek. During the flight I kept my phone switched off in a pocket of my pants. Now, when my phone is switched off the key lock function does not work because it is a function of the operating system of the phone, not a hardware feature. So, without me noticing, my phone got switched on in my pocket while I was looking out of the window (I had a window seat) and apparently I unknowingly sort of "punched" in (with my thigh or handkerchief) several wrong PIN codes which resulted in a blocked SIM card when I took my phone out again in Houston (where I had to change planes). To unblock the PIN code my phone now first wanted a Personal Unblocking Code (PUK) code, which off course I didn't know. A helpful girl in a phone shop on the airport told me that this code is often printed on the SIM card itself. So I examined my SIM card and indeed discovered a 17-digit code of which the first 8 digits turned out to be the PUK code for my SIM card. Great!
Or is it? Thanks to the missing hardware key lock feature my SIM card got blocked, but thanks to the PUK code conveniently printed on my SIM card, I can unblock it again. And if I can do this, anyone who gets hold of my phone can do this. How's that for anti-theft protection?
So, problem solved? Well... no. Entering the PUK code gave me the right to choose a new PIN code that I had to confirm by typing it again, which I did without errors. 1234 is not so difficult to get right, right? Wrong! According to my phone my new PIN code is incorrect (???) and I am back to the PUK code. I would now be stuck in an endless loop if it weren't for the cleverly built-in hang protection (they did think of that): the number of tries is limited to 8. I still have 3 left...
Tomorrow I will buy a prepaid local SIM card.
Saturday, July 30, 2011
Wednesday, July 20, 2011
Vanity chips
Have you ever heard of the company Valens Semiconductor? I hadn't either, until last night.
In 2009 Valens Semiconductor together with LG, Samsung and Sony announced their intention to launch a cross-industry alliance to promote and standardize the HDBaseT technology for whole-home distribution of uncompressed HD multimedia content. A few days later Valens announced the availability of an HDBaseT-compliant chipset: the VS100, consisting of the VS100TX transmitter and the VS100RX (receiver). This chipset enables the convergence of uncompressed full HD digital video, audio, 100BaseT Ethernet, power and control through a single, standard 100m/328ft LAN cable.
(I got this from their website)
To me this sounds like an interesting chipset (although a bit out of my league) for more than one reason. One of those reasons is the printing on the chip. Why?
Well, you may not know it, but my name is Valens. Before the era of internet my family and me knew of very few other people named Valens. There was of course Richie Valens, but that is not his real name, and there were some roman emperors named Valens (I have a coin to prove it). Now that the world population is massively coming on line more and more people and companies named Valens surface.
If you are an electronics engineer and your name happens to be National, Renesas or Avago you can easily find chips with your name on it, but for most other people such an opportunity is pretty rare. And I just came across one!
I want this chipset. Not for building something with it, but to keep on my desk. I want a vanity chip(set). Of course I have contacted the company and asked for a sample. If I get hold of one of these chips I will of course post it here.
In 2009 Valens Semiconductor together with LG, Samsung and Sony announced their intention to launch a cross-industry alliance to promote and standardize the HDBaseT technology for whole-home distribution of uncompressed HD multimedia content. A few days later Valens announced the availability of an HDBaseT-compliant chipset: the VS100, consisting of the VS100TX transmitter and the VS100RX (receiver). This chipset enables the convergence of uncompressed full HD digital video, audio, 100BaseT Ethernet, power and control through a single, standard 100m/328ft LAN cable.
(I got this from their website)
To me this sounds like an interesting chipset (although a bit out of my league) for more than one reason. One of those reasons is the printing on the chip. Why?
Well, you may not know it, but my name is Valens. Before the era of internet my family and me knew of very few other people named Valens. There was of course Richie Valens, but that is not his real name, and there were some roman emperors named Valens (I have a coin to prove it). Now that the world population is massively coming on line more and more people and companies named Valens surface.
If you are an electronics engineer and your name happens to be National, Renesas or Avago you can easily find chips with your name on it, but for most other people such an opportunity is pretty rare. And I just came across one!
I want this chipset. Not for building something with it, but to keep on my desk. I want a vanity chip(set). Of course I have contacted the company and asked for a sample. If I get hold of one of these chips I will of course post it here.
Wednesday, July 6, 2011
Control a robot with a watch
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.
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.
Labels:
ARM,
Cortex-M3,
Evalbot,
Stellaris,
Texas Instruments
Thursday, May 19, 2011
Intelligent simple peripherals
This week I once again wrote an interrupt service routine for a UART to do some serial communication. Actually I didn’t have to write a whole lot, because the receiver part had already been done by someone else, but the code for transmitting data under interrupt control was missing. I already had this code in another project and porting it was easy and quick, but then I started thinking.
Like me, probably thousands of programmers all over the world are doing this every day, which is a waste of time and resources. Of course we all try to reuse code as much as possible, but with micro-controllers getting more and more advanced, why don’t the silicon vendors simply implement the driver in the peripheral, in silicon? I mean, how many people do use the UART for other things than simply sending and receiving data? OK, we see more and more 16550 compatible UARTs, so drivers are easily found, but then again, why not put it in a ROM for the programmer’s convenience? All it has to do is to read data from a buffer and write data to it, all under interrupt control of course. An intelligent peripheral like that would save some code space, but most importantly, it would save lots of programmer’s time.
Such an intelligent peripheral would have a pretty simple interface: some registers to set up circular rx & tx buffers and the communication parameters, registers to read/write a block of data and some status registers to check for errors. The user only has to supply a block of RAM for the buffers. This is what most of us implement in our code anyway. For backward compatibility they should keep the traditional interface too, that way everything is possible.
Similar peripherals for other protocols could be integrated as well, like I2C or SPI.
The typical ISR for I2C is rather complicated and big, and is therefore prone to many bugs. Many software developers are struggling to get it working properly, so it would be a great service to them if the driver was already in the chip. I am not pleading for a full blown on-chip operating system, but some simple drivers that will take care of the most common tasks sure would be nice.
So you silicon vendors reading this please do give it a thought. I appreciate the integrated USB drivers, but don’t stop there. Why don’t you make things even better by adding hardcoded drivers for “simple” peripherals too?
Like me, probably thousands of programmers all over the world are doing this every day, which is a waste of time and resources. Of course we all try to reuse code as much as possible, but with micro-controllers getting more and more advanced, why don’t the silicon vendors simply implement the driver in the peripheral, in silicon? I mean, how many people do use the UART for other things than simply sending and receiving data? OK, we see more and more 16550 compatible UARTs, so drivers are easily found, but then again, why not put it in a ROM for the programmer’s convenience? All it has to do is to read data from a buffer and write data to it, all under interrupt control of course. An intelligent peripheral like that would save some code space, but most importantly, it would save lots of programmer’s time.
Such an intelligent peripheral would have a pretty simple interface: some registers to set up circular rx & tx buffers and the communication parameters, registers to read/write a block of data and some status registers to check for errors. The user only has to supply a block of RAM for the buffers. This is what most of us implement in our code anyway. For backward compatibility they should keep the traditional interface too, that way everything is possible.
Similar peripherals for other protocols could be integrated as well, like I2C or SPI.
The typical ISR for I2C is rather complicated and big, and is therefore prone to many bugs. Many software developers are struggling to get it working properly, so it would be a great service to them if the driver was already in the chip. I am not pleading for a full blown on-chip operating system, but some simple drivers that will take care of the most common tasks sure would be nice.
So you silicon vendors reading this please do give it a thought. I appreciate the integrated USB drivers, but don’t stop there. Why don’t you make things even better by adding hardcoded drivers for “simple” peripherals too?
Wednesday, May 4, 2011
FRAM - true unified memory
Somewhere in the beginning of 2007 I won in a lottery held by EPN magazine an evaluation board from Ramtron sporting their most powerful 8051 clone, the VRS51L3074, which could be programmed and debugged with a small USB piggyback board. The very special thing of the Ramtron controller was the 8 KB of non-volatile ferroelectric memory (F-RAM) it included.
Instead of putting the board in a box, I actually used it in a project. I used the F-RAM to store some parameters in. The evaluation board also had several other F-RAM chips on it, but I did not use those. Once the project finished (it was published in the January 2009 issue of Circuit Cellar) I (almost) forgot about F-RAM and never heard from Ramtron again.
This year at the Embedded World show in Nuremberg I again came across F-RAM, now spelled FRAM, at the Fujitsu stand. It turned out that they started licensing the technology from Ramtron and that they had put some of it in their MB95R family of 8-bit MCUs. Fujitsu also offers stand-alone FRAM devices up to 4 Mbit.
This week Texas Instruments announced their brand-new MSP430FR57xx family that includes up to 16 KB of FRAM, licensed at the same source. The people at TI are very excited about it and have high expectations for the future.
So what exactly is FRAM and why would you be excited about it?
The F in FRAM stands for ferroelectric (and not ferromagnetic nor Fujitsu) because it “uses ferroelectric film as a capacitor for storing data. Possessing characteristics of both ROM and RAM devices, FRAM features high speed access, high endurance in write mode, low power consumption, non-volatility, and excellent tamper resistance.” (Source: Fujitsu)
How it all works at the atomic level is not so important here, let’s jump to the bits interesting for people wanting to use FRAM in a design.
First there is speed. Compared to flash memory FRAM is way faster, TI claims a 100 times faster. According to Fujitsu, FRAM is 30,000 times faster than EEPROM.
Secondly, there is power consumption. FRAM uses very little power, 250 (TI) to 400 (Fujitsu) times less than flash or EEPROM. This is active power. Interestingly enough FRAM has a slightly higher leakage current than flash memory, so power consumption in sleep mode is slightly worse.
Less energy and higher speed means cost savings, not only on the power budget, but also on the production budget for the high-volume people that measure the time it takes to program a device on the production line.
Then there is endurance. Flash & EEPROM memory cells are specified for some 10,000 write cycles, whereas a FRAM memory cell can be rewritten more than a trillion times! (Fujitsu is a bit conservative here, TI rather optimistic.) This kind of endurance combined with the higher speed means that FRAM can be used in place of SRAM.
FRAM works with low programming voltages down to 1.5 V. Replacing a block of flash memory by a block of FRAM of the same density then saves die space because FRAM doesn’t need a charge pump. Smaller means cheaper. Also, because of the low programming voltage new applications become possible where the higher flash programming voltages are currently considered dangerous.
Finally, FRAM is less sensitive to external fields and alpha particles than flash memory because the memory cell capacitor’s dielectric is much thinner than the one of a flash memory cell. The thinner the dielectric the less distance there is to develop a dV over and the smaller are the chances to (accidentally) modify a bit.
All these advantages were known from the start, so why did it take so long before FRAM made its way into non-Ramtron MCUs? Well, I don’t know about Fujitsu, but according to TI the main reason was the incompatibility of the technology. Five years ago FRAM was done in 350 nm technology, which was too big to use it in TI’s chips. Now they brought it down to 130 nm, which is a perfect fit.

This is a picture of a demo board showing off the low-power capabilities of the new MSP430 family, targeted at energy harvesting applications. Battery backed SRAM, flahs or EEPROM can all be replaced by FRAM, the speed and low power requirements of FRAM make external super caps unnecessary. Higher speed equates to shorter up times so ultra-super-low-power applications seem to be ideal.
Since anyone can license this technology from Ramtron, we can expect other parts from other manufacturers to appear in the next months or years.
Jeez, why didn’t I buy Ramtron stock at the time when nobody cared?
Instead of putting the board in a box, I actually used it in a project. I used the F-RAM to store some parameters in. The evaluation board also had several other F-RAM chips on it, but I did not use those. Once the project finished (it was published in the January 2009 issue of Circuit Cellar) I (almost) forgot about F-RAM and never heard from Ramtron again.
This year at the Embedded World show in Nuremberg I again came across F-RAM, now spelled FRAM, at the Fujitsu stand. It turned out that they started licensing the technology from Ramtron and that they had put some of it in their MB95R family of 8-bit MCUs. Fujitsu also offers stand-alone FRAM devices up to 4 Mbit.
This week Texas Instruments announced their brand-new MSP430FR57xx family that includes up to 16 KB of FRAM, licensed at the same source. The people at TI are very excited about it and have high expectations for the future.
So what exactly is FRAM and why would you be excited about it?
The F in FRAM stands for ferroelectric (and not ferromagnetic nor Fujitsu) because it “uses ferroelectric film as a capacitor for storing data. Possessing characteristics of both ROM and RAM devices, FRAM features high speed access, high endurance in write mode, low power consumption, non-volatility, and excellent tamper resistance.” (Source: Fujitsu)
How it all works at the atomic level is not so important here, let’s jump to the bits interesting for people wanting to use FRAM in a design.
First there is speed. Compared to flash memory FRAM is way faster, TI claims a 100 times faster. According to Fujitsu, FRAM is 30,000 times faster than EEPROM.
Secondly, there is power consumption. FRAM uses very little power, 250 (TI) to 400 (Fujitsu) times less than flash or EEPROM. This is active power. Interestingly enough FRAM has a slightly higher leakage current than flash memory, so power consumption in sleep mode is slightly worse.
Less energy and higher speed means cost savings, not only on the power budget, but also on the production budget for the high-volume people that measure the time it takes to program a device on the production line.
Then there is endurance. Flash & EEPROM memory cells are specified for some 10,000 write cycles, whereas a FRAM memory cell can be rewritten more than a trillion times! (Fujitsu is a bit conservative here, TI rather optimistic.) This kind of endurance combined with the higher speed means that FRAM can be used in place of SRAM.
FRAM works with low programming voltages down to 1.5 V. Replacing a block of flash memory by a block of FRAM of the same density then saves die space because FRAM doesn’t need a charge pump. Smaller means cheaper. Also, because of the low programming voltage new applications become possible where the higher flash programming voltages are currently considered dangerous.
Finally, FRAM is less sensitive to external fields and alpha particles than flash memory because the memory cell capacitor’s dielectric is much thinner than the one of a flash memory cell. The thinner the dielectric the less distance there is to develop a dV over and the smaller are the chances to (accidentally) modify a bit.
All these advantages were known from the start, so why did it take so long before FRAM made its way into non-Ramtron MCUs? Well, I don’t know about Fujitsu, but according to TI the main reason was the incompatibility of the technology. Five years ago FRAM was done in 350 nm technology, which was too big to use it in TI’s chips. Now they brought it down to 130 nm, which is a perfect fit.

This is a picture of a demo board showing off the low-power capabilities of the new MSP430 family, targeted at energy harvesting applications. Battery backed SRAM, flahs or EEPROM can all be replaced by FRAM, the speed and low power requirements of FRAM make external super caps unnecessary. Higher speed equates to shorter up times so ultra-super-low-power applications seem to be ideal.
Since anyone can license this technology from Ramtron, we can expect other parts from other manufacturers to appear in the next months or years.
Jeez, why didn’t I buy Ramtron stock at the time when nobody cared?
Labels:
FRAM,
Fujitsu,
MSP430,
Ramtron,
Texas Instruments
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, April 5, 2011
Open4 EvoPrimer
In the previous post I mentioned the Open World Design Contest launched by ST and others. The participants who make it into the second round will get free development tools, notably the EvoPrimer platform.
This platform is actually a very interesting set of tools developed by Raisonance under the name of Open4 (read as “Open for …”). The system is very open indeed and schematics and source code can be downloaded for free. A system consists of a base, a kind of multimeter-sized pod, and target boards that slide into the pod. The base offers the human interface like a color touch screen, a joystick, buttons, LEDs, audio I/O, IrDA, accelerometer and a li-ion battery with charger, the target board offers the applications.

Open 4 dissection...
Several target boards are available, with 8-bit and 32-bit processors from ST, but you can also develop your own. When you open the base you get access to a connector for extension cards that can slide through an opening under de joystick (if you remove the cover). This connector is the main way to go for those who want to add something to the system.
Software development is done with the Ride7 IDE, also from Raisonance, using GCC. The free version lets you compile and flash any size of code and debug executables of up to 32 KB. You have to pay for unlimited debugging. The IDE connects directly to the base through a USB port, without the need for additional programming or debugging pods. Ride7 also offers an ARM simulator.
Instead of writing all the GUI code yourself, you should (but you are not obliged to) built your application on CircleOS. It is not clear to me who the owner is of this OS, but the main thing is that it is free and open source software. CircleOS handles the display, the touch screen and all other hardware that is built in the EvoPrimer base. It also calls the user application on a regular basis and it lets the application interact with the OS to obtain button states etc. Applications are stored in a special memory area and there is room for several of them. The OS will allow the user to select the application from a menu. The application memory available depends on the target board you are using.

Ride7 is a nice IDE indeed!
Although Raisonance and their tools seem to concentrate on microcontrollers from ST, the Ride7 IDE can also be used for ARM-based controllers from other brands. It happily supports many NXP and TI (Luminary) models and if you look in the Ride7 installation folders you will find more supported processors than that the IDE lets you choose from. If you don’t like Eclipse (who does?) and if you don’t mind debugging the hard way, this is a very nice IDE for ARM development. My next Sceptre project will probably be done using this IDE.
Oh, did I mention the price of an EvoPrimer kit? About 100 euros for a base with target board!
This platform is actually a very interesting set of tools developed by Raisonance under the name of Open4 (read as “Open for …”). The system is very open indeed and schematics and source code can be downloaded for free. A system consists of a base, a kind of multimeter-sized pod, and target boards that slide into the pod. The base offers the human interface like a color touch screen, a joystick, buttons, LEDs, audio I/O, IrDA, accelerometer and a li-ion battery with charger, the target board offers the applications.

Open 4 dissection...
Several target boards are available, with 8-bit and 32-bit processors from ST, but you can also develop your own. When you open the base you get access to a connector for extension cards that can slide through an opening under de joystick (if you remove the cover). This connector is the main way to go for those who want to add something to the system.
Software development is done with the Ride7 IDE, also from Raisonance, using GCC. The free version lets you compile and flash any size of code and debug executables of up to 32 KB. You have to pay for unlimited debugging. The IDE connects directly to the base through a USB port, without the need for additional programming or debugging pods. Ride7 also offers an ARM simulator.
Instead of writing all the GUI code yourself, you should (but you are not obliged to) built your application on CircleOS. It is not clear to me who the owner is of this OS, but the main thing is that it is free and open source software. CircleOS handles the display, the touch screen and all other hardware that is built in the EvoPrimer base. It also calls the user application on a regular basis and it lets the application interact with the OS to obtain button states etc. Applications are stored in a special memory area and there is room for several of them. The OS will allow the user to select the application from a menu. The application memory available depends on the target board you are using.

Ride7 is a nice IDE indeed!
Although Raisonance and their tools seem to concentrate on microcontrollers from ST, the Ride7 IDE can also be used for ARM-based controllers from other brands. It happily supports many NXP and TI (Luminary) models and if you look in the Ride7 installation folders you will find more supported processors than that the IDE lets you choose from. If you don’t like Eclipse (who does?) and if you don’t mind debugging the hard way, this is a very nice IDE for ARM development. My next Sceptre project will probably be done using this IDE.
Oh, did I mention the price of an EvoPrimer kit? About 100 euros for a base with target board!
Subscribe to:
Posts (Atom)

