i2s(inter-ic sound bus) transmit and receive on rt600 hifi4 · 2020. 2. 28. · codec chip to...

13
1 Introduction This document describes how to use I2S and DMA to record and playback audio with NXP i.MX RT600. It also includes the process of how to use the codec chip to process audio data on the i.MX RT600 Evaluation Kit (EVK) based on the Cadence Xtensa HiFi4 Audio DSP. The i.MX RT600 is a dual-core microcontroller with 32-bit Cortex ® -M33 CPU and Xtensa HiFi4 Audio DSP CPU. In addition, it provides up to 4.5 MB of on- chip SRAM (plus an additional 128 KBytes of tightly coupled HiFi4 ram) and several high-bandwidth interfaces to access off-chip flash. The Cadence Xtensa HiFi 4 Audio DSP engine is a highly optimized audio processor designed especially for efficient execution of audio and voice codecs and pre- and post-processing modules. The document mainly introduces the use of I2S interface around the mode and configuration of I2S on RT600, as well as the configuration and usage of DSP. This application uses an I2S interface to receive the audio stream into the buffer, and then uses another I2S interface to send the audio stream to the audio playback device. 2 Development platform The I2S transmit and receive demo is based on RT600 EVK rev E, the actual demo hardware is shown in Figure 1. To make example work, the following points need attention: JP7.1 connect to JP7.2 JP8.1 connect to JP8.2 Source of sound (line input to J3) Audio speaker (line output from J4) Change the ISP switch (SW5) to FLEXSPI Port B boot (0b010) Power on board with USB cable plugged to J6 Contents 1 Introduction............................................ 1 2 Development platform............................ 1 3 I2S overview.......................................... 2 3.1 Hardware architecture.................... 2 3.2 Frame format................ 3 4 Implementation...................................... 4 4.1 User case system......... 4 4.2 Select clock source....... 5 4.3 Set clock according to application.................. 6 4.4 WM8904 codec configuration.................. 7 4.5 DMA and interrupt configuration.................. 9 4.6 Audio stream process. 10 5 Conclusion........................................... 11 6 References.......................................... 11 7 Revision history................................... 12 AN12749 I2S(Inter-IC Sound Bus) Transmit and Receive on RT600 HiFi4 Rev. 0 — 28 February 2020 Application Note

Upload: others

Post on 31-Mar-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: I2S(Inter-IC Sound Bus) Transmit and Receive on RT600 HiFi4 · 2020. 2. 28. · codec chip to process audio data on the i.MX RT600 Evaluation Kit (EVK) based on the Cadence Xtensa

1 IntroductionThis document describes how to use I2S and DMA to record and playbackaudio with NXP i.MX RT600. It also includes the process of how to use thecodec chip to process audio data on the i.MX RT600 Evaluation Kit (EVK)based on the Cadence Xtensa HiFi4 Audio DSP.

The i.MX RT600 is a dual-core microcontroller with 32-bit Cortex®-M33 CPUand Xtensa HiFi4 Audio DSP CPU. In addition, it provides up to 4.5 MB of on-chip SRAM (plus an additional 128 KBytes of tightly coupled HiFi4 ram) andseveral high-bandwidth interfaces to access off-chip flash.

The Cadence Xtensa HiFi 4 Audio DSP engine is a highly optimized audioprocessor designed especially for efficient execution of audio and voice codecsand pre- and post-processing modules.

The document mainly introduces the use of I2S interface around the mode andconfiguration of I2S on RT600, as well as the configuration and usage of DSP.This application uses an I2S interface to receive the audio stream into thebuffer, and then uses another I2S interface to send the audio stream to theaudio playback device.

2 Development platformThe I2S transmit and receive demo is based on RT600 EVK rev E, the actual demo hardware is shown in Figure 1.

To make example work, the following points need attention:

• JP7.1 connect to JP7.2

• JP8.1 connect to JP8.2

