TI论坛
直播中

王强

8年用户 1419经验值
私信 关注
[问答]

使用arm+tlv320aic23做双通道AD采集时一直出现少数数据错误,怎么解决?


  • 使用arm+tlv320aic23做双通道AD采集时一直出现少数数据错误
    部分寄存器配置如下:
    AIC 端
    寄存器地址   值
    0X0C,        0X00
    0X0E,        0X43
    0X08,        0X3A
    0X0A,        0X06
    0X10 ,        0XC0
    0X01,        0X17
    0X03,        0X17
    0X12,        0X01
    ARM 端:
    (AT91_SSC_RCMR : (1 << 16) | AT91_SSC_CKS_PIN | AT91_SSC_CKO_NONE | AT91_SSC_CKI | AT91_SSC_START_FALLING_RF);
    (AT91_SSC_RFMR : (31<<0) | AT91_SSC_MSBF | AT91_SSC_FSOS_NONE | (0<<8));
    用示波器观察波形正常,将采集记录到文件的数据用matlab画图则会出现部分数据不正常情况

回帖(4)

马丹丹

2024-11-1 09:57:24
 这种情况, 软件缺陷的可能性大
举报

甘孟杰

2024-11-1 09:57:30
示波器观察波形正常是指哪里的波形正常?
1.请检查你的matlab绘图程序是否确定无误。
2.你可以把codec的Din和Dout短接,从AD出来的数据在做一个DA,然后观察输出端的波形是否正确。如果codec配置没有问题,是不会出现转换错误的。
举报

李如昊

2024-11-1 09:57:39
   请问具体是哪个代码有问题呢?matlab还是app程序还是drv程序?
举报

一瞅一个准

2024-11-1 18:14:30
在使用ARM+TLV320AIC23进行双通道AD采集时,出现少数数据错误可能是由多种原因导致的。以下是一些建议和解决方案,帮助您排查和解决这个问题:

1. 检查硬件连接:
确保ARM和TLV320AIC23之间的连接正确无误,包括数据线、电源线和地线。检查是否有短路、断路或者接触不良的情况。

2. 检查电源供应:
确保TLV320AIC23的电源供应稳定,电压和电流符合规格要求。不稳定的电源可能会导致数据错误。

3. 检查时钟信号:
确保ARM和TLV320AIC23之间的时钟信号同步。时钟信号不同步可能会导致数据采集错误。

4. 检查寄存器配置:
根据您的寄存器配置,以下是一些可能需要调整的地方:

   a. 0x0C寄存器:这是控制寄存器1,需要确保配置正确。根据您的配置,0x0000表示正常工作模式,可以保持不变。

   b. 0x0E寄存器:这是控制寄存器2,需要确保配置正确。根据您的配置,0x4300表示双通道模式,可以保持不变。

   c. 0x08寄存器:这是采样率控制寄存器,需要确保配置正确。根据您的配置,0x003A表示采样率设置,需要根据您的具体需求进行调整。

   d. 0x0A寄存器:这是数字音频接口格式寄存器,需要确保配置正确。根据您的配置,0x0060表示I2S模式,可以保持不变。

   e. 0x10寄存器:这是主时钟分频寄存器,需要确保配置正确。根据您的配置,0xC00表示主时钟分频设置,需要根据您的具体需求进行调整。

   f. 0x01寄存器:这是电源管理寄存器,需要确保配置正确。根据您的配置,0x0170表示正常工作模式,可以保持不变。

   g. 0x03寄存器:这是数字音频接口控制寄存器,需要确保配置正确。根据您的配置,0x0170表示正常工作模式,可以保持不变。

   h. 0x12寄存器:这是I2S控制寄存器,需要确保配置正确。根据您的配置,0x01表示正常工作模式,可以保持不变。

5. 检查代码逻辑:
检查您的代码逻辑,确保数据采集、处理和存储的逻辑正确无误。特别是双通道数据的处理,确保两个通道的数据能够正确同步和处理。

6. 增加错误处理机制:
在您的代码中增加错误处理机制,当检测到数据错误时,可以自动重新采集或者跳过错误的数据,以提高系统的稳定性和可靠性。

7. 调试和测试:
使用调试工具(如JTAG)对ARM和TLV320AIC23进行调试,观察寄存器的值和数据流,以便找到问题的根源。同时,进行多次测试,以确保问题得到解决。

通过以上步骤,您应该能够找到导致数据错误的原因,并采取相应的措施解决问题。希望这些建议对您有所帮助。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分