ESP32C3 读取 Raw PDM 数据问题
Posted: Thu Mar 19, 2026 9:40 am
使用的是 esp-idf v5.5.3
.clk_cfg = I2S_PDM_RX_CLK_DEFAULT_CONFIG(1024000),
.slot_cfg = I2S_PDM_RX_SLOT_RAW_FMT_DEFAULT_CONFIG(I2S_DATA_BIT_WIDTH_16BIT, I2S_SLOT_MODE_MONO),
基于这样的配置,我想通过 i2s_channel_read 连续采样 20ms 的 PDM 数据。
是不是需要的 buffer 大小为:
1024000 * 20 / 1000 = 20480 bits = 2560 bytes
但是我通过 esp_timer_get_time() 计算 i2s_channel_read() 读取 2560 的耗时,却只有 10ms
是什么导致了这样的差异?PDM 数据量计算难道不是这样算的么
.clk_cfg = I2S_PDM_RX_CLK_DEFAULT_CONFIG(1024000),
.slot_cfg = I2S_PDM_RX_SLOT_RAW_FMT_DEFAULT_CONFIG(I2S_DATA_BIT_WIDTH_16BIT, I2S_SLOT_MODE_MONO),
基于这样的配置,我想通过 i2s_channel_read 连续采样 20ms 的 PDM 数据。
是不是需要的 buffer 大小为:
1024000 * 20 / 1000 = 20480 bits = 2560 bytes
但是我通过 esp_timer_get_time() 计算 i2s_channel_read() 读取 2560 的耗时,却只有 10ms
是什么导致了这样的差异?PDM 数据量计算难道不是这样算的么