TI论坛
直播中

刘静

7年用户 1278经验值
私信 关注
[问答]

mic口不接任何麦克风,但是aic23data的值一直在改变,请问是为什么?


  •   i2c_status = I2C_write( analog_aduio_path_control_MIC,//pointer to data array
    2, //length of data to be transmitted
    1, //master or slaver
    CODEC_ADDR, //slave address to transmit to
    1, //transfer mode of operation
    30000 //time out for bus busy
    );
    for(i=0;i0;j--);
    while(!MCBSP_rrdy(hMcbsp)){};
    xx=aic23data;
    以上程序在调试的时候,mic口不接任何麦克风,但是aic23data的值一直在改变,请问是为什么?理论上来说是不变的。

回帖(2)

龙慧

2024-10-14 14:03:32
先看看, 这不接 mic 后硬件是什么情况,  要避免完全悬空, 这一点要特别注意一下
举报

郝埃连

2024-10-14 18:20:16
在您提供的代码片段中,您正在尝试通过I2C接口与一个音频编解码器进行通信。您提到在调试过程中,即使麦克风接口没有连接任何麦克风,`aic23data`的值仍然在变化。这可能由几个原因导致:

1. **噪声干扰**:即使没有连接麦克风,环境中的电磁噪声也可能被编解码器的模拟输入捕捉到,导致数据值变化。

2. **编解码器内部噪声**:编解码器的模拟电路可能会产生内部噪声,这些噪声在没有外部信号输入时也会被转换成数字信号。

3. **电源或地线问题**:不稳定的电源或地线连接可能导致模拟输入端出现波动,从而影响数据值。

4. **代码逻辑问题**:您的代码中可能存在逻辑错误,导致即使没有外部输入,`aic23data`的值也会被错误地更新。

5. **硬件问题**:编解码器或其他相关硬件可能存在故障,导致即使没有外部输入,数据值也会变化。

为了解决这个问题,您可以尝试以下步骤:

- **检查硬件连接**:确保所有连接都是正确的,特别是地线和电源线。

- **使用示波器**:使用示波器检查麦克风接口的模拟信号,看是否有意外的噪声或波动。

- **增加滤波**:在编解码器的模拟输入端增加滤波电路,以减少噪声的影响。

- **检查代码逻辑**:仔细检查您的代码,确保没有逻辑错误导致`aic23data`的值被错误地更新。

- **使用已知的测试信号**:连接一个已知的测试信号到麦克风接口,检查`aic23data`的值是否如预期那样变化。

- **更换硬件**:如果可能,尝试更换编解码器或其他相关硬件,以排除硬件故障的可能性。

通过这些步骤,您应该能够诊断并解决`aic23data`值异常变化的问题。
举报

更多回帖

×
20
完善资料,
赚取积分