Everyone associates Google’s Android operating system with the smartphone market, but that software platform’s surging popularity is creating opportunities for innovative design teams in two ways. First, designers can develop companion products for the Android ecosystem that rely on low-cost microcontrollers (MCUs) and provide value-added functionality. Second, designers can adapt the Android platform as a basis for their own system designs. Indeed the smartphone experience has raised the expectation for user interfaces in specialty embedded systems.
Let’s examine MCUs and the development tools available for design teams wanting to pursue either of the Android opportunities.
First, consider choosing Android as the operating system for an embedded system design. The fact is, smartphones have pervaded society and people are becoming quite comfortable with the intuitive touch-based user interface.
While you might not think a specialized embedded system – say a portable data-acquisition system or an industrial controller – needs the sophistication of the Android interface, users accustomed to these systems may prefer Android. Moreover, Android comes with features such as an intuitive GPS application that could come in handy in an embedded system. Design teams can quickly develop an intuitive interface for custom applications. Additionally, Android may reduce development time and deliver a more compelling end product. For more perspective on using Android in an embedded project, see “Why Android deserves a look in embedded wireless systems” in the Wireless TechZoneSM
A design team could port Android to any number of high-end MCUs. Already, Atmel offers some MCUs with a ready-to-deploy Android port. The AT91SAM9G45 and AT91SAM9M10 MCUs are based on the ARM926 processor core, and Atmel offers support for Android, along with Linux and the embedded version of Microsoft Windows.
MCU or embedded MPU?
Atmel vacillates between calling the products MCUs and Embedded MPUs (embedded microprocessors). However, they are generally grouped with MCUs in places such as the Hotenda website, which provides access to all Atmel ARM9 and ARM7 products on one page. The distinction on the devices’ labels comes down to integrated memory. The 400-MHz AT91SAM9G45 and AT91SAM9M10 (Figure 1) integrate peripherals, as most MCUs do, but they don’t include the flash or ROM memory typically used for code storage on MCUs. Instead, the devices include a memory controller that can interface to external DDR or SDRAM memory. Indeed an operating system such as Android would require more memory than could be practically integrated in an MCU.
Figure 1: The Atmel AT91SAM9M10 includes commonly found MCU peripherals such as an A/D converter and timers, and integrates an LCD controller and even hardware video-decode functionality. (Source: Atmel)
Both of the Atmel MCUs include a robust peripheral set as depicted in Figure 1. In the connectivity area, the MCUs integrate a high-speed 480-Mbit/s USB interface that can operate in host or device mode, a 10/100-Mbit/s Ethernet MAC, and multiple UART, SPI, and TWI (two-wire interface such as I²C) ports. The ICs include other typical MCU peripherals, such as a 10-bit A/D converter, four 16-bit PWM controllers, six 32-bit timers and general-purpose I/O. In terms of memory, there are an integrated boot ROM and a small on-chip SRAM array.
The MCUs also include some features that will come in handy in a touch-based system. An integrated LCD controller supports screens with resolutions to 1280 x 860 pixels with 2D graphics acceleration. The MCUs also include an interface to resistive touch screens. The AT91SAM9M10 adds camera and audio interfaces, and a video decoder that can handle D1 720 x 576- or WVGA 800 x 480-pixel streams at 30 frames per second.
For design teams who want to jump-start an Android project, Atmel also offers the AT91SAM9M10-G45-EK Evaluation Kit. The kit includes an AT91SAM9M10 processor, a 480x272-pixel LCD with a resistive touch panel, and easy interface to all on-chip peripherals. The kit and the MCUs come with support for Android 2.1.
Developing Android peripherals
The other Android-centric opportunity for design teams is the development of peripherals for popular Android devices. Many such designs would rely on an MCU as the most cost-effective way to develop products. Microchip intends to simplify such projects through its new Accessory Development Starter Kits for Android. The company is already shipping the PIC24F Accessory Development Starter Kit for Android for PIC24F-family MCUs that are based on the widely-used 16-bit PIC architecture. It also has pledged to deliver a similar development kit for the 32-bit PIC32 family by the end of the third quarter of 2011. The PIC32 family is based on the MIPS processor architecture.
The kits are targeted at accessory development for devices based on versions 2.3.4 and 3.1 of the Android operating system. Typical use is the development of audio-centric devices such as music accessory kits, and Bluetooth and GPS car kits. For the home, examples include remote controls, audio docking stations, and disk- or flash-based storage devices. Microchip also envisions life-science applications ranging from personal glucose meters and fitness monitoring accessories, to business applications such as projectors or point-of-sale terminals.
The PIC24F kit includes the development board pictured in Figure 2, a PICkit 3 in-circuit debugger, an ICSP adapter cable that can connect to an in-circuit emulator, and a DC power converter. Microchip supplies a free software library with the board. The library includes a sample application protocol, and an abstraction layer that allows the design team to focus on the application development without regard for the underlying hardware.
Figure 2: Microchip intends to simplify the development of accessory devices and peripherals for Android-based systems via an accessory development kit that is available now for PIC24F MCUs and coming soon for PIC32 MCUs. (Source: Microchip)
The board integrates a PIC24F MCU that includes a USB OTG (on-the-go) peripheral. USG OTG allows direct device-to-device communication without the need for a USB host device. The board includes an array of buttons and indicators, and a potentiometer. There is also a device-charger circuit that can power an Android device.
For prototype development, the board supports the open-source Arduino prototyping platform. Connectors on the Microchip board will connect with Arduino boards for a variety of sensors and actuators. Design teams can either buy Arduino boards or build their own based on the freely available reference designs.
Microchip also is supplying a complete documentation set for the development kit. Design teams can download the PCB layout and the schematic for the board.
Accessories developed with the Microchip kit can be targeted for a wide range of PIC24F MCUs. The MCUs operate at 8 MHz and rely on an internal oscillator for the clock. Designers can choose from products that range from 4 to 256 Kbytes of flash memory for code storage. Ram ranges from 512 to 98304 bytes. The smallest MCUs in the family come in a 14-pin package, while the largest come in a 121-pin package. Designers can choose from a broad set of integrated peripherals.
Android is the fastest-growing operating system in the smart phone market and is beginning to make inroads into tablets as well. That momentum promises robust opportunities for companies to develop innovative peripherals for the platform, which has gained a legion of users. Basing a project on the Android platform might provide the differentiating features that influence product purchase, even if it is a specialty embedded system. Moreover, Android is the only real off-the-shelf option for such projects, given that no one expects Apple to license its iPhone platform.