在线时间2 小时
UID3794903
注册时间2023-3-1
NXP金币0
该用户从未签到
新手上路

- 积分
- 15
- 最后登录
- 2023-3-7
|
请大侠指点一下,谢谢。
参数都是设的32位,48KHz,2声道,MCLK相同用示波器测试,SAI1的bclk是3.07MHz, 而SAI3的bclk是10.4MHz
寄存器RCR2里面的DIV值都是相同的值为1。
void SAI1_init(void)
{
sai_transceiver_t saiConfig;
/*Clock setting for SAI1*/
CLOCK_SetMux(kCLOCK_Sai1Mux, DEMO_SAI1_CLOCK_SOURCE_SELECT);
CLOCK_SetDiv(kCLOCK_Sai1PreDiv, DEMO_SAI1_CLOCK_SOURCE_PRE_DIVIDER);
CLOCK_SetDiv(kCLOCK_Sai1Div, DEMO_SAI1_CLOCK_SOURCE_DIVIDER);
/*Enable MCLK clock*/
BOARD_EnableSaiMclkOutput(true);
/* SAI init */
SAI_Init(DEMO_SAI);
SAI_TransferTxCreateHandle(DEMO_SAI, &txHandle, tx_callback, NULL);
SAI_TransferRxCreateHandle(DEMO_SAI, &rxHandle, rx_callback, NULL);
/* I2S mode configurations */
SAI_GetClassicI2SConfig(&saiConfig, DEMO_AUDIO_BIT_WIDTH, kSAI_Stereo, 1U << DEMO_SAI_CHANNEL);
saiConfig.masterSlave = kSAI_Master;
//------tx-----
saiConfig.syncMode = kSAI_ModeAsync;
SAI_TransferTxSetConfig(DEMO_SAI, &txHandle, &saiConfig);
//------rx-----
saiConfig.syncMode = kSAI_ModeSync;
SAI_TransferRxSetConfig(DEMO_SAI, &rxHandle, &saiConfig);
/* set bit clock divider */
SAI_TxSetBitClockRate(DEMO_SAI, DEMO_AUDIO_MASTER_CLOCK, kSAI_SampleRate48KHz, kSAI_WordWidth32bits,
DEMO_AUDIO_DATA_CHANNEL);
SAI_RxSetBitClockRate(DEMO_SAI, DEMO_AUDIO_MASTER_CLOCK, kSAI_SampleRate48KHz, kSAI_WordWidth32bits,
DEMO_AUDIO_DATA_CHANNEL);
/* master clock configurations */
BOARD_MASTER_CLOCK_CONFIG();
}
//--------------------------------------------------------------------------------------------
void SAI3_init_master(void)
{
sai_transceiver_t saiConfig;
/*Clock setting for SAI3*/
CLOCK_SetMux(kCLOCK_Sai1Mux, DEMO_SAI3_CLOCK_SOURCE_SELECT);
CLOCK_SetDiv(kCLOCK_Sai1PreDiv, DEMO_SAI3_CLOCK_SOURCE_PRE_DIVIDER);
CLOCK_SetDiv(kCLOCK_Sai1Div, DEMO_SAI3_CLOCK_SOURCE_DIVIDER);
/*Enable MCLK clock*/
BOARD_EnableSaiMclkOutput(true);
/* SA3 init */
SAI_Init(SAI3);
SAI_TransferRxCreateHandle(SAI3, &rxHandle3, rx_callback3, NULL);
/* I2S mode configurations */
SAI_GetClassicI2SConfig(&saiConfig, DEMO_AUDIO_BIT_WIDTH, kSAI_Stereo, 1U << DEMO_SAI_CHANNEL);
saiConfig.masterSlave = kSAI_Master;
//------rx-----
saiConfig.syncMode = kSAI_ModeAsync;
SAI_TransferRxSetConfig(SAI3, &rxHandle3, &saiConfig);
/* set bit clock divider */
SAI_RxSetBitClockRate(SAI3, DEMO_AUDIO_MASTER_CLOCK, kSAI_SampleRate48KHz, kSAI_WordWidth32bits,
DEMO_AUDIO_DATA_CHANNEL);
}
|
|