• Source of sound (line input to J3)

• Audio speaker (line output from J4)

• Change the ISP switch (SW5) to FLEXSPI Port B boot (0b010)

• Power on board with USB cable plugged to J6

Contents

1 Introduction............................................ 1

2 Development platform............................1

3 I2S overview.......................................... 23.1 Hardware

architecture.................... 23.2 Frame format................ 3

4 Implementation...................................... 44.1 User case system......... 44.2 Select clock source.......54.3 Set clock according

to application..................64.4 WM8904 codec

configuration.................. 74.5 DMA and interrupt

configuration.................. 94.6 Audio stream process.10

5 Conclusion........................................... 11

6 References.......................................... 11

7 Revision history................................... 12

AN12749I2S(Inter-IC Sound Bus) Transmit and Receive on RT600 HiFi4Rev. 0 — 28 February 2020 Application Note

Page 2: I2S(Inter-IC Sound Bus) Transmit and Receive on RT600 HiFi4 · 2020. 2. 28. · codec chip to process audio data on the i.MX RT600 Evaluation Kit (EVK) based on the Cadence Xtensa

Figure 1. Actual demo hardware

3 I2S overview

3.1 Hardware architectureThe i.MX RT600 includes eight configurable universal serial interface modules (Flexcomm Interfaces), each module contains anintegrated FIFO and DMA support. Flexcomms 0 through 5 can be configured as an I2S (Inter-IC Sound) interface for digitalaudio input or output. Each I2S supports up to four channel-pairs. The overall architecture of an example I2S subsystem isshown in Figure 2.

NXP SemiconductorsI2S overview

I2S(Inter-IC Sound Bus) Transmit and Receive on RT600 HiFi4, Rev. 0, 28 February 2020Application Note 2 / 13

Page 3: I2S(Inter-IC Sound Bus) Transmit and Receive on RT600 HiFi4 · 2020. 2. 28. · codec chip to process audio data on the i.MX RT600 Evaluation Kit (EVK) based on the Cadence Xtensa

Figure 2. I2S block diagram

3.2 Frame formatThe I2S module on i.MX RT600 has the following three basic operating modes: Classic I2S mode, DSP mode, and TDM mode.

The specification of Classic I2S mode defines 2 channel stereo data on SDA, where the WS state identifies the left (low) andright (high) channel, and data is delayed by 1 clock after WS transitions. The schematic diagram of the Classic I2S mode isshown in Figure 3.

Figure 3. Classic I2S mode

DSP mode packs channel data together in the bit stream (left data followed by right data for each slot) and does not use WS toidentify left and right data. In this mode, the data region begins at the leading WS edge for the frame. Through the changes inWS, DSP mode can evolve three modes: DSP mode with 50 % WS, DSP mode with 1 SCK pulsed WS and DSP mode with 1slot pulsed WS. The schematic diagrams of these three DSP modes are shown in Figure 4 Figure 5 and Figure 6.

Figure 4. DSP mode with 50 % WS

NXP SemiconductorsI2S overview

I2S(Inter-IC Sound Bus) Transmit and Receive on RT600 HiFi4, Rev. 0, 28 February 2020Application Note 3 / 13

Page 4: I2S(Inter-IC Sound Bus) Transmit and Receive on RT600 HiFi4 · 2020. 2. 28. · codec chip to process audio data on the i.MX RT600 Evaluation Kit (EVK) based on the Cadence Xtensa

Figure 5. DSP mode with 1 SCK pulsed WS

Figure 6. DSP mode with 1 slot pulsed WS

TDM mode uses multiple data slots in order to put more channels of data into a single stream. The schematic diagram of theTDM in Classic I2S mode is shown in Figure 7.

Figure 7. TDM in Classic I2S mode

4 ImplementationThis chapter describes some design points of I2S in applications, focusing on the connection with common codec, the selectionof I2S clock source, the calculation and configuration of clock frequency.

