使用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画图则会出现部分数据不正常情况
user151383853:
这种情况, 软件缺陷的可能性大
Flora Wang:
你好,
示波器观察波形正常是指哪里的波形正常?
1.请检查你的matlab绘图程序是否确定无误。
2.你可以把codec的Din和Dout短接,从AD出来的数据在做一个DA,然后观察输出端的波形是否正确。如果codec配置没有问题,是不会出现转换错误的。
m:
回复 user151383853:
请问具体是哪个代码有问题呢?matlab还是app程序还是drv程序?
m:
回复 Flora Wang:
1、matlab应该没有问题。
2、更改寄存器的配置转换错误还有点不一样
3、Din和Dout短接后,AD出来的数据怎么再做一个DA,芯片为贴片封装,短接什么的不太方便
m:
回复 Flora Wang:
如果matlab程序有问题,画出的图形应该是全部有错。或者规律性的出现错误,但实际情况是一万个采样点可能会有几个连续点出现错误,画图如下