How the PowerQuad Co-processor Frees Up CPU Cores in the LPC55S69 MCUNovember 19, 2020 by Eli Hughes, NXP Semiconductors
In this article, learn about the PowerQuad co-processor and its role in performing CPU-heavy tasks to allow the Arm Cortex-M33 cores to execute other tasks in the LPC55S69 MCU.
Apart from its two processing cores, various security components, and other useful features, NXP’s LPC55S69 PowerQuad comes with a built-in DSP.
The “PowerQuad” is a designated hardware co-processor that aids the CPU cores in performing a standard set of complicated mathematical operations, such as mathematical operations, matrix calculations, filtering, and transform functions, including FFT. Using the PowerQuad unit to perform such typically CPU-heavy tasks leaves the main cores free to complete other tasks.
In this article, learn about the PowerQuad unit and one of the many projects that can be realized by utilizing it.
What is the PowerQuad?
PowerQuad is a dedicated hardware component that can efficiently perform calculations that would take a conventional CPU a significant time to process. Instead of letting one of the MCU’s Arm® Cortex®-M33 cores do the job, the LPC55S69’s built-in PowerQuad unit can run calculations in parallel to the main CPU, freeing up the CPU for other tasks, such as communication and IO operations.
With the help of the PowerQuad, embedded application developers can implement sophisticated signal processing algorithms without having to strain the CPU, which is a very important use-case in distributed sensor systems and the Industrial Internet of Things (IIoT).
Example Project: Using the PowerQuad in a Mini-Monkey Board
The LPC55S69 MCU and its PowerQuad co-processor have the potential to enable a wide variety of embedded projects and products, and this article takes a look at one of them.
With the help of a Mini-Monkey board that uses an LPC55S69 MCU and contains an OLED display and a microphone, a demo application was developed. It samples the audio from the microphone and displays a waveform of the sampled audio on the OLED display. In detail, 256 samples are collected with a sampling rate of 32KHz before the raw time series data is displayed. The resolution in amplitude is 18-bits, and the amplitude had to be divided down to fit the waveform on the output display.
Figure 1. The LPC55S69 MCU enables the mini-monkey board to sample time-series data from a microphone and display it on the built-in screen.
The point of this experiment is to work with time-series data. This example collects data into a buffer and then continually displays the information on the screen. Here, the data happens to come from a microphone. It is, however, possible to use any other sensor as well.
A Look at Time-Series Data
Time-series data is standard in many sensor-based and IIoT applications. It describes a form of measurement where information is collected at a constant interval and put into a buffer. Depending on the context, the individual data samples might be processed right away, or a broader set of information is processed at once, for example, once the buffer is full.
In the end, there is a buffer filled with data samples that represent the change of the input over a certain period. Note that it’s impossible to take samples infinitely fast, and the measurement resolution can’t be arbitrarily high. However, for the sampling to work, the sampling frequency must be fast enough to sufficiently capture the fastest frequency in the sampled signal (refer to the Nyquist-Shannon sampling theorem).
Figure 2. A simplified example of time-series data.
Notice that the dots in the figure above aren’t connected, indicating that the captured data is discrete.
How the PowerQuad Aids in Processing Data
Many signal processing algorithms boil down to relatively simple but repetitive calculations over arrays of data. Just about any complex operation can be broken down into a series of multiplication and add operations, which is why MAC units are an essential part of digital signal processors and even many modern general-purpose CPUs.
The LPC55S69 PowerQuad co-processor incorporates the most common building blocks for performing DSP calculations. It works alongside the MCU to speed up filtering or transforming time-series data. This enables the two Cortex-M33 cores to perform other tasks, such as collecting and buffering more data samples, while the PowerQuad crunches the numbers in parallel. It’s clear to see how this speeds up many applications that require DSP functionalities.
The increase in processing speed, however, isn’t the only benefit. By including the PowerQuad unit in the LPC55S69 MCU, embedded engineers can aim for smaller and more power-efficient designs because they don’t have to include an external DSP. Applications that don’t necessarily require a DSP to work can also benefit from the PowerQuad by utilizing it to filter out noisy data, allowing transmission and storage of only relevant information.
Power Line Communications and Metering
Another use-case for the LPC55S69 MCU is power line communications (PLC), which can be useful if there’s no wiring infrastructure other than AC or DC power lines. PLC uses sophisticated techniques such as orthogonal frequency division multiplexing (OFDM) for transmitting data over power lines. OFDM is noise-tolerant, and it allows a system to send data bits down a communications channel in parallel across several frequency bands. Thanks to this approach, many slow parallel communications channels can be utilized to achieve high bit rates.
OFDM solutions require the system to compute FFTs in real-time on an incoming time-series, which is where the PowerQuad comes into play. It aids the CPU in encoding the data that’s to be sent over a power line.
Using bins of the FFT, the outgoing information is encoded using the real and imaginary components (amplitude and phase) to form the bits of a data word. Once this is done, an inverse FFT can be applied to end up with a time-series signal sent through a DAC. On the decoding end, an FFT has to be performed to get the original bins. Once that’s done, the original data can be reconstructed using the amplitude/phase information.
Even though this is an extreme simplification of the OFDM process, it shows that accelerators such as the PowerQuad are vital in making it work. The LPC55S69 MCU is, therefore, very well suited for applications like this. The filtering, decoding, and encoding are all outsourced to the PowerQuad unit, ensuring that the two central CPU cores are free to do other things in the meantime. Furthermore, all of this can be achieved using very little energy and without the need for additional external co-processors.
The LPC55S69 PowerQuad Unit
This article discussed two examples enabled by the LPC55S69 MCU and its embedded PowerQuad unit, which can be used to accelerate the mathematical operations required in digital signal processing.
Using the PowerQuad unit to perform such computation-heavy operations leaves the LPC55S69 MCU’s two main Cortex-M33 cores free to complete other tasks. The approach of including a DSP in the LPC55S69 MCU has many benefits, including reduced power consumption, faster computations, and simpler designs.
NXP's community page offers an in-depth look at the LPC55S69 MCU’s PowerQuad unit and its capabilities. The site also provides various application notes, tutorials, and videos based on the available MCUs to help users better understand their capabilities.
Industry Articles are a form of content that allows industry partners to share useful news, messages, and technology with All About Circuits readers in a way editorial content is not well suited to. All Industry Articles are subject to strict editorial guidelines with the intention of offering readers useful news, technical expertise, or stories. The viewpoints and opinions expressed in Industry Articles are those of the partner and not necessarily those of All About Circuits or its writers.