4.1 User case systemIn this application, the architecture of the user case is shown in Figure 8. The WM8904 codec receives the audio signal from theplayer such as MP3 or PC. HiFi continuously receives the PCM signal of codec through one I2S interface, and uses another I2Sinterface to send PCM signal to codec and playback in real time.

NXP SemiconductorsImplementation

I2S(Inter-IC Sound Bus) Transmit and Receive on RT600 HiFi4, Rev. 0, 28 February 2020Application Note 4 / 13

Page 5: I2S(Inter-IC Sound Bus) Transmit and Receive on RT600 HiFi4 · 2020. 2. 28. · codec chip to process audio data on the i.MX RT600 Evaluation Kit (EVK) based on the Cadence Xtensa

Figure 8. User case system architecture

4.2 Select clock sourceA key step in using the I2S interface is to configure the I2S clock and select the clock source. In general, the clock source ofMCLK (Master Clock) and I2S needs to be determined first. As shown in Figure 9. There are two clock sources for MCLK,48/60m_irc and audio_pll_clk. There are at least five clock sources for I2S. In this application, the source of MCLK and I2S areboth audio_pll_clk.

NXP SemiconductorsImplementation

I2S(Inter-IC Sound Bus) Transmit and Receive on RT600 HiFi4, Rev. 0, 28 February 2020Application Note 5 / 13

Page 6: I2S(Inter-IC Sound Bus) Transmit and Receive on RT600 HiFi4 · 2020. 2. 28. · codec chip to process audio data on the i.MX RT600 Evaluation Kit (EVK) based on the Cadence Xtensa

Figure 9. Communication interface function clocks

4.3 Set clock according to applicationAfter configuring the clock source of the I2S, the next step is to configure the clock frequency of the MCLK and the clock frequencyof the I2S according to the actual application. There are two kinds of clock frequencies for I2S sample rate. Typical I2S samplefrequencies are shown in Table 1.

Table 1. I2S sample frequency

Typical Sample Frequency (Hz) Typical Sample Frequency (Hz)

11025 8000

22050 16000

44100 24000

-------- 32000

-------- 48000

-------- 96000

In general, user should check the codec data sheet to calculate the clock frequency of MCLK. For WM8904, MCLK isrecommended to be 256 times the sample frequency(WS). Once the frequency of WS is determined, the frequency of MCLK canalso be determined.

The calculation of the I2S bit clk(BCLK) as follows:

NXP SemiconductorsImplementation

I2S(Inter-IC Sound Bus) Transmit and Receive on RT600 HiFi4, Rev. 0, 28 February 2020Application Note 6 / 13

Page 7: I2S(Inter-IC Sound Bus) Transmit and Receive on RT600 HiFi4 · 2020. 2. 28. · codec chip to process audio data on the i.MX RT600 Evaluation Kit (EVK) based on the Cadence Xtensa

• BCLK = WS * Word count * Word length

In this application, the I2S operating mode is configured as Classic I2S mode, the sample rate, word count, and word length arealready known, the calculation process of I2S BLCK is as follows:

• WS frequency is 48 kHz.

• MCLK frequency is configured to 24.576 MHz.

• The number of I2S Word count is set to 2.

• Word length is configured to 16.

So, BCLK = WS * Word count * Word length = 48 kHz * 2 * 16 = 1.536 MHz

Finally, the division coefficient of I2S(I2S_DIV) = audio_pll_clk /BCLK = 24.576 MHz/1.536 MHz = 16

The code in Example 1 shows the configuration of I2S Clock.

Example 1

