ADS8556数据错乱
大家好,我用ADS8556和STM32F407采集信号,并口16位传输硬件模式,PA0 PA1 PB0 PB1四通道同时采集,但是读数据时第三四个数据总是不对,第三个数据和第一个差不了多少,第四个和第二个完全一样,这是为什么。请大家指教。
我用示波器看了CONVST_A CONVST_B的波形是没问题的。
void CollectData(uint16_t* ad_data)
{
uint8_t i;
uint16_t data;
SetADS8556Pin(ADS8556_PIN_CONVSTA);
SetADS8556Pin(ADS8556_PIN_CONVSTB);
while(!ReadADS8556Pin(ADS8556_PIN_BUSY));
while(ReadADS8556Pin(ADS8556_PIN_BUSY));
ResetADS8556Pin(ADS8556_PIN_CS);
for(i=0; i<4; i++)
{
ResetADS8556Pin(ADS8556_PIN_RD);
DelayNop(10);
data = ReadADS8556Data();
*(ad_data + i) = data;
SetADS8556Pin(ADS8556_PIN_RD);
DelayNop(5);
}
SetADS8556Pin(ADS8556_PIN_CS);
ResetADS8556Pin(ADS8556_PIN_CONVSTA);
ResetADS8556Pin(ADS8556_PIN_CONVSTB);
}
将CHA0 CHA1和CHB0 CHB1分开采集时,没有问题,但是我需要四通道同步采集
我的问题已经解决了 之前是CONVST_A CONVST_B两个PIN没有接在一起,而已两条语句分别拉高这两个脚,不满足数据手册的两脚最大拉高时间差4ns。将两个脚焊在一起就好了。