I2S / ESAI OF I.MX6 ULTRA LITE

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

I2S / ESAI OF I.MX6 ULTRA LITE

703 Views
alighieri
Contributor III

HELLO

Here Are Some Questions About Audio Interface Of I.MX6 Ultra Lite Cortex Signle A7 Core. As I Know I.MX6 Has Very Older Design With Internal Audio Mux. In I.MX6 Quad Cortex A9 Some Use Case For Audio Routing Would Be Limited Due To The Mux. For Example A System May Have Different Audio Source Streams Come In And For Some Cases The Sources Will Need To Switch Out To Codec. Let's Presume 3 I2S Are All Configured. I2S (SAI) 1 For Codec 1 / I2S (SAI) 2 For Codec 2 / I2S (SAI) 1 For Codec 3. In Ultra Lite Both Of Three I2S (SAI) Support TX / RX (Bidirectional) Routing. And Different Codec Devices Has Different Sampling Capability. For Example Bluetooth Ask To Apply I2S With PCM Format At Sample Rate 8KHz And So On.

 

My Problems Are

IF I Set The Primary Codec To I2S (SAI) 1 And The Other 2 For Different Audio Sources. In My Case I2S3 Receiver May Need To Transfer Incoming Aduio Sources To I2S1 For Audio Sink To Amplifier Then Speakers. And I2S1 May Have Different Analog Audio-In Sources Required Route Back To System For Recording. And I2S2 May Receiver May Need To Transfer Incoming Audio Sources To I2S1 And I2S3. All The Sources Are At Different Sample Rate. Once Two Of Them Need To Transmit To Codec Which Would Result In Over Sampling / Sample Rate Errors Due To The Built-In Audio Mux Design Of I.MX6 Limits For Frequency Division. That's Why Some FAE Of NXP And Distributor Ask Developer To Set I2S Of I.MX6 Processor As Slave And Should Be Designed With External Clock Generator For WCLK Or Use ESAI Mode For Sampling Rate Transformation To Prevent Over Sampling Or Clock Shift.

But Unfortunately Here Are Less Audio Codec Support ESAI Mode But A Few Like CS42888. And What We Use Is TLV320AIC3106 With Only 4 Modes By Setting Register 1. Right Justified 2. Left Justified 3. DSP Mode 4. General I2S. In Application Note Of TI SLAA469A ASI Is Introduced To Provide Some Over Sampling Solutions. But I'm Not Sure That Configure Out The Problem As Applying ESAI Mode Does.

Please Consider Our Audio Configuration As Following Block Diagram. First The Primary Digital Audio Interface Is Assigned To Codec In Role Of Master. And Second We Use A2B AD2428W Transceiver Of Analog Device For Bridging External Audio Hardware.   

I.MX6 ULTRA LITE AUDIO ROUTING.png

In Use Case 1 For General Music Application Running Upon System Would Be Transmitted From I2S1 (SAI1) To Codec Then Throught TDA7729 Sink Into Amplifier Out For Loudspeakers.

In Use Case 2 Audio Source May Be From Bluetooth Connection Through A2DP Profile. UART Is The Main Path Of Data Transmission. Once Data Stream Is Transferred Into System Should Be Decoded Immediately And Transmitted To Codec Then Through TDA7729 Sink Into Amplifier Out For Loudspeakers.

In Use Case 3 For Automotive Hands-Free Case Incoming Call Voice Would Be Transmitted From Bluetooth Module With PCM Format To Codec Then Through TDA7729 Sink Into Amplifier Out For Loudspeakers. And Here Is A A2B Microphone For A Talk Voice Into System. The Voice Would Be Pass To I2S1 (SAI1) Either By ALSA API And Audmux Of I.MX6 Ultra Lite Application Processor.

They Are Different Audio Source From Different Inputs At Different Sample Rates.  From My Experiences Here Must Be Some Routing Issues Due To Audmux Of I.MX6 Ultra Lite. That's Why FAE Ask Us To Set I.MX6 Ultra Lite As Slave With External Clock Generator / Apply ESAI Mode. But ESAI Mode Ask Codec Has Same Mode To Fit In. And I Don't Know Else Codecs Besides Cirrus Logic And AKM Are Designed With That Function Mode.

Can Someone To Help For This? I Think It A Very Important Thing For All I.MX6 Family Even For I.MX8/8X. I.MX8/8X Has Built-in Tensilica DSP But So Far Here Are No Detailed Documents And Toolchain For Tensilica Release. So In Another Project Of Ours We Decide To Select No-DSP Version Of I.MX8X Considering Development Risks.

Thanks 

Labels (1)
0 Kudos
0 Replies