17
Freescale and TI Embedded Modules ARM Cortex Programming From Concept to Reality Wolfgang Heinz-Fischer Head of Marketing & PR, TQ-Group Low-Power Design Techniques TQ-Group’s Comprehensive Design Process + +

From Concept Reality to · Cambrios Technologies Corporation In the Spotlight: Even though my team and I spend a lot of time on chemical engineering, working at Cambrios requires

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: From Concept Reality to · Cambrios Technologies Corporation In the Spotlight: Even though my team and I spend a lot of time on chemical engineering, working at Cambrios requires

Freescale and TI Embedded

Modules

ARMCortex

Programming

From Concept to

Reality Wolfgang Heinz-Fischer

Head of Marketing & PR, TQ-Group

Low-Power Design Techniques

TQ-Group’s Comprehensive Design Process

+

+

Page 2: From Concept Reality to · Cambrios Technologies Corporation In the Spotlight: Even though my team and I spend a lot of time on chemical engineering, working at Cambrios requires

CONTENTS

4 FEATURED ENGINEERMICHAEL SPAID - CAMBRIOS TECHNOLOGIES CORPORATION

3

6 TECH ARTICLENXP SEMICONDUCTOR LOGIC IN AUTOMOTIVE APPLICATIONS

10 TECH ARTICLERASPBERRY PI PRIMER PART 2: RASPBIAN WHEEZY SETUP

16 COVER INTERVIEWWOLFGANG HEINZ-FISCHER - HEAD OF MARKETING, TQ-GROUP

EMBEDDED WORKBENCH

PRODUCT HIGHLIGHTMURATA NETWORK CONTROLLER

FEATURED ARTICLEPROGRAMMING ARM CORTEX-M MCUs

15

24

30

At Embedded Developer you can compare

and .You can also compare ARM®

s

and development tools.Then you can buy them.

www.embeddeddeveloper.comEverything you're looking for in one place.

you can compare

and .You can also compare ARM

you can compareyou can compare

and . and .You can also compare ARMYou can also compare ARMYou can also compare ARMYou can also compare ARM

s

and development tools.

Page 3: From Concept Reality to · Cambrios Technologies Corporation In the Spotlight: Even though my team and I spend a lot of time on chemical engineering, working at Cambrios requires

54

ENGINEER SPOTLIGHT

54

Did you always know you would be an engineer?

I did not start my education studies or career planning pursuing engineering. In college, I received the dean’s honors scholarship primarily for music, playing the piano all four years of school. During my second year, however, I committed myself to engineering and have been dedicated to the craft ever since. I must thank my high school teacher for sparking my interest in chemical engineering. Two years later, I received my Bachelor of Science degree from Tulane University. Following my time in New Orleans, I moved out West and obtained my Master of Science and Ph.D. degrees from Stanford University in chemical engineering. After completing my schooling, I began my career with the National Institute of Standards and Technology (NIST) in Maryland and later worked for Corning in upstate New York. Prior to joining Cambrios in 2005, I was the director of engineering with Caliper Life Sciences – microfluidics. In my current role at Cambrios, I’m proudly working in the field of electronic materials, as Cambrios makes coatable suspensions of silver nanowires, called ClearOhm® materials, that are used as transparent conductors in touchscreens, organic light-emitting diode (OLED) lighting, Organic Photo Voltaic Cells and other applications.

Can you tell us about your favorite project?

Between 2005 and 2006, Cambrios was telling customers that we could make transparent conductors using our silver nanowires, and in spite of some impressive specifications we delivered.

Customers could not quite comprehend the product and asked us for samples. In those days, we were making small test coupons in the lab – with the lengthy development process of one week per test coupon. There is no doubt, the samples developed were the most precious items in the lab and I, along with my team, were extremely proud of what we’d accomplished. When we showed the prototype (a piece of film coated with silver nanowires) to customers, they were unable to see anything – the sample looked simply like a piece of clear plastic film. In response, we explained that our product was truly transparent – in no way visible to the naked eye. While still skeptical, we knew we had the best ingredient to gain their approval – we showed them transmission measurements and resistance data. As expected, they were awed at our achievement. Cambrios’ nanowires on film were more transparent at a given conductivity than anything they had seen in their extensive years of expertise and we still hold that distinction. Today, Cambrios’ ClearOhm® materials can enable millions of meters of coated film, yet the first test coupons were definitely nostalgic, and both challenging and exciting to create.

What are your favorite tools?

The work horse optical microscope is one of my favorite tools, as it is very simple and useful. It is surprising that our nanowires can be visualized with an optical microscope since their diameters are smaller than the wavelength of light. Using dark-field imaging, it is possible to see the image of the nanowires on the plastic film surface. It produces a great picture of the random network of nanowires that is covering the substrate, creating the transparent conductor. Other tools in the lab are also useful, for example, the scanning electron microscope (SEM) is used to get higher resolution images of the nanowires.

Dr. Michael SpaidVP of Product Development Cambrios Technologies Corporation

In the Spotlight:

Even though my team and I spend a lot of time on chemical engineering, working at Cambrios requires a diverse range of expertise and knowledge in chemistry, chemical engineering, material science, physics and electrical engineering. Since our products go into electronic devices, we have lots of analytical and electronic test equipment and tools too.

Do you have any note-worthy engineering experiences?

Our product is so transparent that, in the past, we have had customers process the non-coated side of the film and call us to say that it is not working. When we first started, people could not imagine how our product worked, but we made coated film prototypes and taught our customers how to make patterned circuits from our material that are required to make displays or touch sensors. It was hard work, but it paid off. Today, Cambrios makes samples of new materials and coats them onto substrates. We believe that it’s necessary to understand how our customers use our inks in their processes – such as coating, patterning, connecting the patterned circuit to a chip, and more – to ensure our offering meets not only their needs, but that of the end-user.

Do you have an experiential stories you would like to share?

As part of my PhD, I studied fundamental fluid mechanics with an emphasis on coating flows and their associated instabilities. I never, however, thought about how this might be useful and didn’t use this knowledge until recently in my tenure with Cambrios. Now, I use that background for some of the roll-to-roll coating my team is developing and advancing. Whenever my children complain about their homework loads and how they won’t need to know about compound fractions in the real world, I’m reminded of my experience. More often than not, what you learn in college (undergraduate and graduate studies) will come in handy.

Furthermore, one time my team was trying to build a new product that could augment our mainstream product. We made plans,

researched the market, and ultimately, learned that one of the world’s largest companies already made a product which could easily be leveraged to bring our concept to fruition more rapidly. Instead of attempting to develop the product on our own from scratch, we partnered with them. Consequently, the product was created a lot faster and for less money than other market-ready solutions.

What are you currently working on?

A good portion of my work and that of my team involves supporting everything related to mass production as the company transformed from lab to fab. We also get to work on next-generation products, fundamental research, expanding the product line to capture new applications, and more. After years of hard work by my team, today there is great joy in realizing that the silver nanowires we researched, developed and now mass produce, are shipped to factories overseas where they are coated in a roll-to-roll machine, then fabricated into touch sensors, that are laminated to displays/lens and integrated into a mobile phone or monitor. I can go across the street to the local electronics store and buy a consumer electronics device with ClearOhm material that started in our factory, made its trek across the globe and now is back where it started. How cool is that?!

What do you do when you’re not working on engineering?

I have four children and they keep me pretty busy. When I am not at work, I am usually at my kids’ soccer and baseball games, either driving to the game or cheering from the bleachers. I also continue to play music – I started with the piano, and today I play the concertina, button accordion and guitar in a local Irish band.

“Our product is so transparent that, in the past, we have had

customers process the non-coated side of the film and call us to say

that it is not working.”

Page 4: From Concept Reality to · Cambrios Technologies Corporation In the Spotlight: Even though my team and I spend a lot of time on chemical engineering, working at Cambrios requires

76

TECH ARTICLES

76

NXP Semiconductor Logicin Automotive Applications

By Michael Lyons, Product Marketing, BL Logic

© 2012 NXP Semiconductors N.V.

