工具/软件:
大家好!
我尝试使用 STM32L476RGT6 作为 MCU、并根据 TAA3020 数据表中的电路图(图 8-1)设计了自己的 PCB。 所有芯片引脚都路由至接头引脚。 MCU 的 SAI1 在中配置 主器件接收模式 、并向 TAA3020 的通道 1 施加 1.0V 直流电压、而通道 2 保持悬空。 MCU 配置代码如下所示:
- 预期配置 :
- TAA3020 的通道 1 和通道 2 都设置为:
- 单端输入、标准 I2S 协议。
- 帧同步 (FS) 频率= 44.1kHz、BCLK = 64 × FS。
- 线路输入、模拟单端输入、直流耦合输入。
- 当 FS 为低电平时、通道 1 的数据显示、当 FS 为高电平时、通道 2 的数据显示。
- TAA3020 的通道 1 和通道 2 都设置为:
调试期间:
- 配置后、读取寄存器 0x76 会立即返回 0x00。
- 读取 0x76 后、读取寄存器 0x77 返回 0xC0。
- 配置后、使用
HAL_SAI_Receive_DMA()通过逻辑分析仪捕获 I2S 数据会显示 仅在通道 1 上提供数据 、而通道 2 保持为 0x00。 此外、通道 1 数据不稳定并连续波动、这与预期的直流输入信号相矛盾。 - 无论直流信号施加到哪个通道、逻辑分析仪仅在 FS 为低电平时((FS 为高电平时无信号)显示 I2S 数据。
问题 :
此问题是否是由 MCU 上的寄存器配置不正确、硬件电路设计缺陷或 SAI1 模式设置不正确引起的? 专家能否提供故障排除指导? 谢谢!
I2CWrite(0x73,0xC0); HAL_Delay(2); I2CWrite(0x74,0xC0); HAL_Delay(2); I2CWrite(0x75,0xE0); HAL_Delay(2); I2CWrite(0x07,0x70); HAL_Delay(2); I2CWrite(0x13,0x00); HAL_Delay(2); I2CWrite(0x21,0x00); HAL_Delay(2); I2CWrite(0x3A,0x80); HAL_Delay(2); I2CWrite(0x3C,0x30); HAL_Delay(2); I2CWrite(0x41,0xB0); HAL_Delay(2);




