HomeThe Bluewater BlogAuthorsAdministrator

ARM's new Cortex brand name encompasses a range which splits into three parts: A, R and M. The A is the high performance application range and R is for deeply embedded, deterministic performance (internal SRAM rather than cache is the rule) but still very fast. The M is out on its own. Standing for 'microcontroller' it is ARM's foray into the $1 micro space. The initial product, Cortex-M3, has spawned devices from Luninary Micro, NXP, STM, Toshiba among others. A more recent edition, the Cortex-M1 is aimed at embedding in an FPGA. A few months ago ARM announced Cortex-M0. That number must have been chosen carefully as there is nowhere to go beyond it. A Cortex-M(-2) is unlikely to appear. Last week, NXP announced that it has working silicon, the first semiconductor partner to reach this stage. NXP expects products based around this core to ship in early 2010 about 9 months from now. ARM claims 12 uW per MHz for this core. This compares to about 250 uA per MIPS quoted by TI for their MSP430. This is the chip that everyone talks about when low power is desired. Of course, the Cortex-M0 is just a core and it remains to be seen what NXP and others will put around it in terms of power consuming peripherals. Also NXP seems to be using the 0.18um process which uses about 86 uW per MHz. But it is hard to see Cortex-M0 having anything less than a large advantage in terms of power consumption when running. It also has various sleep modes as with the MSP430. With the 0.18um process NXP can clock the chips at up to 50MHz. An internal oscillator and PLL reduce the need for high speed external crystals. The range is called LPC1100. Best of all, ARM claims software compatibility with the Cortex-M3, so a relatively seamless transition should be possible for those who want to take advantage of the low power options. In other words, ARM's engineers have apparently reduced power consumption by clever design, and throwing away features without breaking the instruction set compatibility. That said, surely no one programs the Cortex-M3 in assembler as one of its selling points is that you never need to.

The Cortex-M3 has been quite successful in its market, and ARM no doubt sees a market even below that. Quoted applications include lighting, gaming controllers, and Zigbee. Some might baulk at putting a 32-bit micro in a light switch, but if the cost is right, why not? ARM is trying to help by describing it more in 16-bit terms than 32-bit. Apparently putting a 16-bit micro in a light switch is OK these days.

to be continued