#define DEMO_AUDIO_BIT_WIDTH (16)#define DEMO_AUDIO_SAMPLE_RATE (48000) #define DEMO_I2S_CLOCK_DIVIDER 24576000/2/16/48000/* attach AUDIO PLL clock to FLEXCOMM1 (I2S1) */CLOCK_AttachClk(kAUDIO_PLL_to_FLEXCOMM1);/* attach AUDIO PLL clock to FLEXCOMM3 (I2S3) */CLOCK_AttachClk(kAUDIO_PLL_to_FLEXCOMM3);/* attach AUDIO PLL clock to MCLK */CLOCK_AttachClk(kAUDIO_PLL_to_MCLK_CLK);CLOCK_SetClkDiv(kCLOCK_DivMclkClk, 1);SYSCTL1->MCLKPINDIR = SYSCTL1_MCLKPINDIR_MCLKPINDIR_MASK;/* Set shared signal set 0: SCK, WS from Flexcomm1 */SYSCTL1->SHAREDCTRLSET[0] = SYSCTL1_SHAREDCTRLSET_SHAREDSCKSEL(1) |SYSCTL1_SHAREDCTRLSET_SHAREDWSSEL(1);/* Set flexcomm3 SCK, WS from shared signal set 0 */SYSCTL1->FCCTRLSEL[3] = SYSCTL1_FCCTRLSEL_SCKINSEL(1) |SYSCTL1_FCCTRLSEL_WSINSEL(1);s_TxConfig.divider = DEMO_I2S_CLOCK_DIVIDER;s_RxConfig.divider = DEMO_I2S_CLOCK_DIVIDER;

4.4 WM8904 codec configurationThe WM8904 is a high performance ultra-low power stereo codec optimized for portable audio applications. The WM8904 usesa standard 2-wire control interface, providing full software control of all features. The HiFi4 can communicate with the codec byI2C and can use I2C for codec initialization and configuration. The WM8904 is an I2C slave device on the control interface, SCLKis a clock input, while SDA is a bidirectional data pin. To allow arbitration of multiple slaves (and/or multiple masters) on the sameinterface, the WM8904 transmits logic 1 by tri-stating the SDA pin, rather than pulling it high. An external pull-up resistor is requiredto pull the SDA line high so that the logic 1 can be recognized by the master. The sequence of signals associated with a singleregister write and read operation is shown in Figure 10.

NXP SemiconductorsImplementation

I2S(Inter-IC Sound Bus) Transmit and Receive on RT600 HiFi4, Rev. 0, 28 February 2020Application Note 7 / 13

Page 8: I2S(Inter-IC Sound Bus) Transmit and Receive on RT600 HiFi4 · 2020. 2. 28. · codec chip to process audio data on the i.MX RT600 Evaluation Kit (EVK) based on the Cadence Xtensa

Figure 10. Control interface register write and read

The WM8904 is configured to I2S mode, the schematic diagram of the I2S mode is shown in Figure 11.

Figure 11. Codec I2S mode schematic diagram

In I2S mode, the MSB is available on the second rising edge of BCLK following an LRCLK transition. The other bits up to theLSB are then transmitted in order. Depending on word length, BCLK frequency and sample rate, there are unused BCLK cyclesbetween the LSB of one sample and the MSB of the next.

The code in Example 2 shows the configuration of I2S Clock.

Example 2

wm8904_config_t wm8904Config = {.i2cConfig = {.codecI2CInstance = BOARD_CODEC_I2C_INSTANCE, .codecI2CSourceClock= 19000000U},.recordSource = kWM8904_RecordSourceLineInput,.recordChannelLeft = kWM8904_RecordChannelLeft2,.recordChannelRight = kWM8904_RecordChannelRight2,.playSource = kWM8904_PlaySourceDAC,.slaveAddress = WM8904_I2C_ADDRESS,.protocol = kWM8904_ProtocolI2S,.format = {.sampleRate = kWM8904_SampleRate48kHz, .bitWidth = kWM8904_BitWidth16},.mclk_HZ = 24576000U,.master = false,};static void I2C_Config(void)

NXP SemiconductorsImplementation

I2S(Inter-IC Sound Bus) Transmit and Receive on RT600 HiFi4, Rev. 0, 28 February 2020Application Note 8 / 13

