完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
RT1021 SAI 的TDM 模式fs 时钟不正确。附件是配置代码和示波器截图。
/* 选择音频/视频 PLL (786.48 MHz) 作为 sai1 时钟源 */ #define DEMO_SAI1_CLOCK_SOURCE_SELECT (2U) /* sai1 时钟源的时钟预分频器 */ #define DEMO_SAI1_CLOCK_SOURCE_PRE_DIVIDER (1U) /* sai1 时钟源的时钟分频器 */ #define DEMO_SAI1_CLOCK_SOURCE_DIVIDER (15U) /* 获取 sai1 时钟的频率 */ #define DEMO_SAI_CLK_FREQ (CLOCK_GetFreq(kCLOCK_AudioPllClk) / (DEMO_SAI1_CLOCK_SOURCE_DIVIDER + 1U) / (DEMO_SAI1_CLOCK_SOURCE_PRE_UDIDER) /* 演示音频采样率 */ #define DEMO_AUDIO_SAMPLE_RATE (kSAI_SampleRate16KHz) /* 演示音频数据通道 */ #define DEMO_AUDIO_DATA_CHANNEL (2U) /* 演示音频位宽 */ #define DEMO_AUDIO_BIT_WIDTH (kSAI_WordWidth16bits) int SaiTask(void) { edma_config_t dmaConfig = {0}; 字符输入='1'; uint8_t 用户项 = 1U; CLOCK_InitAudioPll(&audioPllConfig); /* I2C */ /*LPI2C 的时钟设置*/ CLOCK_SetMux(kCLOCK_Lpi2cMux, LPI2C_CLOCK_SOURCE_SELECT); CLOCK_SetDiv(kCLOCK_Lpi2cDiv, LPI2C_CLOCK_SOURCE_DIVIDER); /*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); /*启用 MCLK 时钟*/ BOARD_EnableSaiMclkOutput(true); /* 初始化 DMAMUX */ DMAMUX_Init(DEMO_DMAMUX); DMAMUX_SetSource(DEMO_DMAMUX,DEMO_TX_EDMA_CHANNEL,(uint8_t)DEMO_SAI_TX_SOURCE); DMAMUX_EnableChannel(DEMO_DMAMUX, DEMO_TX_EDMA_CHANNEL); DMAMUX_SetSource(DEMO_DMAMUX,DEMO_RX_EDMA_CHANNEL,(uint8_t)DEMO_SAI_RX_SOURCE); DMAMUX_EnableChannel(DEMO_DMAMUX, DEMO_RX_EDMA_CHANNEL); PRINTF("SAI 演示开始!nr"); /* 创建 EDMA 句柄 */ /* * dmaConfig.enableRoundRobinArbitration = false; * dmaConfig.enableHaltOnError = true; * dmaConfig.enableContinuousLinkMode = false; * dmaConfig.enableDebugMode = false; */ EDMA_GetDefaultConfig(&dmaConfig); EDMA_Init(DEMO_DMA, &dmaConfig); EDMA_CreateHandle(&dmaTxHandle, DEMO_DMA, DEMO_TX_EDMA_CHANNEL); EDMA_CreateHandle(&dmaRxHandle, DEMO_DMA, DEMO_RX_EDMA_CHANNEL); #if 定义(FSL_FEATURE_EDMA_HAS_CHANNEL_MUX)&& FSL_FEATURE_EDMA_HAS_CHANNEL_MUX EDMA_SetChannelMux(DEMO_DMA,DEMO_TX_EDMA_CHANNEL,DEMO_SAI_TX_EDMA_CHANNEL); EDMA_SetChannelMux(DEMO_DMA, DEMO_RX_EDMA_CHANNEL, DEMO_SAI_RX_EDMA_CHANNEL); #万一 /* SAI 初始化 */ SAI_Init(DEMO_SAI); SAI_TransferTxCreateHandleEDMA(DEMO_SAI, &txHandle, txCallback, NULL, &dmaTxHandle); SAI_TransferRxCreateHandleEDMA(DEMO_SAI, &rxHandle, rxCallback, NULL, &dmaRxHandle); /* I2S 模式配置 */ //SAI_GetClassicI2SConfig(&saiConfig, DEMO_AUDIO_BIT_WIDTH, kSAI_Stereo, 1U << DEMO_SAI_CHANNEL); SAI_GetTDMConfig(&saiConfig, kSAI_FrameSyncLenOneBitClk, DEMO_AUDIO_BIT_WIDTH, DEMO_AUDIO_DATA_CHANNEL, 1U << DEMO_SAI_CHANNEL); saiConfig.frameSync.frameSyncEarly = true; //saiConfig.syncMode = DEMO_SAI_TX_SYNC_MODE; //saiConfig.masterSlave = DEMO_SAI_MASTER_SLAVE; SAI_TransferTxSetConfigEDMA(DEMO_SAI, &txHandle, &saiConfig); //saiConfig.syncMode = DEMO_SAI_RX_SYNC_MODE; SAI_TransferRxSetConfigEDMA(DEMO_SAI, &rxHandle, &saiConfig); /* 设置位时钟分频器 */ SAI_TxSetBitClockRate(DEMO_SAI, DEMO_AUDIO_MASTER_CLOCK, DEMO_AUDIO_SAMPLE_RATE, DEMO_AUDIO_BIT_WIDTH, DEMO_AUDIO_DATA_CHANNEL); SAI_RxSetBitClockRate(DEMO_SAI, DEMO_AUDIO_MASTER_CLOCK, DEMO_AUDIO_SAMPLE_RATE, DEMO_AUDIO_BIT_WIDTH, DEMO_AUDIO_DATA_CHANNEL); /* 主时钟配置 */ BOARD_MASTER_CLOCK_CONFIG(); //tlv320 tlv6410_i2c_init(); tlv6410_config(); tlv6410_Status(); #if 0 /* 使用默认设置初始化编解码器 */ if (CODEC_Init(&codecHandle, &boardCodecConfig) != kStatus_Success) { assert(false); } if (CODEC_SetVolume(&codecHandle, kCODEC_PlayChannelHeadphoneLeft | kCODEC_PlayChannelHeadphoneRight, DEMO_CODEC_VOLUME) != kStatus_Success) { assert(false); } #endif /* 启用中断以处理 FIFO 错误 */ SAI_TxEnableInterrupts(DEMO_SAI, kSAI_FIFOErrorInterruptEnable); SAI_RxEnableInterrupts(DEMO_SAI, kSAI_FIFOErrorInterruptEnable); 启用IRQ(DEMO_SAI_TX_IRQ); 启用IRQ(DEMO_SAI_RX_IRQ); } |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
1907个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
36358 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
4395 浏览 0 评论
6050 浏览 1 评论
6763 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
4212 浏览 0 评论
619浏览 2评论
求助,S32G上Core M启动后如何让Core A在Flash指定位置加载uboot?
614浏览 2评论
ESP32-WROVER-IE + LAN8720以太网,GPIO0电压只有1.6v,无法正常进入spi flash boot模式如何解决?
606浏览 2评论
求分享适用于PN7160 Android的NFC工厂测试应用程序
694浏览 2评论
798浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 16:42 , Processed in 1.111772 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号