iMX8 SAI3 and SAI5 synchronous

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

iMX8 SAI3 and SAI5 synchronous

Jump to solution
1,941 Views
PhilipJ451
Contributor I

Hi, I am currently working with a Technexion board that carries an iMX8 CPU and we want to experiment with sending digital audio stream (I2S) into the CPU. Unfortunatly we have an error on our motherboard and the data line is tracked to SAI3_TXD when it should be SAI3_ RXD.

Reading the Reference Manual tells us we can redirect this Pad to send data to SAI5_RX_DATA_3 so my question is how to get suitable synchronous clocks out of Pads SAI3_TXC and SAI3_TXFS.

The Reference Manual says that in configuration register TCR2 ( or RCR2) we can set SYNC so that "SAI is synchronous with another SAI TX(or RX)" but how is this achieved ?

If we can make SAI3 and SAI5 run synchronously then the SAI3 clocks will drive our external device such that it's I2S data stream can be correctly read into SAI5.

Any suggestions on how to achieve this would be gratefully received

regards

PhilipJ

 

0 Kudos
1 Solution
1,872 Views
jimmychan
NXP TechSupport
NXP TechSupport

Unfortunately, the RM has some errors that have crept in in the latest revision.

  • The SYNC bit field of both TCR2 and RCR2 should be reserved for values of 10b and 11b.  
  • Remove section 13.10.3.3.2 entirely

Rev 2 of the 8M Mini RM was correct regarding the above. For some reason, the two items above were mistakenly inserted into the Rev 3 RM.

 

External connections are required for the 8M Mini to operate different SAI instances synchronously with each other. This would depend on the sources of the master clock, bit clock, and frame sync. If all are external, then both SAI instances need to be configured to receive all three. If one or the other SAI is generating them, then the other SAI needs to be configured to receive them. There is no way to route the signals internally, so external, board level connections need to be made.

View solution in original post

0 Kudos
8 Replies
1,926 Views
PhilipJ451
Contributor I

Hi jimmychan, thanks for replying.

I am using a 3rd party board which I think carries an i.MX 8M Mini (but I'm not certain). As for BSP, I'm not that far into it yet, I'm trying to advise my colleague whether this board we have designed is useable or needs a re-spin.

I'm really asking a general question to clarify what I have read in "i.MX 8M Mini Applications Processor Reference Manual" Document number IMX8MMRM Rev. 3 11/2020

In this document, in describing the SAI register SAI Transmit Configuration 2 Register (TCR2) on page 4288 (also similar for SAI register SAI Receive Configuration 2 Register (RCR2) on page 4305) it says about SYNC:

Synchronous Mode: Configures between asynchronous and synchronous modes of operation. When configured for a synchronous mode of operation, the receiver or other SAI peripheral must be configured for asynchronous operation.
00b - Asynchronous mode.
01b - Synchronous with receiver.
10b - Synchronous with another SAI transmitter.
11b - Synchronous with another SAI receiver.

The two modes 10b and 11b are of interest to me but I cannot find any further description of what this means or how it is achieved. That is, there must be a setting somewhere to specify which other SAI tx/rx I want to be Synchronous with but I can't find it anywhere in the document.

regards

PhilipJ

0 Kudos
1,898 Views
jimmychan
NXP TechSupport
NXP TechSupport

I got the reply from the AE

==============

The SYNC bit field applies to the transmit and receive pins of a particular SAI instance. All enabled transmit and all enabled receive pins would be synchronous to each other when enable. See Figure 13-99 on page 4268, which shows the SYNC connection between the receive and transmit sides within a particular SAI instance.

Multiple SAIs (SAI3 and SAI5, for instance) cannot be used synchronously without first externally wiring them to use the same source clocking and frame syncing.

==============

0 Kudos
1,893 Views
PhilipJ451
Contributor I

Hi,

First, thank you for the time you have taken on this, I do appreciate your help and I'm sorry if I'm being a bit dumb...

I understand the significance of Fig. 13-99 in that the RX and TX of any single SAI can be run synchronously and only require 1 set of clocks (RX or TX) to an external peripheral device.

I also understand the suggestion that if I externally wire from say SAI3 clocks (as outputs) to SAI5 clocks (as inputs) then the two SAI peripherals would be synchronous and again only one set of clocks would have to be wired to multiple peripherals.

What I don't understand is why there is a specific setting listed under "13.10.4.1.19 SAI Receive Configuration 2 Register (RCR2)" that says:

Configures between asynchronous and synchronous modes of operation. When configured for a
synchronous mode of operation, the transmitter or other SAI peripheral must be configured for
asynchronous operation.
00b - Asynchronous mode.
01b - Synchronous with transmitter.
10b - Synchronous with another SAI receiver.
11b - Synchronous with another SAI transmitter.

Surely modes 10b and 11b are irrelevant if I have to make clock interconnections externally to the chip.

If this is an error and the chip cannot do this, that is all I really want to know, I can explain to my colleagues that the board we have made cannot be saved and we must re-design...

Kind regards

Philip

 

0 Kudos
1,873 Views
jimmychan
NXP TechSupport
NXP TechSupport

Unfortunately, the RM has some errors that have crept in in the latest revision.

  • The SYNC bit field of both TCR2 and RCR2 should be reserved for values of 10b and 11b.  
  • Remove section 13.10.3.3.2 entirely

Rev 2 of the 8M Mini RM was correct regarding the above. For some reason, the two items above were mistakenly inserted into the Rev 3 RM.

 

External connections are required for the 8M Mini to operate different SAI instances synchronously with each other. This would depend on the sources of the master clock, bit clock, and frame sync. If all are external, then both SAI instances need to be configured to receive all three. If one or the other SAI is generating them, then the other SAI needs to be configured to receive them. There is no way to route the signals internally, so external, board level connections need to be made.

0 Kudos
1,867 Views
PhilipJ451
Contributor I

OK, thanks for your efforts, at least we now know.

best regards

Philip

0 Kudos
1,914 Views
jimmychan
NXP TechSupport
NXP TechSupport

I am checking with the internal AE. I will let you know when I get the feedback.

0 Kudos
1,907 Views
PhilipJ451
Contributor I

OK thanks

PhilipJ

 

0 Kudos
1,931 Views
jimmychan
NXP TechSupport
NXP TechSupport

Which i.MX8 processor are you using?

Which version of BSP are you using?

0 Kudos