Page 9: I2S(Inter-IC Sound Bus) Transmit and Receive on RT600 HiFi4 · 2020. 2. 28. · codec chip to process audio data on the i.MX RT600 Evaluation Kit (EVK) based on the Cadence Xtensa

{PRINTF("Configure WM8904 codec\r\n");/* protocol: i2s * sampleRate: 48K * bitwidth:16*/if (CODEC_Init(codecHandle, &boardCodecConfig) != kStatus_Success){PRINTF("WM8904_Init failed!\r\n");}/* Initial volume kept low for hearing safety. */CODEC_SetVolume(codecHandle, kCODEC_PlayChannelHeadphoneLeft | kCODEC_PlayChannelHeadphoneRight, 0x0020);}

4.5 DMA and interrupt configurationThe DSP input multiplexer allows the user to select which DSP interrupt to be connected. The connection of interrupts to theHiFi4 is shown in Table 2. In addition to providing the required interrupt selection, the selection interrupt can also assign aninterrupt priority to suit the application. The L1 interrupt has the lowest priority and the L3 interrupt has the highest priority.

Table 2. HiFi4 interrupt

Interrupt Description Priori

tyInterru

pt Description Priority

Interrupt Description Priority

0 SYS IRQ NMI 11 Interrupt selected byDSP_INT0_SEL6 L1 22 Interrupt selected by

DSP_INT0_SEL17 L2

1 SOFTWARE IRQ0 L2 12 Interrupt selected byDSP_INT0_SEL7 L1 23 Interrupt selected by

DSP_INT0_SEL18 L2

2 INTERNAL RTOSTIMER0 L2 13 Interrupt selected by

DSP_INT0_SEL8 L1 24 Interrupt selected byDSP_INT0_SEL19 L3

3 INTERNAL RTOSTIMER1 L3 14 Interrupt selected by

DSP_INT0_SEL9 L1 25 Interrupt selected byDSP_INT0_SEL20 L3

4 PROFILING IRQ L3 15 Interrupt selected byDSP_INT0_SEL10 L1 26 Interrupt selected by

DSP_INT0_SEL21 L3

5 Interrupt selected byDSP_INT0_SEL0 L1 16 Interrupt selected by

DSP_INT0_SEL11 L2 27 Interrupt selected byDSP_INT0_SEL22 L3

6 Interrupt selected byDSP_INT0_SEL1 L1 17 Interrupt selected by

DSP_INT0_SEL12 L2 28 Interrupt selected byDSP_INT0_SEL23 L3

7 Interrupt selected byDSP_INT0_SEL2 L1 18 Interrupt selected by

DSP_INT0_SEL13 L2 29 Interrupt selected byDSP_INT0_SEL24 L3

8 Interrupt selected byDSP_INT0_SEL3 L1 19 Interrupt selected by

DSP_INT0_SEL14 L2 30 Interrupt selected byDSP_INT0_SEL25 L3

9 Interrupt selected byDSP_INT0_SEL4 L1 20 Interrupt selected by

DSP_INT0_SEL15 L2 31 Interrupt selected byDSP_INT0_SEL26 L3

Table continues on the next page...

NXP SemiconductorsImplementation

I2S(Inter-IC Sound Bus) Transmit and Receive on RT600 HiFi4, Rev. 0, 28 February 2020Application Note 9 / 13

Page 10: I2S(Inter-IC Sound Bus) Transmit and Receive on RT600 HiFi4 · 2020. 2. 28. · codec chip to process audio data on the i.MX RT600 Evaluation Kit (EVK) based on the Cadence Xtensa

Table 2. HiFi4 interrupt (continued)

10 Interrupt selected byDSP_INT0_SEL5 L1 21 Interrupt selected by

DSP_INT0_SEL16 L2 ------ ------ ------

