TI中文支持网
TI专业的中文技术问题搜集分享网站

TAA3020: 通过I2S信号线返回的值是杂乱无章的,没法分辨出具体数值

Part Number:TAA3020

   使用STM32L476RGT6的硬件I2C和SAI1来分别配置TAA3020的寄存器值以及读回I2S数据,寄存器的配置如代码所示。在I2S数据线上有信号以后,再读取0X76寄存器的值为0xC0,0x77寄存器的值为0xE0。现在的问题在于使用HAL_SAI_Receive_DMA(&hsai_BlockA1, (uint8_t *)RXBUF, DATABUFSIZE * 2);函数开启I2S传输,发现I2S返回的数据是杂乱无章的。此时在通道1上接了一个1.0V的电压,我想设置成通道1和通道2都是单端输入且使用标准I2S协议。

I2CWrite(0x07,0x31);
HAL_Delay(2);
I2CWrite(0x3A,0x80);
HAL_Delay(2);
I2CWrite(0x13,0x00);
HAL_Delay(2);
I2CWrite(0x3C,0xBC);
HAL_Delay(2);
I2CWrite(0x41,0xBC);
HAL_Delay(2);
I2CWrite(0x73,0xC0);
HAL_Delay(2);
I2CWrite(0x74,0xC0);
HAL_Delay(2);
I2CWrite(0x75,0xE0);
HAL_Delay(5);

Jie Ba:

Fs是48KHz,BCLK是3.072MHz

,

Taylor:

您好,

已经收到了您的案例,调查需要些时间,感谢您的耐心等待。

,

Taylor:

​​数据杂乱的原因:时序不匹配​​,寄存器配置错误,

建议写入后要读取寄存器,确认配置是否成功写入。

另外,信号路径可能未激活,不知道外围电路如何,建议参考官方开发板,开发板还有专用GUI,可以指导配置。

TAA3020EVM-PDK 

,

Jie Ba:

我按照官方参考板的说明书上的那段I2C脚本代码的寄存器配置代码,写进去以后再读出来。读出来的数值确实是写入的数据,但奇怪的是,配置完相关寄存器后再去读0x76和0x77的寄存器值,0x76返回0x00,0x77返回0xC0。只有在使用HAL_SAI_Receive_DMA()之后,再去读0x76和0x77的值才会发生变化。寄存器刚配置完的0x76和0x77的值不正确是什么原因呢,外部电路上电时序不对还是有其他原因?

,

Jie Ba:

电路图用的是数据手册上的图8-1

赞(0)
未经允许不得转载:TI中文支持网 » TAA3020: 通过I2S信号线返回的值是杂乱无章的,没法分辨出具体数值
分享到: 更多 (0)