HomeThe Bluewater Blog

Over the past 18 months or so, Atmel have put a real push into getting the most out of their ARM9EJS-based CPUs. They hAT91SAM9G45ave managed to boost the clock speed, increase the peripheral set, reduce the power, and reduce the cost all in one go. These new chips, the AT91SAM9G20, AT91SAM9G45, and very recently release AT91SAM9M10 all run at 400MHz, with peripherals covering image sensors, ethernet, video playback (hardware accelerated on the M10!), as well as the usual set of UARTS, I2C, etc.

The big breakthrough with Atmel however has really been the power consumption and price. The AT91SAM9G20 core consumes only 80mW at full speed, and can be purchased for as little as $16 in single quantities, down to $7 in larger volumes.

Here at Bluewater we have taken great interest in these Atmel development, and have incorporated these into our new module, as well as our (upcoming) 9G45 design.

In drawing up the schematics for a new design, it is very easy to add new components willy nilly as and when required. Then - once happy with the design - move on and produce a masterpiece of a PCB layout. After the PCB layout send the files out for quote and move on to purchasing components. It's at this point that you may find yourself confronted with a large BOM (Bill of Materials) to buy before you can build your board. The time to find and buy these components is not the end of it either. A large BOM has the following drawbacks:

  1. The more discrete part types in a design, the lower the volume of each will be, and the cost benifit of buying in bulk can not be realised
  2. The inavalibility of any part can stall a build. The more parts in a build, the more likely this is to happen
  3. More parts means longer machine setup times and more feeder requirements - possibly even a double pass through the machine. These all add to build cost
  4. More components to track and keep inventory of which costs time

On most boards there are a variety of very simple things that can be done for very low cost to mitigate these problems - the initial cost will more than pay for itself in reduced future costs and reduced risk.

The BOM rationalisation step should be performed after the schematic phase - NOT after the PCB phase. Often BOM simplification requires trivial changes in the schematics, but once the PCB layout is done changes may result in a lot of work needing to be redone.

There are many things that can be done to reduce the BOM count. Resistors and Capacitors are the simplest place to start: often there is a wide range of these in any design and these are by far the easiest target. There will often be many components of which there is only one or two used. Several things can be done in this case:

  1. Check if the odd-ball specific value is actually required, or can it be replaced by a more common component on the design. Pull-up resistors are a common culprit here
  2. If the value is required, see if it can be produced by a parallel or series combination of common components. It is quite suprising how often this technique can be used.
  3. Voltage dividers. These can be a special case of the above technique. In one recent design, it was discovered that a 100k, 120k and 330k could produce over 60 different divider ratios with one or two high side resistors, and one or two low side ones. The spread was quite even too.

Power supplies can often be simplified too:

  1. Using an adjustable version of a power supply, and tailoring it to several different voltage rails will use fewer different ICs than using the pre-programmed ones. When it comes to production, a shortage of any IC could put a halt to productio, so the fewer different IC types, the better
  2. Adjustable supplies normally have a voltage divider to set the output - take advantage of the voltage divider options as discussed above. Remember that a 3.3v supply doesn't need to be 3.300000000v: 3.27453v is more than acceptable for the vast majority of systems!
  3. Inductors can often be reused on switch mode supplies even though it is a different voltage rail. It may sacrifice a minor % of efficiency, or on the surface cost a few cents more - though doubling the volume will more than likely cancel this out.
  4. Don't be afraid to understand and modify the 'webbench' recommendation. TI, National, etc all have really easy to use web based tools for designing power supplies, but don't take the design they provide as the end of it. There is scope for adjustment and fine tuning to suit your particular board
  5. Some switch mode ICs can be configured as a DC/DC converter, or as a current source for driving an LED backlight. Look into these options at design time and use the same switch mode IC for both

Similar components can often crop up in designs. If there are multiple different types of MOSFETS, BJTS, or diodes these can be reviewed to ensure that there is a good reason for them to all be different. This is most often a problem when portions of several designs are combined to make a new one.

Use configurable logic gates - TI for one make some small ICs (SN74AUP1G57 for example) that can be wired up as an AND gate, an OR gate, or some other odd-ball gate. These can have their advantages if there are several different gate types in the design that can each be replaced by a different version of the single configurable gate.

Consider for some applications using transistors and resistors to replace a one-off logic IC.

There are many more things that can be done. The majority take very little effort at the schematic phase. It is easy to be of the mindset that that 12.7k resistor only costs a few cents, so why bother removing it, however the issue is not the cost of the component - it is the cost of supporting the component! The 5min to design it out pales when compared to the what it would cost to support it through the lifetime of the product through purchasing, stocking, machine setup, and risk of it being temporarily unavailable.

Here at Bluewater we strive to keep BOM counts down and this approach has produced dividends both in simpler prototype and production builds. The benefit is easier stock tracking and reduced time spent on component managment.


If you haven't already got one, head over here and pick up an mbed board for a small sum of money. With it you can:

  • Play with a real piece of ARM hardware
  • Write code in C/C++ using a web-based IDE
  • Develop software without installing any tools on your computer
  • See what lots of other people have done with this great little device
  • Have a program running in under a minutes (yes really!)
  • For US$59 it has to be one of the lowest cost ways into ARM
This unit is very similar to the Snapper UDIP module we created a few years ago, but the bug innovation is that you don't need to worry about tools. It connects to your computer over USB and you interact with it via a web site.
Sorry, we don't sell these, but see here for lots of options in various countries.

It is perhaps a little over a year since it became obvious to everyone that Intel and ARM were starting to stamp on each other's toes. For years it was assumed that only x86 could do 'real' computers and only ARM could do battery devices. For some reason it was , a tiny market with limited volume (or even MIDs, which didn't even exist), where all the fuss began.

As the lines between smartphone and PC blur, "ARM is coming up from the portable space, and Intel is coming down from the PC space," says Joseph Byrne, a senior analyst at the Linley Group who specializes in semiconductors and processor IP. "Looking forward, these guys are going to collide."
Talk of convergence between mobile and computer has been going on for a decade, but is not much closer for all that time. A laptop is still a PC, despite the inclusion of a battery and a Nokia E90 is still a phone despite the keyboard. Many assumed that if Intel wanted to win in the mobile space then it would. It just didn't see the point of fighting over a market where the CPU costs $10-20. Those of us of a more technical bent, while not doubting Intel's capability and engineering prowess, wondered how long it would take. Some thought that Intel could play catch-up for 5 years or more, and still not win the battle.

Thin Client

The problem for Intel, as this article describes, is not just ARM but the 'thin client' model. If I can run a 'thin' email client on my ARM-based device, and it can web browse, and show photos and videos, and open the occasional PDF, etc., what more do I need? MS Office? Well maybe, if I'm a business user but otherwise Google Apps might do the trick. On the other hand, the problem for the thin client model is that it has been talked about for even longer than convergence. It pre-dates the tech crash when Sun told anyone who would listen that Windows was doomed and the network is the computer. So people are naturally sceptical. The definition of thin client has broadened quite a bit, now encompassing anything with a decent GUI, not just a very small desktop PC. Still, the name 'netbook' has hung on, now meaning a small laptop, and I am very happy with my (x86-based) Asus Eee PC700 thanks very much. Ken Olson, founder of DEC, ironically later an ARM licensee, supposedly said in the late 1970s “There is no reason for any individual to have a computer in their home.” Now it is clear that the question is not whether, but how many, and what in fact is a computer? By processing power it would be obvious to Olson that the Nintendo DS, Apple iPod Touch, Nokia E71, Archos 700 Internet Tablet and Nintendo Wii are all computers in some sense. By that definition our household has several dozen computers. Every one of these devices has at least one ARM chip. None of them has an x86 processor, let alone an Intel. All are network connected and can be considered as thin clients, albeit very thin in some cases. But each of these devices provides an adequate experience for the user, which is all that really matters. So, whereas Intel is fighting the thin client model, this model can only benefit ARM, since ARM already rules in the thin client space. Intel hopes that thin clients will either not succeed, or will run out of legs and have to move to faster x86 processors. That might be a forlorn hope. In summary, the thin client model suggests that ARM has a bright future as consumers buy more and more of these thin client devices for particular tasks.

Processing Power

The other side of the argument is processing power.Ten years ago you arguably needed an x86 CPU to do just about anything. [I say arguably because there was a time (around 1996) where you could buy a 200MHz ARM-based computer but the Pentiums stopped at 90MHz. But it was the Pentiums which ran Windows] Perhaps seven years ago email would have been beyond an ARM chip. Five years ago basic word processing and spreadsheets were problematic. But today the processing power and associated heat, size and expense that comes with an high-end x86 CPU is really only needed for video editing, Flash-enabled web browsing and perhaps photo editing. The list of things you can't do with an ARM CPU is getting smaller all the time, and the performance requirements of Windows and the common applications have not kept up. Those, such as Intel, who argue that you can only get a decent web browser on an x86 platform should take a look at the lowly Nokia N900. Engadget's review says this:
Almost without fail, sites were rendered faithfully (just as you'd expect them to look in Firefox on your desktop) with fully-functional, usable Flash embeds -- and it's fast. Not only is the initial rendering fast, but scrolling around complex pages (Engadget's always a good example) was effortless; you see the typical grid pattern when you first scroll into a new area, of course, but it fills in with the correct content rapidly. To say we were blown away by the N900's raw browsing power would be an understatement -- in fact, we could realistically see carrying it in addition to another phone for browsing alone, because even in areas where it gives a little ground to the iPhone or Pre in usability, it smacks everyone down in raw power and compatibility.
Steve Jobs, in launching the ARM-based iPad yesterday said the iPad offers the...
best [Web] browsing experience you’ve ever had. A whole Web page right in front of you that you can manipulate with your fingers. Way better than a laptop
That's quite a claim and if it is even halfway true if suggests that ARM it catching up fast. Some would argue that massive processing power is needed just to run Windows 7 - in fact this is suggested by . But in a similar way to Intel, Microsoft's problem is selling people an Operating System which they might not need. In any case, telling consumers that they need 1GHz of CPU power to run the Operating System and virus checker has to be a risky strategy. Part of this change is due to software becoming smarter, but most of it is simply that ARM chips are getting faster. It has all happened rather suddenly. Not much more than a year ago TI brought out a 600 MHz Cortex-A8 chip, with 1200 DMIPS of performance (as used now in the Nokia N900). Atom offered 1.6 GHz and perhaps 3900 DMIPS. No contest, although it could be pointed out that a better comparison in terms of power consumption was 1950 DMIPS for the 600mW Atom (excluding the 2-3W used by the companion chip). Then in September, ARM announced their 2GHz Osprey development. Aimed at around 2W, this claimed to offer around 10,000 DMIPS, twice that of the fast Atom but at less power since no companion chip is required. Still it was only a design, not in real chips, so Intel carried on with its original iPhone ARM11 comparisons. After all, Intel has great plans for the future also. But in the past few months we have a dual core 1 GHz Cortex-A9 from nVidia, Qualcomm's 1.5 GHz dual core Snapdragon (ARM compatible) and of course TI's next step along the path, the OMAP4440. So it's not just designs: we now have chips. Still, chips doesn't equal final product, and the iPhone 3GS and Nokia N900 are using only a now-lowly 600 MHz Cortex-A8. So Intel can be safe for another few years, surely? Initial ARM-based netbooks were cheap but not necessary stellar on the performance side. But now Acer has announced that it is looking at tablets, and hinted that this might involve ARM. Freescale is talking ARM tablets, and the Apple iPad includes an ARM core (perhaps a single core Cortex-A9 with Mali graphics). Gartner group thinks that Android on ARM is more snappy than Windows 7 on Atom. Suddenly, ABI Research is predicting that ARM PCs will outsell Intel in 2013. The performance arguement for x86 might be wearing thin. Perhaps all that junk silicon really isn't for anyone's benefit. Consumers appear to be moving fast to more portable devices - laptop sales are increasing whereas desktop PC sales are actually in decline year on year. This could explain the meaning of the iPad - an attempt to capture 80% of the 'computer time' of consumers with a new device which does most of what they need for less money and less hassle. In summary, ARM appears to be overtaking Intel's Atom on speed (this is unlikely to last!), while Intel is really struggling with the battery life. I know where I'd rather be in this race.

And the Winner Is?

Things are going to be very interesting over the next few years. Both ARM and Intel really have their work cut out for them to grow their market share from their respective home bases. Of course it is too early to declare that ARM is going to take over the market for low-end computers. Perhaps it doesn't matter anyway, given that in many cases the Bluetooth, WiFi, flash media and graphics components already include an ARM. Some would argue that the takeover happened long ago. But in the headline CPU, where Intel is Inside, my suggestion is: sell Intel, buy ARM.

We have been maintaining a version of the Linux 2.6.20 kernel for around 2 years time now.  Since 2.6.20, a number of features have been added to the mainline kernel which are of interest to us.  Some of these new features are:

  • Support for the AT91SAM9G20
  • System on chip camera support
  • Improved WiFi support
  • SDIO and SDHC card support
  • Power supply class for managing batteries
In addition to support for new features and drivers, there are a number of benefits to using a recent kernel:
  • It is easier to get support with issues and bugs.
  • Patches posted on mailing lists are easier to apply to recent kernels.
  • It is easier to port patches developed against a recent kernel to be considered for mainline acceptance.
Andrew Morton discussed some of the above benefits in his keynote talk at the CELF Embedded Linux Conference in 2008.  The slides from his talk are available at http://www.celinux.org/elc08_presentations/morton-elc-08.ppt. We choose to use 2.6.29 as the base for our new supported Linux kernel (at the time of writing, the latest stable kernel is 2.6.30).  We have now ported most of the support for our Snapper CL15 and Snapper 9260 Single Board Computer Modules (https://bluewatersys.com/quickstart/) into our 2.6.29 kernel, which is available for download at https://bluewatersys.com/public/linux/linux-2.6.29-snapper.tar.gz. During the upgrade from 2.6.20 to 2.6.29, we have taken the opportunity to drop a large amount of our lecagy code and to clean up other code to better conform to the Linux kernel coding standards.  The long term goal is to improve the maintainability of our kenel code and, wherever possible, push support for our platforms to the mainline kernel in order to ease the upgrade process for ourselves in the future.