After selecting the interrupt connection to the DSP, it is necessary to use XOS to register an interrupt handler for specified interrupt.In addition, there are two DMA controllers that can be used in a number of ways in RT600. One typical usage of DMA is thatCM33 use DMA0 and HiFi4 use DMA1.

The code in Example 3 shows how HiFi4 DMA and interrupt are configured.

Example 3

DMA_Init(DMA1);/* XCHAL_EXTINT19_NUM, intlevel 2 */INPUTMUX_AttachSignal(INPUTMUX, 18U, kINPUTMUX_Dmac1ToDspInterrupt); xos_register_interrupt_handler(XCHAL_EXTINT19_NUM, (XosIntFunc *) DMA_IRQHandle, DMA1);xos_interrupt_enable(XCHAL_EXTINT19_NUM); DMA_EnableChannel(DMA1, DEMO_I2S_TX_CHANNEL);DMA_SetChannelPriority(DMA1, DEMO_I2S_TX_CHANNEL, kDMA_ChannelPriority3);DMA_CreateHandle(&s_DmaTxHandle, DMA1, DEMO_I2S_TX_CHANNEL); DMA_EnableChannel(DMA1, DEMO_I2S_RX_CHANNEL); DMA_SetChannelPriority(DMA1, DEMO_I2S_RX_CHANNEL, kDMA_ChannelPriority2);DMA_CreateHandle(&s_DmaRxHandle, DMA1, DEMO_I2S_RX_CHANNEL);

4.6 Audio stream processIn order to receive and play audio stream data at the same time and avoid stuttering, the method for processing audio streamsis shown in Figure 12. A total of three blocks are used for audio transmission and reception buffers, and these three blocks forma cycle buffer. The bit width of a frame of audio data is 16 bits, and each block contains 16 frames of audio data (8 frames forthe left and right channels). Whenever the audio frame in one block is full, the next block will start receiving immediately. Theaudio transmission mechanism is the same as the reception. Of course, the number of blocks depends on the actual needs ofthe user. When the number of blocks is 2, it forms a typical ping-pang mode.

NXP SemiconductorsImplementation

I2S(Inter-IC Sound Bus) Transmit and Receive on RT600 HiFi4, Rev. 0, 28 February 2020Application Note 10 / 13

Page 11: I2S(Inter-IC Sound Bus) Transmit and Receive on RT600 HiFi4 · 2020. 2. 28. · codec chip to process audio data on the i.MX RT600 Evaluation Kit (EVK) based on the Cadence Xtensa

Figure 12. Audio stream process

5 ConclusionWhen using I2S, some notes worth paying attention are:

• The transmission mode of I2S and the clock configuration(MCLK, WS, BCLK) needs to refer to the specific codec.

• Processing of audio streams.

• When using DMA interrupt for audio transmission on HiFi4, it is necessary to use XOS to register interrupt handler forspecified interrupt.

6 References1. An I2S (Integrated Interchip Sound Bus) Application on Kinetis (AN4800).

2. Using Multi-Channel Feature of SAI (AN12090).

3. RT6xx User manual (Rev. 0.95 — 11 November 2019).

4. Xtensa XOS Reference.

5. WM8904 Data Sheet.

NXP SemiconductorsConclusion

I2S(Inter-IC Sound Bus) Transmit and Receive on RT600 HiFi4, Rev. 0, 28 February 2020Application Note 11 / 13

Page 12: I2S(Inter-IC Sound Bus) Transmit and Receive on RT600 HiFi4 · 2020. 2. 28. · codec chip to process audio data on the i.MX RT600 Evaluation Kit (EVK) based on the Cadence Xtensa

7 Revision history

Revision number Date Substantive changes

0 26/02/2019 Initial release

NXP SemiconductorsRevision history

I2S(Inter-IC Sound Bus) Transmit and Receive on RT600 HiFi4, Rev. 0, 28 February 2020Application Note 12 / 13

