IMX93 SAI3 FSYNC

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

IMX93 SAI3 FSYNC

986 次查看
KMES
Contributor I

I'm using i.MX93 SAI3 audio interface to control "ADS8354" ADC with the following settings:

  • External clock 20 MHz 
clock_root_config_t saiClkCfg = {
.clockOff = true,
.mux = kCLOCK_SAI3_ClockRoot_MuxExt,
.div = 1,
};​
  • SAI3 configuration 
sai_transceiver_t saiConfig;
SAI_GetClassicI2SConfig(saiConfig,kSAI_WordWidth16bits,kSAI_Stereo,0x01);
saiConfig.bitClock.bclkPolarity = kSAI_SampleOnFallingEdge;
saiConfig.serialData.dataWord0Length = 18;
saiConfig.frameSync.frameSyncWidth = 2;
saiConfig.serialData.dataWordNum      = 3;
saiConfig.frameSync.frameSyncEarly    = false;
saiConfig.frameSync.frameSyncPolarity = kSAI_PolarityActiveHigh;
SAI_TxSetConfig(SAI3, &g_saiConfig);
g_saiConfig.masterSlave = kSAI_Master;
g_saiConfig.syncMode = kSAI_ModeSync;
SAI_RxSetConfig(SAI3, &g_saiConfig);

SAI_TxSetBitClockRate(SAI3, 20000000, 400000, 50, 1);
SAI_RxSetBitClockRate(SAI3, 20000000, 400000, 50, 1);

 

target FSYNC/ADC_CS frequency: 400 KHz = 20Mhz / (18 bits + 2x16bits) = 20000000/50 

Measured FSYNC/ADC_CS frequency: 200 KHz 

Question: How can I generate an FSYNC/ADC_CS signal at 400 kHz with a frame length of 50 bits and 20 MHz external clock ?

NB: Worked properly using a 40 MHz external clock 

M33 SDK version: SDK_2_14_0_MCIMX93-EVK

标记 (2)
0 项奖励
回复
3 回复数

884 次查看
KMES
Contributor I

Yes with TDM mode.

PS: SYWD[8:12] of RCR4/TRC4 equal 0 (1 bit-clock cycle)

saiConfig.frameSync.frameSyncWidth = 1;
0 项奖励
回复

816 次查看
joanxie
NXP TechSupport
NXP TechSupport

sorry for my delay, I took my AL this week, since you use TDM mode, but the SAI_GetClassicI2SConfig is for I2S mode, and you only set one channel according to the function as below, pls check these settings again

SAI_TxSetBitClockRate(SAI3, 20000000, 400000, 50, 1);
0 项奖励
回复

947 次查看
joanxie
NXP TechSupport
NXP TechSupport

what mode do you use? TDM mode?