All rights reserved. Reproduction in whole or in part is prohibited without the prior written consent of the

copyright owner. The information presented in this document does not form part of any quotation or contract,

is believed to be accurate and reliable and may be changed without notice. No liability will be accepted by

the publisher for any consequence of its use. Publication thereof does not convey nor imply any license under

patent- or other industrial or intellectual property rights.

www.nxp.com

Date of release: November 2012

Document order number: 9397 750 17356

Printed in the Netherlands

Continuing to lead the way in automotive logic

NXP Logic – Q100 logic portfolio

Suffix BQ PW D PW BQ PW GW GM

SOT763-1 SOT403-1 SOT108-1 SOT402-1 SOT764-1 SOT360-1 SOT363 SOT886

16-pin 16-pin 14-pin 14-pin 20-pin 20-pin 6-pin 6-pin

Width (mm) 2.50 6.40 6.00 6.40 2.50 6.40 2.10 1.00

Length (mm) 3.50 5.00 8.65 5.00 4.50 6.50 2.00 1.45

Pitch (mm) 0.50 0.65 1.27 0.65 0.50 0.65 0.65 0.50

Innovative package options

Automotive

Q100 Logic samples available in e-sample store. Order them today!Haven’t found your function? Please contact your local NXP representative.

As a leading supplier of logic products to the automotive industry, NXP Semiconductors focuses on quality: quality of product, quality of supply and quality of support. Quality that is perfectly represented by our Q100 logic range — proven either by decades of reliable use in automotive applications or by exceeding the levels of reliability outlined in the automotive industry’s AEC-Q100 standard. Amongst other things, this standard outlines:

• Rigorous stresses such as high temperature operating life (HTOL) and highly accelerated stress testing (HAST) that, when combined, simulate the aging of a device in an automotive environment.

• Manufacturing practices to limit the potential for non-typical outlier products to be delivered to automotive customers NXP’s logic products are used in a wide variety of automotive applications including instrument clusters, body control modules and engine control units.

NXP’s logic products are used in a wide variety of automotive applications including instrument clusters, body control modules and engine control units.

I/O Expansion

Input and output (I/O) expansion devices such as analog and digital multiplexers are used extensively to reduce the complexity, pin count, and ultimately cost of any microcontroller-based solution. The sensor interface of a gasoline engine control unit, shown in Figure 1, is often an analog multiplexer function such as the 4051. It selects one of eight inputs to be passed to the single output. Using such a device enables eight analog sensors to be interfaced sequentially to a single analog to digital converter (ADC) of a microcontroller. Important parameters to consider when selecting an analog multiplexer are the ON resistance, variation of ON resistance with input voltage, or ON resistance flatness, and the ON-state leakage current. The ON resistance determines how much the sensed signal is attenuated. Any variation of ON resistance with input voltage will lead to signal distortion while high ON-state leakage will result in additional signal loss. The combined effect of these parameters on the sensed signal determines the required accuracy of the microcontroller’s ADC.

NXP’s 5 V range of 8:1 analog multiplexers includes the 74HC4051-Q100 and 74HC4851-Q100. The74HC4051-Q100 has 4 μA maximum ON-state leakage current at 125º C and the RON v VIS characteristic shown in Figure 2. This results in 0.04% total harmonic distortion (THD). The 74HC4851-Q100 has a similar RON v VIS characteristic to that of the 74HC4051-Q100, but only 1 μA ON-state leakage current at 125º C. It also has an added injection current control feature which enables the user to apply signals of amplitude greater than the supply voltage to the switch terminals.

NXP’s next generation 3.3 V range of 8:1 analog multiplexers includes the NX3L4051-Q100. This has 2 μA maximum ON-state leakage current at 125º C, and the combination of the sub 1 ohm ON resistance and sub 0.35 ohm ON resistance flatness leads to a typical THD of just 0.02%. The 74HC4051-Q100, 74HC4851-Q100 and NX3L4051-Q100 are all available in the industry standard 16-pin TSSOP package, as well as NXP’s innovative smaller footprint leadless DHQFN and HXQFN packages.

by Michael Lyons, Product Marketing, BL Logic

As a leading supplier of logic products to the automotive industry, NXP Semiconductors focuses

on quality: quality of product, quality of supply and quality of support. Quality that is perfectly

represented by our Q100 logic range — proven either by decades of reliable use in automotive

applications or by exceeding the levels of reliability outlined in the automotive industry’s

AEC-Q100 standard. Amongst other things, this standard outlines:

• Rigorous stresses such as high temperature operating life (HTOL) and highly accelerated

stress testing (HAST) that, when combined, simulate the aging of a device in an automotive

environment

• Manufacturing practices to limit the potential for non-typical outlier products to be

delivered to automotive customers

NXP’s logic products are used in a wide variety of automotive applications including instrument

clusters, body control modules and engine control units.

NXP Semiconductors logicin automotive applications

Figure 1 Gasoline engine control unit block diagram

Sensor interface and signal

conditioningMircocontrollers

Glue logicLIN-CAN-FlexRayPower supplyI/O protection

Wheel speed sensor

Camshaft sensor

Accelerationsensors

Throttle-EGRsensor

Pressuresensors

Fuel levelsensor

Temperaturesensor

Real timeclock

Injectordriver

Ignitiondriver

Throttlecontrol

EGRcontrol

Warninglamp driver

02 sensorheater

Auxiliaryload driver

M

M

NXP White Paper 2

I/O expansionInput and output (I/O) expansion devices such as analog and digital multiplexers are used

extensively to reduce the complexity, pin count, and ultimately cost of any microcontroller-based

solution. The sensor interface of a gasoline engine control unit, shown in Figure 1, is often an

analog multiplexer function such as the 4051. It selects one of eight inputs to be passed to the

single output. Using such a device enables eight analog sensors to be interfaced sequentially to

a single analog to digital converter (ADC) of a microcontroller. Important parameters to consider

when selecting an analog multiplexer are the ON resistance, variation of ON resistance with

input voltage, or ON resistance flatness, and the ON-state leakage current. The ON resistance

determines how much the sensed signal is attenuated. Any variation of ON resistance with input

voltage will lead to signal distortion while high ON-state leakage will result in additional signal

loss. The combined effect

of these parameters on the

sensed signal determines

the required accuracy of the

microcontroller’s ADC.

NXP’s 5 V range of 8:1

analog multiplexers includes

the 74HC4051-Q100 and

74HC4851-Q100. The

74HC4051-Q100 has 4 µA

maximum ON-state leakage

current at 125º C and the RON v

VIS characteristic shown in

Figure 2. This results in 0.04%

total harmonic distortion

(THD). The 74HC4851-Q100

has a similar RON v VIS

characteristic to that of the

74HC4051-Q100, but only

1 µA ON-state leakage current

at 125º C. It also has an added

injection current control

feature which enables the user

to apply signals of amplitude

greater than the supply voltage

to the switch terminals.

NXP’s next generation 3.3 V range of 8:1 analog multiplexers includes the NX3L4051-Q100. This

has 2 µA maximum ON-state leakage current at 125º C, and the combination of the sub 1 ohm

ON resistance and sub 0.35 ohm ON resistance flatness leads to a typical THD of just 0.02%.

The 74HC4051-Q100, 74HC4851-Q100 and NX3L4051-Q100 are all available in the industry

standard 16-pin TSSOP package, as well as NXP’s innovative smaller footprint leadless DHQFN

and HXQFN packages.

Display driversDisplay drivers integrate serial-in parallel-out shift registers, which are common I/O expansion

devices, with MOSFET LED drivers. They reduce the size, complexity, pin count and ultimately

90

70

50

30

100 1.8 3.6 5.4 7.2 9.0

110(1)

(2)

(3)RO

N(Ω)

VIS

VIS = 0 V to (VCC -VEE)

(1) VCC = 4.5 V

(2) VCC = 6 V

(3) VCC = 9 V

(V)

Figure 2 RON v VIS 74HC4051

Figure 1: Gasoline engine control unit block diagram

