A few months ago, I wrote a post about running uCLinux on Cortex M3/M4. Since then I’ve had the opportunity to play a with Cortex M3 & M4 boards capable of running Linux, as last week, I received Emcraft Systems Freescale K70 Starter Kit together with their MicroSemi (previously known as Actel) Smartfusion SoM.
Today, I’ll show some pictures of the baseboard and modules I received in the kit, and some details about the documentation and how to get started with the modules.
Unboxing Pictures
Here’s the baseboard with Ethernet, USB interface using USB-UART bridge connected to the UART0, JTAG connectors (P3 and P5), two push-buttons and a breadboard for easy access to unused signals (ADC, I2C, SPI, UART and GPIOs). P4 and P6 are the sockets to plug in the SoM.
There is a lithium-ion battery (CR2016) at the back of the board for the RTC clock.
As previously mentioned, I’ve received 2 SoMs, but I’ve just taken pictures of Freescale K70 system on module, as both are similar. The tiny module comes with Freescale K70 Cortex M4 MCU (PK70FN1M0VMJ12), 64 MB LPDRAM and 128 MB NAND Flash.
There are no active components on the back of the module, just capacitors, resistors, a crystal oscillator and P1/P2 connectors to interface with the baseboard.
MicroSemi Smartfusion SoM comes with with MicroSemi Cortex M3 MCU (A2F500M3G), 16 MB PSRAM and 8 MBytes NOR Flash.
The starter kit also ships with a mini USB to USB serial cable that is used to power the board and debug via the serial interface. There is no documentation provided with the package, because once you buy a starter kit, you’ll be able to download the BSP and documentation on Emcraft website.
Documentation
Emcraft Systems provides lots of good documentation. However, the first time, it’s a little confusing because you don’t really know where to start. A README file or Quick Start Guide to explain what each file is for, and possibly a picture with the description of he baseboard would have be useful.
For Freescale K70 SoM, you can download one file (linux-k70-1.6.0.zip) that contains the following:
- k70-som-bsb-ha.pdf – Kinetis K70 System-On-Module (SOM) Baseboard Hardware Architecture
- k70-som-ha.pdf – Kinetis K70 System-On-Modules (SOM) Hardware Architecture
- linux-cortexm-um-1.6.0.pdf – Linux Cortex-M User’s Manual
- linux-K70-1.6.0.tar.bz2 – The actual Freescale K70 Linux BSP
- linux-K70-SOM-bspg-1.6.0.pdf – BSP (Board Support Package) Guide for Emcraft Systems K70 SOM Board
- linux-TWR-K70F120M-bspg-1.6.0.pdf – BSP (Board Support Package) Guide for Freescale TWR-K70F120M Board
- networking.uImage – Kernel image for network boot
- SOM-BSB-1A-bom.xls / SOM-BSB-1A-schem.pdf – Schematics and BoM for the baseboard
- u-boot-k70-som.bin – U-Boot image for K70 SoM
- u-boot-twr-k70.srec – U-Boot image for Freescale K70 tower module
For MicroSemi Smartfusion SoM, there is also one file to download (linux-a2f-1.6.0.zip) which contains the following:
- a2f-actel-dev-brd-F.zip – Libero project for the Actel’s SmartFusion Development Board
- a2f-hoermann-1_0.zip – Libero project for the Hoermann IMG’s SmartFusion Embedded Evaluation Board
- a2f-lnx-evb-2A.zip – Libero project for the A2F-LNX-EVB-2A board
- a2f-som-1a.zip – Libero project for the A2F-SOM-FG484 (That’s the one we need)
- a2f-som-ha.pdf – SmartFusion SOM (System-On-Module) Hardware Architecture
- linux-A2F-1.6.0.tar.bz2 – The Actel Smartfusion Linux BSP
- linux-A2F-HOERMANN-BRD-bspg-1.6.0.pdf – BSP (Board Support Package) Guide for Hoermann-IMG SmartFusion Embedded Board
- linux-A2F-LNX-EVB-bspg-1.6.0.pdf – BSP (Board Support Package) Guide for Emcraft Systems A2F-LNX-EVB Board
- linux-A2F-SOM-bspg-1.6.0.pdf – BSP (Board Support Package) Guide for Emcraft Systems SmartFusion SOM Board
- linux-Actel-DEV-BRD-bspg-1.6.0.pdf – BSP (Board Support Package) Guide for Microsemi A2F500-DEV-BRD Board
- linux-cortexm-um-1.6.0.pdf – Linux Cortex-M User’s Manual
- networking.uImage – Kernel image for network boot
- SOM-BSB-1A-bom.xls / SOM-BSB-1A-schem.pdf – Schematics and BoM for the baseboard
- som-bsb-ha.pdf – SmartFusion SOM (System-On-Module) Baseboard Hardware Architecture
The files contain documentation and software for several hardware platforms, as Emcraft does not only support their own modules, but also other boards such as Freescale TWR-K70F120M board and Hoermann-IMG SmartFusion embedded board.
Accessing the command line
A demo is preloaded on the starter kit, and accessing the command line is straightforward:
- Connect the mini USB to USB cable to the target board and your computer.
- Wait until the driver installation to complete for the first time. A new COM port should show up. (In my case COM9 in Windows XP).
- Start a 115,200 bps serial connection with putty / hyperterminal in Windows or minicom / screen in Linux
- That’s all
The boot is very fast and you can have access to the command line in less than 2 seconds.
Here are the MCU details.
- For Freescale K70 SoM:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
~ # cat /proc/cpuinfo Processor : ARMv7-M Processor rev 1 (v7ml) BogoMIPS : 112.23 Features : swp half thumb fastmult vfp edsp CPU implementer : 0x41 CPU architecture: ?(11) CPU variant : 0x0 CPU part : 0xc24 CPU revision : 1 Hardware : Freescale Kinetis Revision : 0000 Serial : 0000000000000000 |
- For MicroSemi SmartFusion SoM
1 2 3 4 5 6 7 8 9 10 11 12 13 |
~ # cat /proc/cpuinfo Processor : ARMv7-M Processor rev 1 (v7ml) BogoMIPS : 13.82 Features : swp half thumb fastmult edsp CPU implementer : 0x41 CPU architecture: ?(11) CPU variant : 0x1 CPU part : 0xc23 CPU revision : 1 Hardware : Actel A2F Revision : 0000 Serial : 0000000000000000 |
Busybox has been cut to the bare minimum in the demo image:
1 2 3 4 5 6 |
~ # busybox [, [[, cat, chmod, chown, cp, cttyhack, date, df, dnsdomainname, echo, flash_eraseall, flashcp, halt, hostname, httpd, hush, ifconfig, init, kill, ln, login, ls, mkdir, mount, mv, netstat, nslookup, ntpd, ping, poweroff, ps, pwd, reboot, rm, route, sh, sleep, telnet, telnetd, test, traceroute, udhcpc, umount, vi, wc, wget |
But this is not a problem since you can also build your own with extra commands if needed.
Only about 4 MB of system memory is used in the Kinetis SoM:
1 2 3 |
cat /proc/meminfo MemTotal: 63788 kB MemFree: 59716 kB |
That leaves plenty of memory for running the application.
Power Consumption
One of the main advantage of those boards is their low power consumption, so I measured the intensity for both modules (via JP1 jumper), right after the boards are booted and run busybox:
- Freescale K70 SoM: 115 mA or about 380 mW (115 mA * 3.3 V)
- MicroSemi SmartFusion SoM: 101 mA or about 330 mW
I suppose power consumption can be reduced by different methods such as adjusting the clock speed, but I haven’t studied this into details. It should be expect that the MicroSemi SoM consumes less than Freescale K70, as the latter runs at 120 MHz vs 100 MHz for the former.
Setting up the development environment, building and running Linux and busybox
I’ve setup my Linux machine for development by following chapter 4 “Linux Cortex-M Software Development Environment” in linux-cortexm-um-1.6.0.pdf which is publicly available for download:
1 2 3 4 5 6 |
tar xjvf linux-K70-1.6.0.tar.bz2 cd linux-cortexm-1.6.0/tools wget http://www.codesourcery.com/sgpp/lite/arm/portal/package6503/public/arm-uclinuxeabi/arm-2010q1-189-arm-uclinuxeabi-i686-pc-linux-gnu.tar.bz2 tar xvfj arm-2010q1-189-arm-uclinuxeabi-i686-pc-linux-gnu.tar.bz2 cd .. source ACTIVATE.sh |
That’s all you need to configure your build machine.
You can then select one of the existing project and build the kernel and busybox. I
1 2 |
cd projects/networking/ make |
Setup a tftp server. Here’s the command I used in Ubuntu 12.04:
1 |
sudo aptitude install tftpd |
Copy the image to the default tftp server directory:
sudo cp networking.uImage /srv/tftp
Back to the board serial console, reboot the board and press a key to enter U-boot and configure it to start your newly built image:
1 2 3 4 5 |
K70-SOM> setenv ipaddr 192.168.0.200 K70-SOM> setenv serverip 192.168.0.102 K70-SOM> setenv image networking.uImage K70-SOM> saveenv K70-SOM> run netboot |
This will download your newly built image via TFTP and start it.
If you are interested in these development boards, you can buy them on Emcraft Systems online store. Kinetis K70 System-On-Module Starter Kit is available for 99 USD and SmartFusion System-On-Module Starter Kit for 126 USD. Regular prices are respectively 159 and 176 USD, but the kits are discounted until the end of June. You need to ask for a discount coupon to a2f-linux-support at emcraft.com. It’s also possible to buy the modules separately without the baseboard.
The modules are available in quantities (500 units) for 69 USD (Microsemi SmartFusion SoM) and 49 USD (Freescale Kinetis K70 SoM) per piece.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress