If you were to take the case off a newer smartphone or PDA you wouldundoubtedly find a SoC processorinside. That's because SoC processors often provide the fastest routefrom design to the marketplace, offer tremendous flexibility in addingfeatures in future designs, and can offer cost, form factor, and otheradvantages that would be impractical or impossible to realize with asystem involving many discrete components.
But the advantages of SoC processors are not limited to mainstreamconsumer applications. These processors can pay sizable dividends inembedded applications of all sorts. The key is understanding which SoCprocessor is appropriate for your embedded device and giving thoughtearly on to the best way to integrate it.
SoC applications processors are designed to integrate a large numberof peripherals with the processor core. These processors, which aretypically built around a RISC core ” commonly ARM, though MIPS andother cores are also used ” provide memory management units and otherfeatures required by Windows CE , Linux,and other embedded operating systems.
Supported peripherals typically include a display controller, staticand dynamic memory controllers, various serial interfaces (e.g., UART,SPI, USB), and add-on slot controllers (e.g. PCMCIA, CompactFlash,SDIO). Some SoC processors may also include keypad controllers,multimedia accelerators, and other features.
With all these peripherals, there is a great deal of complexity inbuilding a platform around a SoC processor. There are usually multipleways to map the functional blocks to the I/O pins. The operating systemneeds to understand what is being used and how, which means driversneed to be customized to match the schematic design. There are alsolow-power modes that you will want to take advantage of.
Here are five things to consider when selecting SoC processors foryour embedded systems:
1. Choose Wisely
Choosing a SoC processor is the most important decision you will makeand requires careful consideration. There are many options available,but there are ways to quickly focus on what is the best for yourapplication.
<>The first question you should ask is whether a particular SoCprocessor is even available for your device.Some SoC manufacturers sellonly in tremendous volume to a handful of mass-market device markers.Their chip may be functionally perfect for your device, but it may notbe available to you. Depending on your volume and procurement strategy,you may require a processor that is available through distributors.Start your decision-making process by making a list of SoC processorsthat you can buy.
Second, look at what markets each SoC processor is targeted toward.For example, a particular processor may be loaded with a variety ofhigh-end multi-media features. That's great if you're building a devicethat will make use of those features. If not, those capabilities maysimply drive up your cost and cut into your margin without providingany benefit.
You may even want to create a spreadsheet where you list thefeatures you need in one column and mark which SoC processors meetthose needs. If you aren't able to find a part that has all thefeatures you want ” and only those features ” you may need to maketradeoffs between the cost of the processor and the cost of externalperipherals to provide the missing features.
Finally, look at the level of support available. Using a SoCprocessor is not easy. There is a lot to learn, and learning it on yourown will take time ” time that you may not be able to afford in yourrush to market. You will want some level of support and a referenceboard to help you speed up the design process, test custom circuitry,develop software, and finalize your design. Whether they come from theprocessor manufacturer itself or a third party, make sure a qualityreference board and other forms of support are available for any SoCprocessor you consider.
2. Start with a Reference
The availability of an appropriate reference design or developmentplatform (Figure 1, below )should be one of the key factors you use to decide on a SoC processor.A reference design gives you a key head start for developingapplication software to run on your embedded device. And it gives you avery good start in developing your own hardware design.
You can see a working design in action before you build anything.You can see how someone successfully incorporated various components,and use their framework as a starting point for your own design. With areference design, someone else has already navigated the quirks of thehardware to build a functioning device. All you need to do is figureout how to customize it to meet your specific needs.
Just as the SoC processor decision needs to be made based on theneeds of your particular device and the functions the processor offers,you also need to consider your needs in choosing a reference design.Reference designs vary quite dramatically, ranging from small formfactor packages containing little more than the processor to morerobust tools with large displays and circuitry that's easier to access.
What type of reference makes sense for you depends on where you arein your development process. Do you want to put the reference design ona bench and test different electrical approaches? If so, you should gowith a larger development platform. If you have a base board designcomplete, then a simple processor module may be sufficient. If yourequire a handheld form factor, other references may be available.
You should also evaluate how easy it is to test custom hardware withany given reference design. Does it offer the expansion interfacesyou're going to need to test your custom parts? You may not need theseexpansion interfaces if your embedded device is fairly standard. Ifyour device is highly customized, however, these interfaces will provecritical.
3. Don't Neglect the BSP
A good boardsupport package (BSP) is also vital for rapid development. Becausetoday's processors have such tremendous potential for customization,there is a tremendous amount of work to be done to get an operatingsystem running on them. Choosing a SoC processor that has aproduction-quality board support package will give you a goodfoundation to begin the customization work.
The benefits of the board support package are the same as with thereference design. In all but the most exceptional of cases, yourdrivers will require some degree of customization. But with the BSP youcan customize drivers that already work, rather than trying to figureout how to build your own drivers in the first place. It frees you frommaking arbitrary decisions about how your drivers should be set up andfrom the trial-and-error debugging process needed to make everythingwork.
Using a tool chain that allows easy modification of the boardsupport package makes the task even easier. You will likely have toremap some of the pins if you are using the functional blocks of theprocessor differently, and you may want to eliminate drivers forperipherals you are not using. Rather than manually editing the driversource files to make any modifications, you can edit a singleconfiguration file that will select the appropriate drivers, modifythem as necessary, and compile a BSP for you.
Finally, make sure you consider the quality of the board supportpackage. Sample or demo-quality BSPs may be fine for showing offhardware, but you will be stuck with a lot of optimization work andlong test and debug cycles to make sure you have a stable platform. Aproduction-quality BSP that has already gone through a rigorous qualityassurance process can greatly accelerate your project.
4. Consider Power Management
If you are designing a battery-powered device, power management is atthe top of your list of concerns. Even if your device is line-powered,you may want to reduce thermal dissipation or minimize power use forenvironmental reasons. While you can work to maximize power efficiencyyourself, it's far more efficient to choose a SoC processor that issupported by an integrated power management solution. An appropriatepower management integrated circuit (PMIC) may be provided by the samemanufacturer as the SoC processor or by a manufacturer that specializesin power and analog components.
Modern application processors feature dramatically improved powermanagement capabilities, with many power domains giving you the abilityto match consumption with the task at hand. Integrated power solutionsare better able to take advantage of those additional power domainsthan solutions involving discrete components. This is due to theireconomies of scale, including the sharply reduced need for siliconpackaging and the ability to share functionality that would otherwisebe duplicated between several different voltage regulators.
Some of these solutions even go beyond power management andincorporate audio codecs, LED drivers, and other analog functions. Thisprovides an integration bonus ” integrated digital in your SoCprocessor and integrated analog in your PMIC!
As with the reference design, it's far easier to build a highlyefficient device when somebody has already done the most complicatedwork for you. That reduces the debugging challenge and gives you moretime to focus on the features that make your device unique.
5. Consider the Future
Just as you don't want a SoC processor with frills that you would neveruse in a million years, you also don't want a SoC processor that you'regoing to outgrow next week. The hardest part of any embedded project iscoming up with the basic design, and ideally you should be able to usethat design for a few years, even as you add features.
If you use a SoC processor that has only the functionality you needtoday, you will need to select a different processor if you want to addany capabilities, such as additional peripherals. That requiresdeveloping a new embedded design from scratch. Adding any features ” nomatter how minor ” becomes a costly endeavor.
As you begin your design work, you should think about what you mayrealistically want to add to the device in two to three years, and youshould use a SoC processor that includes those features. Don't gooverboard. For example, if you're designing a data entry device, youprobably won't need multimedia accelerators, so why pay for them. Butyou may want to add Bluetooth capabilities.
Choosing a SoC processor that has those capabilities now even if youdon't plan to use them right away makes the upgrading process lesspainful. It can mean the difference between an application softwarechange to use a supported feature (or, at worst, a minor board spin toadd an additional connector) and a complete platform redesign.
A SoC processor gives you unprecedented functionality and power-savingscapabilities in a compact design. But there are many choices. The keyto getting the most out of the processor is giving serious thoughtabout what you need today and in the future, and carefully selectingthe processor and support options that will meet those needs. Theresult can be a highly efficient embedded device with rapid time tomarket.
Ron Stieger works at BSQUARECorporation as a Hardware Engineering Manager on embedded referencedesigns. Ron has over ten yearsof experience in embedded system design and management at BSQUARE,Fluke Networks, Terabeam and AstroTerra.