Page 13: I2S(Inter-IC Sound Bus) Transmit and Receive on RT600 HiFi4 · 2020. 2. 28. · codec chip to process audio data on the i.MX RT600 Evaluation Kit (EVK) based on the Cadence Xtensa

How To Reach Us

Home Page:

nxp.com

Web Support:

nxp.com/support

Information in this document is provided solely to enable system and software implementers touse NXP products. There are no express or implied copyright licenses granted hereunder todesign or fabricate any integrated circuits based on the information in this document. NXPreserves the right to make changes without further notice to any products herein.

NXP makes no warranty, representation, or guarantee regarding the suitability of its products forany particular purpose, nor does NXP assume any liability arising out of the application or useof any product or circuit, and specifically disclaims any and all liability, including without limitationconsequential or incidental damages. “Typical” parameters that may be provided in NXP datasheets and/or specifications can and do vary in different applications, and actual performancemay vary over time. All operating parameters, including “typicals,” must be validated for eachcustomer application by customer's technical experts. NXP does not convey any license underits patent rights nor the rights of others. NXP sells products pursuant to standard terms andconditions of sale, which can be found at the following address: nxp.com/SalesTermsandConditions.

While NXP has implemented advanced security features, all products may be subject tounidentified vulnerabilities. Customers are responsible for the design and operation of theirapplications and products to reduce the effect of these vulnerabilities on customer’s applicationsand products, and NXP accepts no liability for any vulnerability that is discovered. Customersshould implement appropriate design and operating safeguards to minimize the risks associatedwith their applications and products.

NXP, the NXP logo, NXP SECURE CONNECTIONS FOR A SMARTER WORLD, COOLFLUX,EMBRACE, GREENCHIP, HITAG, I2C BUS, ICODE, JCOP, LIFE VIBES, MIFARE, MIFARECLASSIC, MIFARE DESFire, MIFARE PLUS, MIFARE FLEX, MANTIS, MIFARE ULTRALIGHT,MIFARE4MOBILE, MIGLO, NTAG, ROADLINK, SMARTLX, SMARTMX, STARPLUG, TOPFET,TRENCHMOS, UCODE, Freescale, the Freescale logo, AltiVec, C‑5, CodeTEST, CodeWarrior,ColdFire, ColdFire+, C‑Ware, the Energy Efficient Solutions logo, Kinetis, Layerscape, MagniV,mobileGT, PEG, PowerQUICC, Processor Expert, QorIQ, QorIQ Qonverge, Ready Play,SafeAssure, the SafeAssure logo, StarCore, Symphony, VortiQa, Vybrid, Airfast, BeeKit,BeeStack, CoreNet, Flexis, MXC, Platform in a Package, QUICC Engine, SMARTMOS, Tower,TurboLink, UMEMS, EdgeScale, EdgeLock, eIQ, and Immersive3D are trademarks of NXP B.V.All other product or service names are the property of their respective owners. AMBA, Arm,Arm7, Arm7TDMI, Arm9, Arm11, Artisan, big.LITTLE, Cordio, CoreLink, CoreSight, Cortex,DesignStart, DynamIQ, Jazelle, Keil, Mali, Mbed, Mbed Enabled, NEON, POP, RealView,SecurCore, Socrates, Thumb, TrustZone, ULINK, ULINK2, ULINK-ME, ULINK-PLUS, ULINKpro,µVision, Versatile are trademarks or registered trademarks of Arm Limited (or its subsidiaries) inthe US and/or elsewhere. The related technology may be protected by any or all of patents,copyrights, designs and trade secrets. All rights reserved. Oracle and Java are registeredtrademarks of Oracle and/or its affiliates. The Power Architecture and Power.org word marksand the Power and Power.org logos and related marks are trademarks and service markslicensed by Power.org.

© NXP B.V. 2020. All rights reserved.

For more information, please visit: http://www.nxp.comFor sales office addresses, please send an email to: [email protected]

Date of release: 28 February 2020Document identifier: AN12749