K210如何配置I2S读取MIC阵列数据?

Viewed 40

重现步骤
K210的I2S,有3个设备,4个通道,如何配置同时可以读取麦克风阵列中多个麦克风的数据?

期待结果和实际结果

i2s_rx_channel_config ( I2S_DEVICE_0 , I2S_CHANNEL_0 , RESOLUTION_16_BIT , SCLK_CYCLES_32 , TRIGGER_LEVEL_4 , STANDARD_MODE );
i2s_rx_channel_config ( I2S_DEVICE_0 , I2S_CHANNEL_1 , RESOLUTION_16_BIT , SCLK_CYCLES_32 , TRIGGER_LEVEL_4 , STANDARD_MODE );
i2s_rx_channel_config ( I2S_DEVICE_0 , I2S_CHANNEL_2 , RESOLUTION_16_BIT , SCLK_CYCLES_32 , TRIGGER_LEVEL_4 , STANDARD_MODE );
i2s_rx_channel_config ( I2S_DEVICE_0 , I2S_CHANNEL_3 , RESOLUTION_16_BIT , SCLK_CYCLES_32 , TRIGGER_LEVEL_4 , STANDARD_MODE );

软硬件版本信息

K210. sipeed.

错误日志

尝试解决过程

i2s_recv_data_dma ( I2S_DEVICE_0 , rx_buf , 8, DMAC_CHANNEL0 )
i2s_recv_data_dma ( I2S_DEVICE_0 , rx_buf , 8, DMAC_CHANNEL1 )
i2s_recv_data_dma ( I2S_DEVICE_0 , rx_buf , 8, DMAC_CHANNEL2 )
i2s_recv_data_dma ( I2S_DEVICE_0 , rx_buf , 8, DMAC_CHANNEL3 )

补充材料

3 Answers

你好,请使用Sipeed的MIC Array代码进行开发。

谢谢你的回答。MIC array 不能提供各个MIC的原始数据,MIC 阵列有7个MIC,所有的MIC的WS,CLK是共用的,只有数据线不同,使用多路I2S同时读取各个MIC的数据,需要配置4个数据线,WS,CLK,
fpioa_set_function(args[ARG_i2s_d0].u_int, FUNC_I2S0_IN_D0);
fpioa_set_function(args[ARG_i2s_d1].u_int, FUNC_I2S0_IN_D1);
fpioa_set_function(args[ARG_i2s_d2].u_int, FUNC_I2S0_IN_D2);
fpioa_set_function(args[ARG_i2s_d3].u_int, FUNC_I2S0_IN_D3);
fpioa_set_function(args[ARG_i2s_ws].u_int, FUNC_I2S0_WS);
fpioa_set_function(args[ARG_i2s_sclk].u_int, FUNC_I2S0_SCLK);
//TODO: optimize Soft SPI
fpioa_set_function(args[ARG_sk9822_dat].u_int, FUNC_GPIOHS0 + SK9822_DAT_GPIONUM);
fpioa_set_function(args[ARG_sk9822_clk].u_int, FUNC_GPIOHS0 + SK9822_CLK_GPIONUM);

MaxiPy中没有这些接口,需要通过CSDK API自己开发,具体的I2S的配置,需要C相关驱动接口细粒度地进行I2S接口配置和相关DMA配置等才能读取这些数据,请问下这个要怎么配置?

K210的参考手册,哪儿可以下载?