Using precision analog MCU Peripherals to create high value, signal-intensive designs
DMA to everything
Direct memory access (DMA) is a mechanism commonly employed to move data between memory and peripherals. This technique relieves the CPU of this trivial task and frees up more MIPS for other useful work.
A typical DMA implementation on an MCU has a fixed number of sources and targets on the device, thus restricting the usefulness of the DMA engine. Given the nature of a general-purpose MCU, it is difficult to predict which peripherals need DMA. The general rule is to apply DMA to the high-bandwidth peripherals and ignore all others. However, in a real-time system, it can be beneficial to provide DMA access to all addresses on the machine regardless of bandwidth.
The SiM3U1xx/SiM3C1xx MCUs, for example, implement just such a system. While only a certain number of peripherals have explicit DMA support (i.e., they can be configured as DMA masters with FIFOs and interrupt logic to support detailed bandwidth management), all peripherals can be accessed by the DMA. Those peripherals without explicit DMA support must be bandwidth-managed in software and will not have a mechanism to signal back to the CPU in case of a buffer error condition. For example, the port pulse generator can be controlled by just such a system with some software overhead, thus enabling an arbitrary waveform generator that can be controlled more precisely.
This DMA engine can also be used to control the MCU’s PLL using DMA-chaining based on radio traffic. For example, if the radio notifies the MCU that it was about to transmit a packet, a software DMA trigger can be used to issue a DMA request that will load the PLL with relevant parameters that shift its frequency, thus reducing its radio interference footprint.
Higher precision current DAC
A DAC generates an analog voltage when presented with a digital code. A typical DAC will have a certain bit-precision that it can achieve, depending on the design. Thus, a 10-bit DAC will convert a 10-bit digital code into a voltage (or current) in a given range.
DACs integrated on MCUs can be used for many purposes, such as bias current generators, arbitrary waveform generators or, in the case of a current DAC (also known as an IDAC), as a relatively noise-immune communication medium.
Given the waveform generation capability of a DAC, a typical implementation allows the DAC to have DMA accessibility and function as a DMA master with a concomitant FIFO. This arrangement allows waveform generation using the DMA from a defined waveform in memory, for example.
The SiM3U1xx/SiM3C1xx MCUs take this DAC concept one step further. A FIFO structure implements a looping capability that extends the precision of the IDAC from 10 bits to 12 bits at one-fourth the data rate by interpolating between adjacent 10 bit values without DMA intervention. For example, if the IDAC outputs three identical values of “x” and a fourth value of “x+1”, the IDAC output as measured at the package pin will be a 12-bit precision value as shown in Figure 2. This capability can be used to generate a 12-bit precise bias current.
Figure 2.12-Bit IDAC Output
Conclusion
Techniques that extend the precision of standard analog capabilities increase the value of 32-bit mixed-signal MCUs in applications that involve radio and motor control technologies. The high-precision PWM engine, fine PLL adjustment, and high-precision IDAC exemplify extended precision capabilities that provide 32-bit MCUs with more capabilities in applications that these devices could otherwise not serve. DMA-to-everything is a capability that provides the MCU with more granular control and peripheral usage to further enhance value. Higher precision implemented in today’s 32-bit MCUs will almost always lead to higher value through better usability and applicability.
Thomas David is a principal design engineer for Silicon Labs’ MCU products and was the lead designer for the company’s first 32-bit MCU product, the SiM3U16X Precision32 MCU. He has been involved, either as a designer or as a chip lead in nearly all of the MCU products released by Silicon Labs. He came to Silicon Labs as part of the company’s Cygnal Integrated Products acquisition in 2003. Prior to Cygnal, he was president of Silogix, an Austin-based silicon intellectual property (SIP) company that was acquired by Cygnal Integrated Products. He has a BSEE from Purdue University and an MSEE from Penn State University.
Pedro Pachuca manages Silicon Labs’ global microcontroller (MCU) interface product business. He joined Silicon Labs in early 2010. Previously, he was a product marketing manager at Freescale Semiconductor where he developed MCU business strategies to penetrate new global markets and managed a business with an annual run rate in excess of $250 million. Mr. Pachuca holds a BSSE degree from the Instituto Politecnico Nacional at Mexico City.


Loading comments... Write a comment