Figure 2: RON v VIS74HC4051

Page 5: From Concept Reality to · Cambrios Technologies Corporation In the Spotlight: Even though my team and I spend a lot of time on chemical engineering, working at Cambrios requires

98

TECH ARTICLES

98

Display Drivers

Display drivers integrate serial-in parallel-out shift registers, which are common I/O expansion devices, with MOSFET LED drivers. They reduce the size, complexity, pin count and ultimately cost of any microcontroller based solution. The display driver shown in the instrument cluster block diagram in Figure 3 is often a logic LED driver such as the 596 or 4894 functions. They allow the microcontroller to enter 8-bit data serially using just two of its I/O pins — one connected to the input clock, the other connected to the serial input. Once the 8-bit data has been loaded into the LED driver’s shift register a third microcontroller I/O pin is used to clock the 8-bits to the open-drain outputs which drive the LEDs. Logic display drivers include serial outputs which allow the cascading of devices as shown in Figure 4. The result is that three microcontroller I/O pins can be used to control 16-bit, 24-bit, or even higher

bit width solutions. As well as bit width, important parameters to consider when selecting a display driver are output current drive and output voltage rating. They determine the suitability of the device for the given display, be it a grid or panel, seven-segment or single indicator.

NXP’s range of shift register based, open drain output display drivers includes the HEF4894-Q100. It combines a 12-bit shift register with 15 V / 40 mA open-drain outputs. A wide 5 V to 15 V supply range allows it to interface to standard 5 V microcontrollers. For higher current applications NXP has introduced the NPIC6C596-Q100, 8-bit shift register with 33 V / 100 mA open drain outputs which also maintains the standard 5 V control interface. Both devices are available in the industry standard SO and TSSOP packages, while the NPIC6C596-Q100 is also available in NXP’s innovative smaller footprint leadless DQFN package.

NXP White Paper 3

cost of any microcontroller based solution. The display driver shown in the instrument cluster

block diagram in Figure 3 is often a logic LED driver such as the 596 or 4894 functions. They

allow the microcontroller to enter 8-bit data serially using just two of its I/O pins — one

connected to the input clock, the other connected to the serial input. Once the 8-bit data has

been loaded into the LED driver’s shift register a third microcontroller I/O pin is used to clock the

8-bits to the open-drain outputs which drive the LEDs. Logic display drivers include serial outputs

which allow the cascading of devices as shown in Figure 4. The result is that three microcontroller

I/O pins can be used to control 16-bit, 24-bit, or even higher bit width solutions. As well as bit

width, important parameters to consider when selecting a display driver are output current drive

and output voltage rating. They determine the suitability of the device for the given display, be it

a grid or panel, seven-segment or single indicator.

Sensor interface Mircocontrollers

Glue logicLIN-CAN-FlexRayPower supplyI/O protection

Switchcluster

Switch cluster

Wheel speedsensor

Fuel levelsensor

Coolanttemperature

sensor

Battery voltagemonitor

Oil pressuresensor

Real timeclock

Displaydriver

Backlightdriver

Sound generatorampilfier

Indicator andwarning lamp

driver

Car clock

Figure 3 Instrument cluster block diagram

Storage register

Shift register

Storage register

Shift register

12 V

µC

Serial input Serial output

Input_CLK

Output_CLKI/O

I/O

I/O

Figure 4 Cascading of 8-bit display drivers

Buffers, Line Drivers

Buffers and line drivers are used when the output drive capability of a microcontroller is not sufficient to drive the output load. They reduce the size and ultimately cost of any microcontroller based solution. The body control module demux drivers shown in Figure 5 often use a logic line driver such as the 244, 573 or 125 functions. They provide the higher output drive capability that allows the body control module to drive pumps for wiper/washer control, or motors for power window control. In some cases body control modules use multiple line driver circuits. If all these outputs are switched at the same time, it may result in high EMI and system instability due to the high output drive. To avoid this latched drivers are used. In latched drivers the output only changes on a HIGH to LOW transition of the LE (Latch Enable) input, as a result the microcontroller can sequentially enable each driver, or combination of drivers, to reduce EMI. The most important parameter to consider when selecting a buffer-line driver is output drive, which can be used together with the supply voltage to determine if the resultant output voltage will be sufficient to switch the target load.

NXP’s range of buffers / line drivers includes the 74AHCT244-Q100, 74HC573-Q100 and 74LVC1G125-Q100. The 74AHCT244-Q100 is an 8-bit solution for 5 V applications and has 8 mA drive capability. Also with 8 mA drive at 5 V supply, the 74HC573-Q100 is an 8-bit latched solution for 3.3 V and 5.0 V applications that use multiple devices. It has

Figure 3: Instrument cluster block diagram

NXP White Paper 3

cost of any microcontroller based solution. The display driver shown in the instrument cluster

block diagram in Figure 3 is often a logic LED driver such as the 596 or 4894 functions. They

allow the microcontroller to enter 8-bit data serially using just two of its I/O pins — one

connected to the input clock, the other connected to the serial input. Once the 8-bit data has

been loaded into the LED driver’s shift register a third microcontroller I/O pin is used to clock the

8-bits to the open-drain outputs which drive the LEDs. Logic display drivers include serial outputs

which allow the cascading of devices as shown in Figure 4. The result is that three microcontroller

I/O pins can be used to control 16-bit, 24-bit, or even higher bit width solutions. As well as bit

width, important parameters to consider when selecting a display driver are output current drive

and output voltage rating. They determine the suitability of the device for the given display, be it

a grid or panel, seven-segment or single indicator.

Sensor interface Mircocontrollers

Glue logicLIN-CAN-FlexRayPower supplyI/O protection

Switchcluster

Switch cluster

Wheel speedsensor

Fuel levelsensor

Coolanttemperature

sensor

Battery voltagemonitor

Oil pressuresensor

Real timeclock

Displaydriver

Backlightdriver

Sound generatorampilfier

Indicator andwarning lamp

driver

Car clock

Figure 3 Instrument cluster block diagram

Storage register

Shift register

Storage register

Shift register

12 V

µC

Serial input Serial output

Input_CLK

Output_CLKI/O

I/O

I/O

Figure 4 Cascading of 8-bit display drivers

the additional advantage of having flow through architecture (data inputs opposite data outputs), allowing for easier board layout. For lower voltage, higher drive applications the LVC family can be used. The 74LVC1G125-Q100 is a single driver solution for 1.65 V to 5.5 V applications, with an output drive of 24 mA at 3.3 V and 32 mA at 5.5 V.

8-bit solutions such as the 74AHCT244-Q100 and 74HC573-Q100 can be found in the industry standard SO and TSSOP packages as well as NXP’s innovative DQFN leadless package. Single bit solutions such as the 74LVC1G125-Q100 can be found in the industry standard TSSOP5 package as well as NXP’s innovative leadless HSON6 package. ■

NXP White Paper 4

NXP’s range of shift register based, open drain output display drivers includes the HEF4894-

Q100. It combines a 12-bit shift register with 15 V / 40 mA open-drain outputs. A wide 5 V to

15 V supply range allows it to interface to standard 5 V microcontrollers. For higher current

applications NXP has introduced the NPIC6C596-Q100, 8-bit shift register with 33 V / 100 mA

open drain outputs which also maintains the standard 5 V control interface. Both devices are

available in the industry standard SO and TSSOP packages, while the NPIC6C596-Q100 is also

available in NXP’s innovative smaller footprint leadless DQFN package.

Buffers, line driversBuffers and line drivers are used when the output drive capability of a microcontroller is not

sufficient to drive the output load. They reduce the size and ultimately cost of any microcontroller

based solution. The body control module demux drivers shown in Figure 5 often use a logic line

driver such as the 244, 573 or 125 functions. They provide the higher output drive capability

that allows the body control module to drive pumps for wiper/washer control, or motors for

power window control. In some cases body control modules use multiple line driver circuits. If

all these outputs are switched at the same time, it may result in high EMI and system instability

due to the high output drive. To avoid this latched drivers are used. In latched drivers the

output only changes on a HIGH to LOW transition of the LE (Latch Enable) input, as a result the

microcontroller can sequentially enable each driver, or combination of drivers, to reduce EMI.

The most important parameter to consider when selecting a buffer-line driver is output drive,

which can be used together with the supply voltage to determine if the resultant output voltage

will be sufficient to switch the target load.

µCMUX Demux drivers

LIN TRX

CAN TRX

Power supplySensors

I/O protection

Memory

Front lightControl

Fog lightdriver

Horndriver

Rear lightcluster control

Power windowdriver

Central lockingdriver

Seat control

Wiper-washercontrol

/8

Figure 5 Body control module block diagram

Figure 4: Cascading of 8-bit display drivers

Figure 5: Body control module block diagram

Page 6: From Concept Reality to · Cambrios Technologies Corporation In the Spotlight: Even though my team and I spend a lot of time on chemical engineering, working at Cambrios requires

1110

TECH ARTICLES

1110

The Raspberry Pi PrimerPart 2: Raspbian Wheezy Setup Guide

by Kyle Olive, EEWeb Contributing Author

Use “df” to get the correct drive path.

IMPORTANT: ENSURE YOUR SD CARD PATH (of) IS CORRECTLY POINTING TO YOUR SD CARD, OTHERWISE YOU CAN WIPE YOUR DRIVE OF ALL DATA

If you’re reading this article you’ve got your hands on a Raspberry Pi, and you’ve got all the hardware you’ll need to get yourself up and running. Unfortunately, until you’ve set up an operating system, you’re not going to get a whole lot of use out of it! This article will outline two different popular operating systems for Raspberry Pi’s, Arch Linux ARM and Raspbian “Wheezy,” as well as go through a set-up guide for Raspbian.

Operating System Comparison: Arch Linux ARM and Raspbian “Wheezy”

So, does it even make a difference as to which operating system you choose? In short, it depends. Depending on your skills and on your knowledge of Linux operating systems, the choice of operating system may not be an important one, but if you’re new to this realm of development, then there are some things to consider.

If you are new to Raspberry Pi, you might want to choose the recommended Raspbian “Wheezy” operating system, which is based off of the popular Debian linux distribution, and is much friendlier to users who may not be too experienced with using Linux. Wheezy comes pre-packed with the LXDE desktop environment, a bunch of sample applications developed for the Raspberry Pi, and applications like Midori (a web browser) and Scratch, a graphical educational programming language). On top of that, it also has many of the standard requirements

for development (gcc, python, and more) pre-packaged and ready to go. If you want to be able to get started using your Raspberry Pi as quickly as possible and with minimal hassle, or if you wanted to be able to start using your Pi in an educational setting, your best bet is to go with this distribution.

On the other hand, you might want to choose Arch Linux ARM if you are a bit more experienced. Those familiar with the desktop-based Arch Linux will know that setting it up is a more involved process than other distributions, and Arch Linux ARM is no different. The base image for Arch Linux ARM is very lightweight, containing only the necessary software packages to get your Pi running. While this means a much longer, more involved setup process however, it also means that developers will be able to cut out a good portion of the software that they don’t need, resulting in a faster, more lightweight, operating system.

Though there are more differences between the distributions than discussed above, most users will probably want to use Raspbian “Wheezy.” It’s easier to set up, has a higher number of available software packages, and has a higher number of active users (in other words, you will have more people to ask for help from when something goes wrong). Raspbian “Wheezy” will generally be a better choice for random tinkering, while Arch Linux may be a better choice for an experienced developer with a well defined project.

Setting up Raspbian “Wheezy”

To install Raspbian “Wheezy” on your Raspberry Pi, you’ll need the Rhaspian image and an SD Card with at least 2GB of memory. If you plan on doing something with your Pi that involves multimedia (videos, music, games, etc.) then you probably want to have a bigger SD Card (I’m currently running with an 8GB).

First we’ll have to transfer the image to the SD Card. Mount your SD card on your computer, and extract the .img file from the archive you downloaded into a folder on your computer. It’s important that you don’t just copy the image you downloaded to the SD Card, as that won’t actually format it in a way the Pi can read. The following steps will delete all data on the SD Card, so if you already have stuff on there you will want to back it up.

In Windows you’ll want to use a tool like Win32-Image-Writer. Extract the binary archive to a folder on your computer, and run Win32DiskImager.exe. Select the wheezy image you extracted as the image file, and the drive letter for your mounted SD card. Then press “write” and let the program do its thing. In a few minutes you should get a notice that the write was successful.

In Linux you’ll want to use the “dd” command. You first need to mount your sd card and then find its device name by running the “df -h” command. The device name will be something like /dev/sdb/ (note: if your SD card has multiple partitions (sdb1, sdb2, etc) you want to use all the partitions (sdb)). You then have to unmount the card in order to format it. You can do so using a graphical context menu in the file explorer of most Linux distros, or use the “umount” command.

Once you’ve gotten the device name of your SD card and you’re ready to setup the SD card use the command:

_sudo dd bs=1M if=[WHEEZY IMG DIRECTORY] of=[SDCARD DEVICE PATH] _

Run df-h once before inserting your SD Card to see the current drives

Run df-h again after inserting your SD Card to see its filesystem path and mount location.

Run df-h once before inserting your SD Card to see the current drives

The SD Card will be the new addition. In this case, we will want to write our image to /dev/sdb.

The dd command output. It can take a few minutes for the image to be written to the SD Card.

The Win32 Disk Imager Tool being used to write the Raspbian image to SD Card.

This will format your SD card (output file) with your Wheezy image (input file) using 1MB blocks.

Page 7: From Concept Reality to · Cambrios Technologies Corporation In the Spotlight: Even though my team and I spend a lot of time on chemical engineering, working at Cambrios requires

1312

TECH ARTICLES

1312

The command will take a few minutes to run, when it’s finished you can eject your newly imaged SD card and put it into your Raspberry Pi.

Start up your Raspberry Pi and in a minute or so you’ll be greeted with a blue screen and the Raspbi-config menu. This menu will help you go through the process of setting up your operating system. We’ll walk through the settings here in this article. Accepting the defaults will usually work fine, though you may want to fine tune some of the following settings.

expand_roots – This setting will let you expand the root partition of Raspian Wheezy to fill the entire SD card. If you’re planning on using your SD card to store other data or want to manage partitions yourself, then don’t use this option. Otherwise, select it and it it expand the filesystem to use the entire SD card. After selecting it, you should be greeted with a message stating that the filesystem will expand on reboot.

overscan – This lets you enable or disable overscan. If you notice that your display isn’t filling your entire monitor, disabling overscan will usually fix that issue.

configure_keyboard – If you’re using an international keyboard, you can use this option to change keyboard settings.

change_pass – The default login and password for Raspbian Wheezy is pi : raspberry. If you would like to change this, you can do it here.

change_locale – This lets you change your locale, and sets languages and character sets appropriately. This defaults to British English.

change_timezone – Lets you set your timezone.

memory_split – This lets you set how much of the memory is dedicated to the graphics processing unit of your Raspberry Pi. The more graphically intensive applications you’ll be working with, the higher this value should be. The default of 64 should be fine for most applications.

overclock – This lets you change the clock rate and voltage levels of your Raspberry Pi to some pre-

set defaults. Note that overclocking can potentially lower the lifespan of your Pi and may lead to other issues. Only play with clock speeds if you know what you’re doing.

ssh – If you want to be able to ssh into your Raspberry Pi and use it remotely, enable this setting.

boot_behaviour – Lets you set up the Pi so the desktop environment starts automatically (otherwise you’ll have to use the command startx to start it)

update – Finally, update will check for updates to the config tool.

Once you’ve selected the settings you want, select “finish” and restart your Raspberry Pi (when prompted to login the default username is “pi” and the default password is “raspberry”). If everything went smoothly you should now be greeted by the desktop (if you have enabled it to start by default – you can run startx to have it launch otherwise). Hopefully you didn’t run into any issues. If you did, you can always try again by re-formatting the SD card with the original Wheezy image, or head over to the Raspberry Pi forums and FAQs to look for more pointers and tips.

Once you’ve got your Raspberry Pi set up with Rhaspbian, you’re ready to start developing. Keep checking back for more articles on making the most out of your Raspberry Pi. ■

eeweb.com/register

Join Today

The default desktop of the Raspbian Wheezy Operating System running on a Raspberry Pi

Page 8: From Concept Reality to · Cambrios Technologies Corporation In the Spotlight: Even though my team and I spend a lot of time on chemical engineering, working at Cambrios requires

15

EMBEDDED WORKBENCH

15

Motor Control Starter KitThe Motor Control Starter Kit with mTouch Sensing from Microchip is a complete hardware and software tool suite for evaluating Microchip’s ultra-low cost Motor Control Family dsPIC DSCs. It contains a single board with a BLDC motor, capacitive-touch sliders and a built-in debugger.

Features:

• dsPIC33FJ16MC102 - Very Low cost 16-bit Motor Control DSC• On-board In-Circuit Programming / Debug via USB • On Board 3-phase BLDC Motor • 15v, 2.6A On Board Drive Circuit with pads for user supplied motor • Capacitive Touch Slider for Speed Control with LED indicators

Capacitive Touch Booster PackThe Capacitive Touch BoosterPack from TI is a plug in board for the MSP430 Value

Line LaunchPad development kit. This BoosterPack features several capacitive touch elements including a scroll wheel, button and proximity sensor. Also, on- board are 9 LEDs

that provide instant feedback as users interact with the capacitive touch elements. In addition, a timer-based UART enables communication to a PC for feedback via GUI or hyperterminal. This

BoosterPack also includes a pre-programmed MSP430G2452IN20 Value Line device.

When paired with the LaunchPad kit, the Capacitive Touch BoosterPack provides a complete hard-ware and software reference design to enable developers to quickly and easily replace any physical

button with a capacitive touch element.

10-pin Plug-of-Nails™ CableTag-Connect cables provide a simple, reliable means of connecting Debuggers and Programmers or other test equipment to your PCB’s while lowering board costs and facilitating efficient production programming.

Tag-Connect uses a specially designed and patented connector which eliminates the need for putting a programming header or other mating connector on every PCB. Instead the Tag-Connector uses tried and tested spring-pins rated for over 100,000 operations to make a secure connection to a special footprint pattern of pads and locating holes in your PCB.

The legged version footprint takes about the same board space as two or three SMT resistors which means you can locate the footprint right next to the MCU if desired.

INDUSTRIAL

MEDICAL

AEROSPACE

AVIATION

SYSTEM ON A CHIP

CONSUMER

Express Logic has completed 14 years of successful business operation, and our fl agship product, ThreadX, has been used in over 1 billion electronic devices and systems, ranging from printers to smartphones, from single-chip SoCs to multiprocessors. Time and time again, when leading manufacturers put their company on the line, when their engineering team chooses an RTOS for their next critical product, they choose ThreadX.

Our ThreadX RTOS is rock-solid, thoroughly fi eld-proven, and represents not only the safe choice, but the most cost-effective choice when your company’s product

Copyright © 2012, Express Logic, Inc.

ThreadX, FileX, and TraceX are registered trademarks, and NetX, USBX, PegX, StackX, and Certification Pack are trademarks of Express Logic, Inc. All other trademarks are the property of their respective owners.

Express Logic has completed 14 years

When Your Company’s Success, And Your Job, Are On The Line - You Can Count On Express Logic’s ThreadX® RTOS

REALLY COUNTSTHREADX: WHEN IT

simply must succeed. Its royalty-free licensing model helps keep your BOM low, and its proven dependability helps keep your support costs down as well. ThreadX repeatedly tops the time-to-market results

reported by embedded developers like you. All the while, Express Logic is there to assist you with enhancements, training, and responsive telephone support.

Join leading organizations like HP, Apple, Marvell, Philips, NASA, and many more who have chosen ThreadX for use in over 1 billion of their products – because their products are too important to rely on anything but the best. Rely on ThreadX, when it really counts!

Contact Express Logic to fi nd out more about our ThreadX RTOS, FileX® fi le system, NetX™ Dual IPv4/IPv6 TCP/IP stack, USBX™ USB Host/Device/OTG stack, and PegX™ graphics toolkit for embedded GUI development. Also ask about our TraceX® real-time event trace and analysis tool, and StackX™, our stack size analysis tool that makes stack overflows a thing of the past. And if you’re developing safety-critical products for aviation, industrial or medical applications, ask about our new Certification Pack™ for ThreadX.

For a free evaluation copy, visit www.rtos.com • 1-888-THREADX

ThreadX, FileX, and TraceX are registered trademarks, and NetX, USBX, PrismX, StackX, and Certifi cation Pack are trademarks of Express Logic, Inc.

, our patent-pending stack size analysis tool that makes stack overfl ows a

Edward L. Lamie

With ThreadX

Second Edition

Now with appendices for ARM, Coldfi re,

MIPS and PowerPC architectures

Newnes

INCLUDEDINCLUDEDINCLUDEDCD-ROM

REAL-TIME

EMBEDDED

MULTITHREADING

Express Logic has completed 14 years of successful business operation, and our fl agship product, ThreadX,

Express Logic has completed 14 years simply simply licensing model helps keep your BOM low, and its proven dependability helps keep your support costs down as well. ThreadX repeatedly tops the time-to-market results

T H R E A D

Page 9: From Concept Reality to · Cambrios Technologies Corporation In the Spotlight: Even though my team and I spend a lot of time on chemical engineering, working at Cambrios requires

COVER INTERVIEW

1716

TQ-Group is a technology company that prides itself on quality. In fact, the company’s initials stand for

“Technology” and “Quality.” To achieve this, the company has developed a corporate philosophy of working closely

with each of its customers—from the design process to production—so they can be successful together. The scope

of TQ’s products ranges from embedded platforms for a variety of different architectures to consumer specific

products such as iPad accessories.

Embedded Developer had the chance to speak with Wolfgang Heinz-Fischer, the Head of Marketing at TQ,

about the embedded products the company offers, the ever expanding European market, and the company’s

unique strategy when it comes to product development.

Wolfgang Heinz-FischerHead of Marketing

& PR, TQ-Group

From Concept to Reality

Page 10: From Concept Reality to · Cambrios Technologies Corporation In the Spotlight: Even though my team and I spend a lot of time on chemical engineering, working at Cambrios requires

COVER INTERVIEW

1918

for automotive. In the US, we’re representing something around 20 to 25 percent in the aviation market and we’re a top supplier to the Air Force industry and the electronics inside of airplanes. We are also responsible for 15 percent in the industrial field and industrial control and automation.

In the future, the company will continue to expand into more arenas for standard products and the services in the European market. Services are a little different than standard products—services means you need on-site facilities and on-site support; you need much more for services than for standard products, as it requires a much deeper and closer relationship with the customer. What percent of TQ’s business is custom design work within these industries, and what percent are single-board computers and modules?

At the moment, the majority of our business is customization, which represents 80 to 85 percent. This leaves 15 percent, which is represented by our own products. In the future, we will try some more of our own products. The target in 3 to 4 years is for our portfolio to be 40 to 50 percent of our own products compared to customization.

Engineers have always started from scratch and did a lot of integration in the embedded arena. These days, they understand it’s much easier to start with a module first. So more and more of the customization we’re doing is based on a standard module. We then do a customization carrier board, which is specific to the customer. However, the inside model is a standard product out of our range of products.

It sounds like that area of your business will grow a lot. Can you talk about the worldwide regions you sell to and the things TQ is doing to grow your customer base?

We started as a Bavarian company, so we are located close to Munich. When TQ first started out, we had major companies that were only around Munich area. So four years ago, we decided to expand to a German-speaking area for our services. For the products, we decided to go to the European market and developed a process to expand into the market with the help of partners in the major territories, which is nearly done. This year, we decided to focus heavily on the United States’ market. A long-term goal is to have a well-known facility in the US.

What sectors in the U.S. market do you think will be some key growth area for TQ?

I think the US market will look very similar to the German or European market. We see embedded products as very strong elements in the medical

Could you talk a bit about TQ as a company? What products and services do you provide?

TQ started in 1994 as service company in the sense of designing services and electronic manufacturing services. In the first few years, we were developing some important projects; we made a mini module—the first embedded product—but at the time, no one was thinking of the embedded market. In 1997, we saw that the product actually fit into the general market, not only for the one or two customers that it was designed for. This is essentially when the company started in the embedded arena.

TQ stands for “technology” and “quality” and primarily serves the Electronic Manufacturing market. In Germany, we rank second, and in Europe we are in the top 20, so we are well positioned in this arena. More than ten percent of the company’s 102,000 employees are in the design field. We also serve a wide range of design sectors. Many of the technologies today are driven by microcontrollers or microprocessors. We are also doing some test and measurement and analog products as well as some products in the telecom market. Our position in the market is based on our strengths in designing, which is a major differentiation factor from the other EMS companies. We have won 1st placeseveral times in design responsibility in the German market

In the past five years, we have started to strengthen our embedded group of products to span into the ARM direction and on into the power arena. In the vertical markets, we are certified for medical, aviation, and

One of the leading solution providers of innovative

technologies for 20 years, TQ-Systems GmbH has their corporate headquarters in Seefeld, Germany,

and employs over 1,200 staff and has production facilties in

Germany, Switzerland and China. The company has recently opened

TQ-USA which is represented in North America by Convergence

Promotions, LLC.

Page 11: From Concept Reality to · Cambrios Technologies Corporation In the Spotlight: Even though my team and I spend a lot of time on chemical engineering, working at Cambrios requires

COVER INTERVIEW

2120

arena, as a lot of changes are occurring there. We also see very strong growth in the automation area as well as the machinery market.

If you look into the processor arena and see what the strengths of Freescale are in that market, I believe that telecom may become an industry market as a Freescale QorIQ-dominating process, which we will see play out in the US market. By being a close partner with Freescale, we believe by having our own organization within the US market and being promoted by Freescale, this will open a lot of doors for us.

Could you give us a little overview of the types of embedded products that TQ sells?

We have a complete range of power architectures. We started with the PowerQuicc I, followed by PowerQuicc II, and by PowerQuicc II Pro. We’ve recently stepped into PowerQuicc III and we have products in the QorIQ P1, P2 range. In the pipeline, we will definitely start working with the T1 and T2. We’re one of the very few companies that is offering the complete range of power architecture products from the Freescale range.

Next, we have complete ARM Freescale range, starting from the ARM A9 to the ARM A11. Then have the Cortex A8 and Cortex A9—all the i.Mx products—28, 35, 53, and 6—that is available in the market. We then did a little side step into the TI world, offering the Sitara 335, which boosts the specification of that process that we couldn’t find in the Freescale range. We like to have the complete offering in order to meet all the customer expectations and needs. For that reason, we decided to jump out of the Freescale range. This is a product base that is not x86—but we have the x86 in the Intel range.

At the moment, we’re focusing on the main board design. We’re co-working with companies like Congatec, Avatech, and others, and using their COM Express modules to put them onto a carrier board, which is also unique in some specifications. This allows for rapid customization—almost like a Lego box. The consumer market is flexible, but it’s not available in the long term, so it’s not fitting into the industrial market respect of extended temperature range, vibration, and longevity. With a combination of our main board with our COM Express board, we can guarantee our longevity of ten years and more.

It looks like you have a motherboard then you have modules that can plug onto the motherboard. That’s a great strategy. Do you have more one style of motherboards?

We have the first one, which is very unique for the industrial market, which is covering the second type of the COM Express. We are working on the next generation, which is covering the sixth type of the COM Express boards and covers everything from Autonom, the COM Express mini, and the COM Express Standard.

All the products we’re trying to make have some unique selling points inside the products. For the Intel board, for example, we patented the hard-to-integrate extension boards. This is a problem for the whole market. If you go to the consumer market, you have the mini ITX board plugged in at a ninety-degree angle with the extension board, which means it becomes a biP box. If you go to the industrialized embedded market, which means industrial PCs and Box PCs, there is no

flexibility to add extension cards. This means that all the players have their standard BoxPCs, but if their extensions have needs that are specific, it has to be added on extra.

We made it so you can have all the cards from the market added to the system, and the system will still be ruggedized, condensed, and compact. By concept, we are able to run a BoxPC up to 25 watts with a fanless system. By this systematic, we got rid of the heat quite easily as we can connect the process immediately to the outside plate, which is not possible by other major players in the market. This is beneficial if our customer needs an extension card or if they cannot link directly to the frame of the chassis, for example.

What are a few advantages of having a fanless system?

The main reason to have a fanless system is that you want to have system without any rotating or moving parts, which can guarantee a longer lifetime and less service items. This would be needed if you want to run a system for 80 years without touching again.. All the other companies are trying different methods to get rid of the heat with very condensed heat pipes, but this will drive the cost up significantly.

What we did is we tried to use the specification of the COM Express. The COM Express board with the heat system is included in the whole board and is always the highest point in our system. With that, we can hook directly to any chassis or plate and link the heat directly to the outside.

Usually, the connectors are twice as high, meaning they are higher than the main board and the COM Express board, so they can’t link it directly. If you look into the BoxPC, they have some very complex heat pipes or they have an aluminum block that they mount inside the box. But how can you guarantee that the heat system is well connected and controlled to the outside? There is no way to be certain in this scenario.

We take the opposite approach. The height between our main board to the upper side of the complete system is in the specification of COM Express. We simply put it on the opposite side. We drew the whole system on the top side so we can guarantee a well-designed and well-controlled heat connection to the outside. This way, we can have a 25-watt system under control with a completely fanless system.

TQ modules cover a diverse array of applications such as central fire alarm systems, photovoltaic systems, marine engine controls, medical devices, and smart meters.

The World of TQ Consumer, Industrial, and OEM Products

In addition to manufacturing modules and other com-ponents for embedded systems, TQ-Systems GmbH is a global leader in designing and manufacturing consumer, industrial, and OEM products, including:

Drive Systems: RoboDrive Motor TechnologyResearchers at the Institute of Robotics and Mechatron-ics at the German Aerospace Center (DLR) developed the new and flexible “RoboDrive” motor technology for industrial applications.

E-Bike Drive Train SystemsClean Mobile, a new TQ business unit, develops and produces innovative drive train systems and components for E-Bikes and cargo applications.

sDock iPad Wallmounts, Docking Stations & Photo FramesIf you want to watch your favorite TV series or a football match while soaking in the bath, or reference a recipe in the kitchen without your iPad being covered with splashes of water or grease then the sDock from Smart-Things is ideal.

For more information about the other TQ-Sytems products, go to www.tq-group.com or e-mail

[email protected]

Page 12: From Concept Reality to · Cambrios Technologies Corporation In the Spotlight: Even though my team and I spend a lot of time on chemical engineering, working at Cambrios requires

COVER INTERVIEW

2322

What’s the difference between buying the MCU and building your own boards, instead of buying the off-the-shelf board as is?

We see a market trend that the technology is becoming more complex. We’ll request mainly more manpower and will take more power for designing. On the other side, implementation becomes higher risk for design, so you may fail with your design and this will extend the introduction into the market. In the opposite direction, we see less and less design engineers, especially in the hardware area. We see that the lifecycle of products is shortened. Back when I started my career we were talking about 15 years between products and now we’re seeing 5 years. The next generation of products needs to come to the market as soon as possible. This means we have to produce more products in a shorter time, with less manpower, and with more complexity. The only way to survive is to go modular—it’s the only way to handle that system.

What is TQ doing to ensure customers that it is easy to migrate from one system to another?

I think there is a big misunderstanding in the x86 market. It’s so easy to switch from an autonom to an ARM product. People believe the marketing guys, then they’re shocked when they start their project and realize they can’t change from the A to the B—you always need a specific BSP for that board. It’s not like the Intel world where you go to the Intel webpage and download the drivers, start the system, run, and go. The ARM world is different—it’s like nothing happened. The system integration needs much more time and responsibility from their supplies. There is a big misunderstanding that it’s an easy transition from an Intel product to an ARM product and back, but that’s not the reality.

It’s a really interesting part of the x86 world. Contron, brought in a smock, which is kind of a standard term, and they explain that there is no real overlapping between these two markets. The PCI Express and ARM arena is more for industrial type of interfaces like CAN and others. There is no overlapping when they decided to have two different products.

It’s interesting to see two major groups in the x86 market with two totally different arguments. I believe it’s impossible to switch easily and make a standard. If you have a look into these standards, we always explain to the customers to have a look into the different players and processors, make a list of the available interfaces, and at the end of the day, you will know how much overlapping and compatibility is really there.

We believe a standard outside the x86 world is not possible. A standard means you can have interchangeability; but there would be different vendors, processors, and it’s an easy exchange, but this is not reality in the ARM market.

When it comes to support, what does TQ have available for design resources?

We have five people on the support team, and 25 people on the software team. The software side becomes the more important part. At the end of the day, from the hardware side, we can put in support range and link the customer to the design engineer. The entire team to support the process is around 50 people.

TQ-USA sales, distribution, and technical support is managed by Convergence Promotions LLC, with offices in Northern California and Boston, Massachussettes.

To contact, e-mail: [email protected]

As I said before, support is a major differentiation from our competitors. We have a wide knowledge with the inside of the applications, so we have a few steps to support the customer. First is software support, and second is schematic review. If they’re ready with schematics, we’ll take a look inside the schematic and how they apply the processor to meet their needs.

The next step of support is how to bring the schematic into a real board product. TQ offers the layout to the customer. If the board becomes too complex, we can make any type of layout for the customer so that it becomes an easy way of manufacturing. ■

TQ’s engineering solutions span the world of embedded, industrial and consumer applications. TQ-USA distributes computer modules supporting Freescale’s QorIQ™, ARM926™, ARM11™, Cortex™-A9 processor-based MCUs and Texas Instruments’ ARM® Cortex-A8 processor based MCUs. TQ-USA also distributes Freescale ARM926 and ARM11 MCU-based Hardware Solutions for system integration.

“Our position in the market is based

on our strengths in designing, which is a major differentiation factor from the other

EMS companies.”

Page 13: From Concept Reality to · Cambrios Technologies Corporation In the Spotlight: Even though my team and I spend a lot of time on chemical engineering, working at Cambrios requires

2524

TECH ARTICLES

2524

The Choices for Programming ARM Cortex-M Microcontrollers

by Joseph Yiu and Ian Johnson, ARM

ARM ARCHITECTURE ANDDEVELOPMENT TOOLS

An increasing number of vendors offer 32-bit microcontrollers based on ARM® Cortex®-M processors, and at the same time, there are also new development environments introduced for these microcontroller products. Some programming languages and tools, previously available only for programming for desktop computers, are being ported to ARM microcontrollers too.

Technical advantages of the ARM Cortex-M architecture such as high performance, high code density, OS support and memory system flexibility also enable these software development methods to be used on ARM devices. To use these methods with legacy 16-bit or 8-bit devices could be very inefficient or even impossible.

The open nature of the ARM architecture allows software tool vendors to develop tools for a wide range of microcontrollers from different vendors, whereas tools developed for 8-bit and 16-bit processors’ architectures typically have a limited market reach.

Wider adoption also allows programming tools vendors to create application development environments for particular embedded segments, such as M2M (machine to machine) and IoT (Internet of things) and alternate programming languages. In this article we will cover some of these development environments such as Java and Simulink.

JAVA TECHNOLOGY

Java technology speeds up development and prototyping. Although there are multiple Java development environments available, this article will look at two.

Oracle® Java on ARM architecture targets IoT and M2M applications.

Programming using Java ME (Micro Edition) software development kit (SDK) is identical to the Java SE (Standard Edition) Embedded (e.g. Eclipse/Netbeans IDE), except, currently, the compiled object is optimized for embedded systems with small memory foot print and the GUI library or JavaFX are not available on Java ME.

For example, a microcontroller running the Java ME Embedded and Java applications can be stored on a SD card, or on chip. When the system is started, the Java ME Embedded can read a configuration file and identify the Java application to load and execute.

Typically 256KB of RAM and 1 to 1.5MB of program ROM are required to host the application and the JVM. Please note that applications running inside the JVM cannot guarantee real time behavior. However, the JVM can run as one of the application threads inside a system running RTOS, in parallel to other real time tasks and communicate with each other using an event communication mechanism.

Source level debugging is available in desktop and simulated environments and on hardware. The Java execution environment contains an optional debug agent (running on target hardware), which can communicate with the debugger via a built-in device manager (running on the debug host) via UART, TCP/IP or USB.

Java is highly portable: the codes can be used from microcontroller systems, to internet gateway, home server, or large database servers. Java ME and Java SE make it possible to develop applications that work across different embedded platforms.

For IoT and M2M applications, Java ME also provides TCP/IP communication APIs that allow Java applications to open TCP/IP sockets, communicate with other devices and add third party communication stacks, like Bluetooth. Optional APIs for server/client communications allow small microcontroller systems to talk to Oracle database servers seamlessly.

Java’s sandbox environment can improve security, but can be inconvenient for control tasks. Java ME has peripheral APIs to make this easier, but unlike traditional C programming, these APIs are fairly high level and might not able to support many device-specific features. Some I/O control tasks can be separated and run as application threads alongside the JVM in an RTOS environment.

There are many Cortex-M microcontrollers with only several hundred KB of flash and RAM. If you would like to use Java with these devices, IS2T’s MicroEJ®is most suitable. The development flow for MicroEJ is optimized for small microcontrollers that it optimizes, pre-processes and links the Java object off board, before loading to the microcontroller, instead of loading the code object directly to the VM.

Figure 1: Design flow using Java ME Embedded Figure 3: Design flow using IS2T MicroEJ, which is available as part of the STM32Java SDK from STMicroelectronics

Figure 2: Software architecture combining Java with real time applications

Page 14: From Concept Reality to · Cambrios Technologies Corporation In the Spotlight: Even though my team and I spend a lot of time on chemical engineering, working at Cambrios requires

2726

TECH ARTICLES

2726

MicroJvm can be booted up in 2ms running at 120MHz on ARM Cortex-M3/M4 processor-based microcontrollers and requires minimum of 28KB of flash memory and 1KB of SRAM (not including application code). Even with a GUI human machine interface (HMI) library, it only needs 90 to 140KB of flash in total.

The MicroEJ SDK contains choices of Java Platform (JPF), including the root components such as MicroJvm® and standard libraries ( B-ON + CLDC – core embedded Java API), and optional packages like MicroUI™ (embedded user interface), MWT (Micro Widget Toolkit, an embedded widgets framework), NLS (embedded national support), runtime PNG image decoder, and graphical tools. These features allow developers to create GUI quickly, and the object-oriented nature of Java and its automatic memory management make it excellent platform for handling dynamic GUI components.

Java applications can access device driver library functions through SNI (simple native interface, ESR012) or Shield Plug.

The MicroJvm can run as a single task within a third party OS, or run on its own because it contains its own task scheduler, called green thread.

MicroEJ provides an Eclipse-based IDE for creating Java applications on desktop, and a simulator called SimJPF which has a hardware-in-the-loop feature that allows simulations to run with true I/O. It also includes a Front Panel Designer tool to design a virtual device.

SCIENTIFIC AND MATHEMATIC APPLICATIONS

In Feb 2013 it was announced that programs created in MATLAB® and Simulink® from Mathworks® will be supported on ARM Cortex-M processor-based

microcontrollers. The Embedded Coder feature generates C code from MATLAB or Simulink designs and utilizes the optimized CMSIS-DSP library for best performance.