The Bluewater System's 9260 Quickstart Kit offers two methods for connecting a high resolution digital camera.  The first option is to use the flat flex connector on the Snapper 9260 module itself.  This method can be used to easily add the Bluewater Systems 3 Megapixel digital camera board (see https://bluewatersys.com/design/showcase/digitalcameras.php) to the 9260 Quickstart Kit.  The digital camera board comes with all necessary software for using the camera, including a library which provides a simple, easy to use library for developing camera based applications.  The flat flex connector can also be used for custom designed camera boards.  The pin-out includes 4 general purpose IOs (from the Snapper 9260s IO expander), which can be used for connecting to signals such as reset, strobe and trigger on an image sensor. The second method for connecting cameras is to use the camera pins on the 9260 Quickstart Kit header.  This allows any digital image sensor to be quickly connected to the Quickstart Kit for prototyping and testing.  Up to 12-bit image sensors are supported.  Most development kits for image sensors provide a pin strip on the image sensor board, which can be easily wired to the header on the 9260 Quickstart Kit header. Combining a Quickstart Kit, a digital camera board and Bluewater System's PTP-USB library (see https://bluewatersys.com/blog/?p=74) allows for quick prototyping of a handheld digital camera, with USB connectivity to a standard Windows PC for downloading photos.

Embedded computing is a fast-moving field, with products, components, even whole markets coming and going on a monthly basis. The Open Source world is similar - and you often find that the problems you have at the moment are ones that other people are working on right now. Keeping a close eye on the industry gives you advance warning of up-and-coming issues, a window into the minds of your competitors and consumers, and can be a valuable source of ideas for future trends. In addition to the more traditional vendor-driver news channels, there are numerous Internet-based resources providing notification and discussion of events - ranging from aggregations of company press releases to personal ramblings by personalities driving new development. In this entry we will present a sampling of some of the resources found to be of particular and consistent interest. High-level news aggregates http://slashdot.org/ Extremely popular general news aggregation site for geek-related news, the discussion on topics of interest can offer valuable insight into the mind of the common technically-inclined consumer. http://arstechnica.com/ Well-written news site on technology-related events - could be seen as an editorial counter for Slashdot's discussion model. http://news.cnet.com/nanotech/ Cnet News network's blog focusing on news related to computer hardware. Field-specific news sites http://www.linuxdevices.com/ One of the central resources for news related to Linux and embedded devices. Low-traffic source for news releases from the small form factor computing industry. http://www.dev-monkey.com/ Occasional articles on development tools and new evaluation kits. http://www.portablemultimedia.blogspot.com/ Well-written articles focusing on news about portable devices. http://kerneltrap.org/ At one point a definitive news site on Open Source kernel development, this site still provides a easier-to-digest window into the various kernel mailing lists. http://www.embedded-computing.com/ http://cr4.globalspec.com/blog/83/Embedded-Now-Blog Embedded Computing Design magazine's blogs Personal and individual journals Personal blog of Harold Welte, known for his Linux iptables, GPL enforcement and OpenMoko work. Currently active as open source liaison for VIA Technologies. http://pavelmachek.livejournal.com/ Pavel Machek's personal journal, focusing on experiences with open source projects and the G1 Android phone. http://www.bunniestudios.com/blog/ Andrew Huang's personal blog, notable for first-hand discussions on embedded product development and the Name that Ware challenge. The lighter side of engineering http://www.electronicsweekly.com/blogs/engineering-design-problems/ Some pieces of engineering are not quite up to a standard one can be proud of. This site documents pitfalls of engineers, with examples. http://thedailywtf.com/default.aspx Insider anecdotes of how wrong software can go. There are, of course, innumerable other news sites, blogs and journals out there that are of interest in the Embedded Computing domain. Many of them are very subject-focused: dealing only with one particular product, project or the like. If you can recommend additional resources that are of general interest, however, please comment and do so.

I don't have a Blu-Ray player yet. People tell me the best option at the moment is to get a Playstation 3, but I don't have a TV to do it justice, so have held off. I need the current TV to break first (accidentally, of course). Having said that I notice that Blu-Ray discs are starting to make an appearance at the video store, so perhaps that will push me over the edge. But at the moment, Blu-Ray is an 'early' technology, yet to hit the massive volumes of the consumer mainstream. The Cortex-R4 is in a similar position in terms of its visibility in the microcontroller market. While there are at least a dozen licensees, I believe only TI has announced a part based around it - presumably TI had a hand in the conception of the device. The Cortex-R4 is living up to its 'deeply embedded' name. Some of the features of the Cortex-R4 are:

  • 8-stage pipeline (partly superscalar)
  • Performance 400MHz (although 600MHz was subsequently announced)
  • Resulting 600 DMIPS at 400MHz, and presumably 900 DMIPS at 600MHz
  • Architecture ARMv7, including very low interrupt latency features
  • Floating point unit (FPU)
  • Branch prediction and prefetch
  • Tightly coupled memory (TCM) aka internal single cycle SRAM, as well as caches
  • Memory protection unit (MPU)
  • Advanced profiling support, hardware divide, CoreSight debug and ECC memory support
The Cortex-R4 is ridiculously configurable, for example allowing three different MPU options, 3 TCM port options (with different sizes as well), selectable number of breakpoints and watchpoints and floating point or not. One can only imagine what sort of unit volumes / cost pressures might drive such extreme configurability. Not content with a single core, TI's TMS570 range includes two cores running together, although the second can be a Cortex-M3 instead. This is a serious amount of processing power for automotive applications. But ARM has aimed the chip at more than just the automotive market. Disk drives, both magnetic and optical; ink jet and laser printers, and even 3G modems. Which brings us back to Blu-Ray. Broadcom has announced that it has selected Cortex-R4 for its next-generation of Blu-Ray player chips. One point noted in the PR is that the Cortex-R4 allows the TCMs to be powered while the CPU itself is stopped. It isn't clear what this is used for - perhaps to allow data transfer to happen under DMA while processing is suspended. Broadcom's new chip is presumably a replacement for the MIPS-based BCM7440 single chip solution. The level of technology in these devices is a wonder to behold. Let's hope ARM announces a Japanese licensee this year, and perhaps someone in the disk drive market. In the meantime, I predict that the first company to put this new Cortex-R4 part into a Blu-Ray player will at last drag me into the high definition world.

Without hardware support for screen rotation the programmer is often left to rotate the content in software before it is placed into the frame buffer. This has a considerable impact on the performance of the product. An alternative on some devices is to use DMA to do the screen rotation. This requires the DMA engine to increment the SDRAM row between pixel reads and while it frees up the processor, it uses the SDRAM very inefficiently and can have similar performance impacts as doing the entire job in software. The OMAP3530 contains hardware support for screen rotation using a rotation engine called the Virtual Rotated Frame Buffer (VRFB). This is embedded into the SDRAM Controller and can be configured to issue multiple requests to the SDRAM ensuring a maximum of consecutive accesses is performed. By tuning the VRFB to the architecture of the SDRAM the impact of page-miss penalties can be decreased and accordingly memory access performance is improved. For the programmer the VRFB provides four virtual frame buffers; 0, 90, 180 and 270 degrees. Normally the display controller is programmed to read from the unrotated location and the content to be displayed is written to the virtual address of the required rotation. OMAP3530 VRFB We have recently implemented this feature in our Snapper-DV product. By using the combination of hardware rotation and hardware scaling the customer can pick and choose how their content is displayed on a variety of screens.