您好!
我目前正在尝试将上述 ADC 配置为采样和传入差分音频信号、并通过 I2S 传输数据。 我的音频源连接到输入引脚 IN1L (P)和 IN1R (M)。 所需的采样频率为16kHz。 使用 I2S 总线的 BCLK 生成的音频主时钟(AM)。 根据 I2S 总线的限制、我将 BCLK 频率设置为:
BCLK = 16 (位宽)* 2 (通道)* 16kHz (采样频率 WSCLK)= 512kHz。
由于我将使用处理块1、在 AOSR = 128的情况下、我将 mAdc 设置为2、这样 mAdc * AOSR > IADC。 NADC 被设定为1。 因此、需要一个频率为4096 kHz 的 ADC_CLKIN。 该时钟是使用 PLL 创建的。 为此、我将 BCLK 设置为 PLL 的输入时钟、并按如下方式配置 K、R、P:
K = J.D = 1.0、R = 8、P = 1。
这意味着 Fs =(PLLCLK_IN * K * R)/(NADC * mAdc* AOSR * P)=(512kHz * 1.0 * 8)/(1 * 2 * 128 * 1)= 16kHz。 我将数据表中给出的示例配置用作基准。 我的配置集为(第一个参数是 i2c reg、第二个参数是十六进制的配置值):
00 00 //选择 PAGE 0
01 01 //软件复位
04 07 //设置 clk mux
05 18 // P = 1、R = 8
06 01 // J = 1
07 00 // D (MSB)= 0
08 00 // D (LSB)= 0
05 98 //为 PLL 加电、P = 1、R = 8
12 81 //为 NADC 加电,NADC = 1
13 82 //加电 mAdc、mAdc = 2
14 80 // AOSR = 128
1b 00 //在从模式中使用字长为16位的 I2S
3D 01 //使用处理块1
00 01 //选择第1页
3B 00 //取消左侧模拟 PG 的静音、增益= 0dB
3c 00 //取消右模拟 PG 的静音,增益= 0dB
36 0F //左侧 ADC 输入=差分对 IN1L (P)为正,IN1R (M)为负,设置为0dB
39 0F //右侧 ADC 输入=差分对 IN1L (P)作为正极,IN1R (M)作为负极,设置为0dB
00 00 //选择 PAGE 0
51 C2 //为左侧和右侧 ADC 加电
52 00 //取消数字音量控制静音,增益= 0dB
配置通过 I2C 成功发送。 当启动 I2S 传输时、即我的主器件发出 BCLK 和 WCLK 信号、我假设 ADC 开始传输 SDATA 通道上每个通道的采样数据。 为了测试此设置、我使用连接到 IN1L (P)和 IN1R (M)引脚的函数发生器、该发生器生成具有合适振幅的20kHz 正弦信号。 然而、当启动一个传输时、接收到的数据是一个常量值。 因此、我想问、我的给定配置集是否足以满足我的预期用例。
供参考:我还尝试将 IN1L (P)和 IN1R (M)配置为单端通道、但这也不起作用。
提前感谢。