Model-based software development tools like Simulink can reduces design time. For example, a motor control system model can be created in, and tested using simulation inside Simulink. After the model is tested, the Embedded Coder can generate C code and you can test the design in hardware using processor-in-the-loop (PIL) configuration, and then finally complete the design by adding required peripheral control code. Since the control algorithm code is generated automatically, avoiding human errors in code porting.

LabVIEW

National Instruments’ LabVIEW® is also a graphical programming environment which can handle model based design. Unlike most other tools, the designs are completely implemented in diagrams.

LabVIEW has a library of functions for DSP (e.g. filter and spectral analysis) , mathematic, array/matrix processing and these allow application software to be developed without an in-depth knowledge of programming or algorithms. For complex applications, software can be partitioned into Virtual Instruments (VIs) and subVIs. Figure 9 shows a LabVIEW subVI (right) which finds the largest variables from four input variables.

The LabVIEW C Code Generator takes graphical code and generates procedural C code which can be used in traditional programming environments (Keil® MDK-ARM, IAR Embedded Workbench). During development, the code can be tested by running it inside the LabVIEW environment on a PC.

EDUCATION AND HOBBYISTS

A number of development platforms are available for education and hobbyists. For example, the Arduino™ IDE and boards are designed for students and hobbyists to learn embedded programming. The Arduino platform supports various architectures: for example, the Arduino Due is based on Atmel ARM Cortex-M3 processor-based SAM3X8E, and Arduino Uno is based on Atmel’s AVR ATmega328 microcontroller.

Figure 4: Components in Java platform (JPF)

Figure 5: Software architecture in mixed Java and native code applications

Figure 6: Transfer of software development environment

Figure 7: Microcontroller software development using Simulink with traditional tools

Figure 8: Running a control application in Simulink with PIL

Figure 9: Hierarchical software design in LabVIEW

Figure 10: Typical development flow for using LabVIEW C code generator

Page 15: From Concept Reality to · Cambrios Technologies Corporation In the Spotlight: Even though my team and I spend a lot of time on chemical engineering, working at Cambrios requires

2928

TECH ARTICLES

2928

The Java-based IDE can be use with Windows, Linux and Mac OS. It has a large software library for peripheral control functions which simplify peripheral programming. And most of the APIs are hardware platform-independent so that the same program can be used on different Arduino boards.

An Arduino program contains “void setup()”, executed at the beginning of the program and “void loop()”, executed repeatedly after set up. Users program by inserting code into these two functions. During compilation, the IDE adds a software framework and the underlying code for the peripheral APIs.

The open source nature of Arduino allows developers to export the project to other development suites for further optimiza-tion.

Another similar platform is the mbed™, which is also for education, hobbyists and rapid prototyping. Its SDK contains rich set of peripheral APIs to create feature-rich applications. Currently, the mbed boards feature ARM Cortex-M3 (NXP LPC1768), Cortex-M0 (NXP LPC11U24) and Cortex-M0+ (Freescale™ KL25Z) microcontrollers. Its 40-pin DIP form factor is designed for easy connection to other development boards.

Uniquely, it is web-based and accessed via a web browser and can be used

with Windows, Linux and Mac OS, with-out having to install software. Once a design is developed and compiled, the binary image can be downloaded to a PC.

From mbed SDK 2.0, the platform is open source and projects can be exported to traditional develop-ment suites directly. For designs with multiple application tasks, there is built-in RTOS support, using CMSIS-RTOS APIs.

CONTROL AND FSM DESIGNS

In many embedded applications, especially control, system operations can be viewed as a finite state machine (FSM) and specialized development tools are available to make such designs easier.

One example is IAR VisualSTATE® which cre-ates FSM designs from a graphic design en-vironment. Available state can be defined, as well as the events that can cause state transitions and the corresponding operations.

The design environment is based on state dia-grams and UML (Unified Modeling Language). Figure 13, shows a simple design.

VisualState has a formal verification tools for detecting errors like deadlocks, unreachable state, conflicting transitions or ambiguous behavior. The transition sequence that trig-gers these errors can be annotated for de-bugging, which is via the C Spy debugger with hardware target system. After the state machine is designed, VisualSTATE generates C/C++ codes which can be integrated into projects in IAR Embedded Workbench for ARM (EWARM).

Some other model based design tools pre-viously target PC software design now also support ARM microcontroller code genera-

tion. For example, Verum® provides a development suite called ASD: Suite® (Analytical Software Design: Suite) that enables software system verification before coding and system level testing.

Once the models are verified, C, C++, C# or Java, code can be generated and is guaranteed to be equivalent to the defined model. Automatic code generation avoids human coding errors, thus reduce verification time.

CONCLUSION

The technical advantages and increasing popularity of the ARM Cortex-M processor-based microcontrollers enabled software tool providers to develop wider range of software development environment. The increasing user base also makes it feasible to have development suite for particular application space. In addition to the development suites mentioned in various section of this article, you can also program Cortex-M microcontrollers with ADA, eLua, Pascal, Basic, Python and Forth, and potentially new development languages.

As a result, embedded software developers are not limited to traditional software development method. And this also opens new opportunities for software tool vendors.

Some programming methods are targeted at specific users or applications, such as education or IoT. Their specific features enable faster time to market and better product quality. ■

Figure 12: An mbed board with NXP LPC1768 microcontroller

Figure 14: A simple radio control state machine design in VisualSTATE

Figure 15: ASD:Suite IDE allows designers to define behavior

Figure 13: Design flow with mbed platform

Page 16: From Concept Reality to · Cambrios Technologies Corporation In the Spotlight: Even though my team and I spend a lot of time on chemical engineering, working at Cambrios requires

3130

PRODUCT HIGHLIGHT

3130

Overview of the

Murata SN8200 Network Controller Module

The SN8200 Wi-Fi Network Controller from Murata is an 802.11 BGN Wi-FI module that provides easy Internet connectivity for your serial devices. The SN8200 is a complete wireless solution on a module. It includes an ARM Cortex M3-based controller as well as the necessary tools to set up your own wireless network. The module comes with all of the necessary protocols for communicating and controlling the device over the Internet.

Page 17: From Concept Reality to · Cambrios Technologies Corporation In the Spotlight: Even though my team and I spend a lot of time on chemical engineering, working at Cambrios requires

3332

PRODUCT HIGHLIGHT

3332

Included Hardware SetupTo get the module set up, put the included CD into your optical drive. The CD will show

you a few options, but select the EZ Web Wizzard™, which is Murata’s custom software

that supports easy web-based control. Go through the quick start guide process and

install the Simple Network Interface Controller (SNIC). Once that’s done, you can install

the drivers and connect to the device.

The next thing you need to do is select the SNIC monitor and run a setup application

in the EZ Web Wizzard™ software. Once the SNIC monitor is installed, you can load

firmware onto the module. In order to connect to the module, go down to your Wi-Fi

connection and select the Murata WS41741C. When that is connected, open your web

browser of choice and in your address bar, type in SN8200.com, which is the local web

interface. This will connect you via Wi-Fi. You can now click through the different tabs in

the web interface and see the different functionalities of the module.

ConclusionAll in all, the SN8200 from Murata is a very capable system. The module is easy to

set up as an access point connected to another network in order to access all of the

serial communication and GPIO functionality. The module comes with a UART demo

to configure for a UART device, which can allow you to start exchanging data back

and forth with a serial device that’s connected to the dev board. The kit serves as a

complete wireless solution and supports a variety of standards for easy integration.

To purchase the SN8200 visit Mouser’s website.

Watch Video

Typical ApplicationsSince the SN8200 is a complete wireless solution on a module, it makes it perfect for

applications such as creating a standalone web server. Other examples could be smart

medical and fitness devices, home automation, and industrial control and monitoring.

SN8200 ModuleSerial Flash

Serial FlashInterface

UARTInterface

SHT21 Sensor

CN4 (VDD_3V6)CN3

Power IndicatorCN2

(VEXT on Right)

Mini-USBConnector

ResetButton

SN8200 EVK+Wi-Fi Module Evaluation Kit