0 项奖励
回复
%3CLINGO-SUB%20id%3D%22lingo-sub-2164317%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3Eimx93%20sai3%20fsync%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2164317%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E6%88%91%E4%BD%BF%E7%94%A8%20i.MX93%20SAI3%20%E9%9F%B3%E9%A2%91%E6%8E%A5%E5%8F%A3%E6%8E%A7%E5%88%B6%22ADS8354%22%20ADC%EF%BC%8C%E8%AE%BE%E7%BD%AE%E5%A6%82%E4%B8%8B%EF%BC%9A%3C%2FP%3E%3CUL%3E%3CLI%3E%E5%A4%96%E9%83%A8%E6%97%B6%E9%92%9F%2020%20MHz%20%3C%2FLI%3E%3C%2FUL%3E%3CPRE%20class%3D%22lia-code-sample%20language-c%22%3E%3CCODE%20translate%3D%22no%22%3Eclock_root_config_t%20saiClkCfg%20%3D%20%7B%0A.clockOff%20%3D%20true%2C%0A.mux%20%3D%20kCLOCK_SAI3_ClockRoot_MuxExt%2C%0A.div%20%3D%201%2C%0A%7D%3B%E2%80%8B%3C%2FCODE%3E%3C%2FPRE%3E%3CUL%3E%3CLI%3ESAI3%20%E9%85%8D%E7%BD%AE%20%3C%2FLI%3E%3C%2FUL%3E%3CPRE%20class%3D%22lia-code-sample%20language-markup%22%3E%3CCODE%20translate%3D%22no%22%3Esai_transceiver_t%20saiConfig%3B%0ASAI_GetClassicI2SConfig(saiConfig%2CkSAI_WordWidth16bits%2CkSAI_Stereo%2C0x01)%3B%0AsaiConfig.bitClock.bclkPolarity%20%3D%20kSAI_SampleOnFallingEdge%3B%0AsaiConfig.serialData.dataWord0Length%20%3D%2018%3B%0AsaiConfig.frameSync.frameSyncWidth%20%3D%202%3B%0AsaiConfig.serialData.dataWordNum%20%20%20%20%20%20%3D%203%3B%0AsaiConfig.frameSync.frameSyncEarly%20%20%20%20%3D%20false%3B%0AsaiConfig.frameSync.frameSyncPolarity%20%3D%20kSAI_PolarityActiveHigh%3B%0ASAI_TxSetConfig(SAI3%2C%20%26amp%3Bg_saiConfig)%3B%0Ag_saiConfig.masterSlave%20%3D%20kSAI_Master%3B%0Ag_saiConfig.syncMode%20%3D%20kSAI_ModeSync%3B%0ASAI_RxSetConfig(SAI3%2C%20%26amp%3Bg_saiConfig)%3B%0A%0ASAI_TxSetBitClockRate(SAI3%2C%2020000000%2C%20400000%2C%2050%2C%201)%3B%0ASAI_RxSetBitClockRate(SAI3%2C%2020000000%2C%20400000%2C%2050%2C%201)%3B%3C%2FCODE%3E%3C%2FPRE%3E%3CBR%20%2F%3E%3CP%3E%E7%9B%AE%E6%A0%87%20FSYNC%2FADC_CS%20%E9%A2%91%E7%8E%87%EF%BC%9A%3CFONT%20color%3D%22%2399CC00%22%3E400%20KHz%3C%2FFONT%3E%3D%2020Mhz%20%2F%20(18%20%E4%BD%8D%20%2B%202x16%20%E4%BD%8D)%20%3D%2020000000%2F50%20%3C%2FP%3E%3CP%3E%E6%B5%8B%E9%87%8F%20FSYNC%2FADC_CS%20%E9%A2%91%E7%8E%87%EF%BC%9A%3CFONT%20color%3D%22%23FF0000%22%3E200%20KHz%3C%2FFONT%3E%3C%2FP%3E%3CP%3E%E9%97%AE%E9%A2%98%E5%A6%82%E4%BD%95%E5%9C%A8%E5%B8%A7%E9%95%BF%E5%BA%A6%E4%B8%BA%2050%20%E4%BD%8D%E3%80%81%E5%A4%96%E9%83%A8%E6%97%B6%E9%92%9F%E9%A2%91%E7%8E%87%E4%B8%BA%2020%20%E5%85%86%E8%B5%AB%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E7%94%9F%E6%88%90%E9%A2%91%E7%8E%87%E4%B8%BA%20400%20%E5%8D%83%E8%B5%AB%E7%9A%84%20FSYNC%2FADC_CS%20%E4%BF%A1%E5%8F%B7%EF%BC%9F%3C%2FP%3E%3CP%3E%3CSTRONG%3E%E6%B3%A8%EF%BC%9A%3C%2FSTRONG%3E%E4%BD%BF%E7%94%A8%2040%20MHz%20%E5%A4%96%E9%83%A8%E6%97%B6%E9%92%9F%E6%97%B6%E5%B7%A5%E4%BD%9C%E6%AD%A3%E5%B8%B8%20%3C%2FP%3E%3CP%3E%3CSTRONG%3EM33%20SDK%20%E7%89%88%E6%9C%AC%3C%2FSTRONG%3E%EF%BC%9ASDK_2_14_0_MCIMX93-EVK%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2172609%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20IMX93%20SAI3%20FSYNC%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2172609%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E7%94%B1%E4%BA%8E%E6%82%A8%E4%BD%BF%E7%94%A8%E7%9A%84%E6%98%AF%20TDM%20%E6%A8%A1%E5%BC%8F%EF%BC%8C%E4%BD%86%3CSPAN%3ESAI_GetClassicI2SConfig%20%E6%98%AF%E9%92%88%E5%AF%B9%20I2S%20%E6%A8%A1%E5%BC%8F%E7%9A%84%EF%BC%8C%E8%80%8C%E4%B8%94%E6%82%A8%E5%8F%AA%E6%A0%B9%E6%8D%AE%E4%B8%8B%E9%9D%A2%E7%9A%84%E5%8A%9F%E8%83%BD%E8%AE%BE%E7%BD%AE%E4%BA%86%E4%B8%80%E4%B8%AA%E9%80%9A%E9%81%93%EF%BC%8C%E8%AF%B7%E5%86%8D%E6%AC%A1%E6%A3%80%E6%9F%A5%E8%BF%99%E4%BA%9B%E8%AE%BE%E7%BD%AE%E3%80%82%3C%2FSPAN%3E%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20%20language-markup%22%3E%3CCODE%20translate%3D%22no%22%3ESAI_TxSetBitClockRate(SAI3%2C%2020000000%2C%20400000%2C%2050%2C%201)%3B%3C%2FCODE%3E%3C%2FPRE%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2169750%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20IMX93%20SAI3%20FSYNC%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2169750%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E6%98%AF%EF%BC%8C%E9%87%87%E7%94%A8%20TDM%20%E6%A8%A1%E5%BC%8F%E3%80%82%3C%2FP%3E%3CP%3EPS%EF%BC%9ARCR4%2FTRC4%20%E7%9A%84%20SYWD%5B8%3A12%5D%20%E7%AD%89%E4%BA%8E%200%EF%BC%881%20%E4%BD%8D%E6%97%B6%E9%92%9F%E5%91%A8%E6%9C%9F%EF%BC%89%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-markup%22%3E%3CCODE%20translate%3D%22no%22%3EsaiConfig.frameSync.frameSyncWidth%20%3D%201%3B%3C%2FCODE%3E%3C%2FPRE%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2164974%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20IMX93%20SAI3%20FSYNC%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2164974%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E6%82%A8%E4%BD%BF%E7%94%A8%E4%BB%80%E4%B9%88%E6%A8%A1%E5%BC%8F%EF%BC%9FTDM%20%E6%A8%A1%E5%BC%8F%EF%BC%9F%3C%2FP%3E%3C%2FLINGO-BODY%3E