Programmable Logic
The LPC804 MCU and several devices in the LPC5500 series incorporate a Programmable Logic unit (PLU) that
can be used to implement a variety of interfaces and/or glue logic functions, reducing
system component count and often greatly reducing processing load on the MCU itself. Logic designs for the
PLU can be created using the complimentary
PLU tool from NXP,
which outputs register settings to be included in your application. Using the MCUXpresso
configuration tools, you can configure and error check the connections from the PLU block to the device pins
and check for connection errors, and simply drop your register settings into your
application.
Devices with the PLU feature are shown below. Note that the SDK support for these boards can also be
downloaded from within MCUXpresso IDE.
Coprocessors
Arm Cortex-M33 Coprocessor
The Armv8-M architecture includes support for coprocessor extensions, and NXP has used this capability to
develop highly efficient extensions for DSP and security-related processing.
PowerQuad Coprocessor
PowerQuad is a coprocessor designed by NXP to improve energy efficiency and performance when implementing
DSP algorithms using its MCUs based on Cortex-M33 core. PowerQuad can be programmed
directly or via an API that is compatible with Arm’s CMSIS-DSP library. MCUXpresso SDK includes API header
files to support CMSIS-DSP, plus several examples showing their use.
Supported CMSIS-DSP API calls include:
-
Matrix functions
- arm_mat_add_q15, arm_mat_add_q31, arm_mat_add_f32
- arm_mat_sub_q15, arm_mat_sub_q31, arm_mat_sub_f32
- arm_mat_mult_q15, arm_mat_mult_q31, arm_mat_mult_f32
- arm_mat_inverse_f32
- arm_mat_trans_q15, arm_mat_trans_q31, arm_mat_trans_f32
- arm_mat_scale_q15, arm_mat_scale_q31, arm_mat_scale_f32
-
Math functions
- arm_sqrt_q15, arm_sqrt_q31
- arm_sin_q15, arm_sin_q31, arm_sin_f32
- arm_cos_q15, arm_cos_q31, arm_cos_f32
-
Filter functions
- arm_fir_q15, arm_fir_q31, arm_fir_f32
- arm_conv_q15, arm_conv_q31, arm_conv_f32
- arm_correlate_q15, arm_correlate_q31, arm_correlate_f32
-
Transform functions
- arm_rfft_q15, arm_rfft_q31
- arm_cfft_q15, arm_cfft_q31
- arm_ifft_q15, arm_ifft_q31
- arm_dct4_q15, arm_dct4_q31
PowerQuad has other hardware capabilities, such as transcendental functions, and examples of using these are
also provided in the SDK.
Devices with PowerQuad are shown below. Note that the SDK support for these boards can also be downloaded
from within MCUXpresso IDE.
|
Device Family |
Cores |
Recommended Evaluation Boards
|
LPC55S6x |
Dual Cortex-M33 |
LPCXpresso55S69 |
i.MX RT685 |
Cortex-M33 and Cadence® Tensilica® HiFi 4 DSP |
MIMXRT685-EVK |
CASPER
To address the challenges of asymmetric cryptography, NXP has developed CASPER, a Cryptographic Accelerator
and Signaling Processing Engine with RAM-sharing. It is a hardware accelerator engine
for certain asymmetric cryptographic algorithms, such as Elliptic Curve Cryptography (ECC). CASPER sits on
the Cortex-M33 coprocessor buses. CASPER is utilized by NXP’s implementation of MbedTLS
in MCUXpresso SDK, so you can take advantage of the speed and energy-saving benefits with no additional
effort compared to a software-only approach.
Devices with CASPER are shown below. Note that the SDK support for these boards can also be downloaded from
within MCUXpresso IDE.
|
Device Family |
Cores |
Recommended Evaluation Boards
|
LPC55S6x |
Dual Cortex-M33 |
LPCXpresso55S69 |
i.MX RT685 |
Cortex-M33 and Cadence Tensilica HiFi 4 DSP |
MIMXRT685-EVK |
Specialized Interfaces
NXP microcontrollers include powerful, innovative interface peripherals to reduce system cost, improve energy consumption and leave more processor cycles for your application.
Interface Block
LPC5500 series MCUs incorporate a specialized, programmable peripheral block that can be used to implement a variety of interfaces with little or zero overhead for the Arm cores they contain, enabling you to implement lower system cost implementations, save energy and leave more processing cycles for your applications. NXP provides drivers and examples for some specialized peripherals (upon request) that can be used with MCUXpresso SDK projects.
Devices with this specialized peripheral block feature are shown below.
State-controlled Timers
Several MCUs in NXP’s portfolio include powerful peripherals that can solve many logic and timing
challenges.
The State Configurable Timer (SCT) is available on most LPC and i.MX RT600 microcontrollers. At its core, the SCT is a up/down counter that can be sequenced with up to 16 events on LPC5500 series devices (the number of events supported varies with the device family). The events can be triggered by IO or by one of 16 possible counter matches. An event can then update a state variable, generate IO activity (set, clear, toggle) or start/stop/reverse the counter. In some cases, the SCT can be used to build a semiautonomous subsystem, with very low MCU overhead to manage it. Using these capabilities, a broad range of sophisticated system designs can be implemented, often achieving system cost savings by reducing the need for external FPGAs or other components. MCUXpresso SDK includes examples of PWM timer implementations using the SCT, and the MCUXpresso Peripheral Configuration Tool enables design of state machine-controlled timers on-the-fly.
FlexIO Module
The FlexIO module is available in several members of the K32, Kinetis, i.MX RT MCU families. The
FlexIO module is very flexible, allowing you to configure it according to your
communication needs; it is capable of emulating various serial communication protocols such as UART, SPI and
I2C. The main components of the FlexIO module are the shifters, timers and pins; data
is loaded onto a shifter and a timer is assigned to generate the shifter clock and use a pin to input/output
the data to/from the shifter. Shifters have a timer assigned to them to generate the
shift clock and it can be configured to shift data in or out. Beyond serial interfaces, FlexIO can also
emulate parallel interfaces, such as LCD display drivers, with very low MCU overheard.
Examples using FlexIO to emulate I2C, I2S, UART, SPI and displays that match the 8080 and 6800 bus protocols
are included in MCUXpresso SDK and Peripheral configuration tools, along with PWM
driver examples. Examples for camera interfaces and IrDA camera interfaces are available in application
notes from the NXP website by searching for “FlexIO application note”.
The table below shows which devices include the SCT and/or FlexIO special peripherals.
|
Device Family |
Cores |
FlexIO
|
SCT
|
K8x, K27/28 |
Cortex-M4 |
|
- |
KE1xx |
Cortex-M4/M0+ / Cortex-M0+ |
|
- |
KL (excl. KL0x) |
Cortex-M0+ |
|
- |
K32 L |
Cortex-M4/M0+ / Cortex-M0+ |
|
- |
i.MX RT1010 |
Cortex-M7 |
|
- |
i.MX RT1020 |
Cortex-M7 |
|
- |
i.MX RT1050 |
Cortex-M7 |
|
- |
i.MX RT1060 |
Cortex-M7 |
|
- |
i.MX RT1160 |
Cortex-M7 / Cortex-M4 |
|
- |
i.MX RT1170 |
Cortex-M7 / Cortex-M4 |
|
- |
LPC81x/82x/83/x84x |
Cortex-M0 / M0+ |
- |
|
LPC51U68 |
Cortex-M0+ |
- |
|
LPC54000 |
Cortex-M4 |
- |
|
LPC5500 |
Cortex-M33 / Dual Cortex-M33 |
- |
|
i.MX RT500 |
Cortex-M33 / Cadence Tensilica Fusion F1 DSP |
|
|
i.MX RT600 |
Cortex-M33 / Cadence Tensilica HiFi 4 DSP |
- |
|