完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
ESP32 PICO D4
ESP-IDF 4.3-rc 我在 ESP32 中使用 i2s 向 codec 芯片推送数据的时候,用逻辑分析仪抓 esp32 输出的数据,再对比标准 i2s 协议,发现存在一些差异。 在 ESP32 中配置 i2s ,16 bit 双声道,对齐方式为标准 i2s,重复输出字节 1-9 。 Code: Select all i2s_config_t i2s_config = { .mode = (i2s_mode_t)(I2S_MODE_MASTER | I2S_MODE_TX | I2S_MODE_RX), .sample_rate = 8000, .bits_per_sample = I2S_BITS_PER_SAMPLE_16BIT, .channel_format = I2S_CHANNEL_FMT_RIGHT_LEFT, .communication_format = I2S_COMM_FORMAT_STAND_I2S, .intr_alloc_flags = ESP_INTR_FLAG_LEVEL2 | ESP_INTR_FLAG_IRAM, .dma_buf_count = 2, .dma_buf_len = 1024, .use_apll = true, .tx_desc_auto_clear = true, .fixed_mclk = 0};i2s_pin_config_t pin_config = { .bck_io_num = 4, .ws_io_num = 26, .data_out_num = 33, .data_in_num = -1 //Not used};i2s_driver_install(i2s, &i2s_config, 0, NULL);i2s_set_pin(i2s, &pin_config);uint8_t simples [1024] ;for(int i=0; i |
|
相关推荐
1个回答
|
|
I2S(Inter-IC Sound)是一种音频数据传输协议,广泛应用于音频设备之间的数据通信。在ESP32中,I2S可以用于与音频编解码器(Codec)芯片进行通信。根据您的描述,您在使用ESP32的I2S接口向codec芯片推送数据时,发现输出的数据与标准I2S协议存在差异。这可能是由以下几个原因导致的:
1. **I2S配置问题**:首先,请确保您的I2S配置是正确的。您提供的代码片段中,配置了I2S模式、采样率、位宽和通道格式。但是,通道格式的配置似乎不完整(I2S_CHANNEL_FMT_ 后面没有具体的格式)。正确的配置应该是: ```c .channel_format = I2S_CHANNEL_FMT_RIGHT_LEFT, // 或者 I2S_CHANNEL_FMT_ALL_LEFT 或 I2S_CHANNEL_FMT_ALL_RIGHT,根据您的需求选择 ``` 2. **数据对齐问题**:在I2S协议中,数据对齐方式有两种:左对齐(Left-Justified)和I2S标准(I2S Standard)。左对齐方式下,数据的最高位(MSB)与时钟信号的上升沿对齐,而I2S标准方式下,数据的最低位(LSB)与时钟信号的上升沿对齐。请确保您的I2S配置中选择了正确的对齐方式。 3. **时钟配置问题**:I2S通信需要正确的时钟配置,包括位时钟(BCLK)和帧时钟(WCLK)。请检查您的ESP32时钟配置是否正确,并确保与codec芯片的时钟要求相匹配。 4. **数据线连接问题**:请检查您的ESP32与codec芯片之间的数据线连接是否正确。I2S通信通常需要至少两根数据线:一根用于数据传输(DOUT/DIN),另一根用于时钟信号(BCLK)。确保这些线路连接正确,没有接触不良或短路问题。 5. **逻辑分析仪设置问题**:在使用逻辑分析仪抓取I2S数据时,请确保逻辑分析仪的设置正确,包括时钟信号、数据线的采样率和分辨率等。错误的设置可能导致捕获到的数据与实际数据不符。 6. **codec芯片配置问题**:请检查您的codec芯片是否已正确配置,包括采样率、位宽、通道格式等。如果codec芯片的配置与ESP32的I2S配置不匹配,可能导致数据传输出现问题。 7. **软件或固件问题**:如果您使用的是第三方库或固件来实现I2S通信,请确保它们是最新的,并且与您的ESP32硬件和codec芯片兼容。有时,软件或固件的bug可能导致数据传输异常。 综上所述,要解决ESP32输出的I2S数据移位问题,您需要从多个方面进行排查和调整。首先检查I2S配置,然后检查硬件连接和逻辑分析仪设置,最后考虑软件或固件的问题。希望这些建议能帮助您解决问题。 |
|
|
|
只有小组成员才能发言,加入小组>>
310 浏览 1 评论
551浏览 6评论
461浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
443浏览 5评论
445浏览 4评论
415浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-23 10:07 , Processed in 0.787030 second(s), Total 82, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号