微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > TI模拟硬件电路设计 > AVR控制ADS7590采集数据切换通道不好使

AVR控制ADS7590采集数据切换通道不好使

时间:10-02 整理:3721RD 点击:

我用ATMEGA128   SPI通讯控制ADS7590读取通道1和通道2的模拟数据,SPI  时钟频率62.5KHZ   根据ADS7590控制时序  我给7590发送一个数据  她会给我回一个数据  例如 读取通道0 的数据  我发送0X1800  7590会回给我通道0的数据   但是我发0x1880(通道1)  有的时候就切换不到通道1   但是有的时候还能切换至通道1进行采集数据,但是不稳定,会在通道0和通道1之间来回跳。

while(1)
{

_delay_ms(300);

CSN_0;                                       //SPI通讯使能引脚拉低
_delay_us(22);
SPI_MasterTransmit(0x18);      //采集通道0数据
data[0]=SPI_MasterReceive(); //接收第一个个字节数据
SPI_MasterTransmit(0x80);     //发送第二个字节数据
data[1]=SPI_MasterReceive();//接收第二个字节数据
_delay_us(22);                         //延时22us后将SPI使能拉高
CSN_1;
_delay_ms(300);                      //间隔300ms后采集通道1 的数据
CSN_0;                                   // //SPI通讯使能引脚拉低
_delay_us(22);
SPI_MasterTransmit(0x18);      //采集通道1数据
data[2]=SPI_MasterReceive(); //接收通道1数据
SPI_MasterTransmit(0x80);      //采集通道1数据
data[3]=SPI_MasterReceive(); //接收通道1数据
_delay_us(22);
CSN_1;

channel[0]=(data[0]&0xf0)>>4; //channel[0]表示通道0
channel[1]=(data[2]&0xf0)>>4; //channel[1]表示通道1

val1=(((data[0]&0x0f)<<8)|data[1]);//vai1表示通道0     12位数据采集结果
val2=(((data[2]&0x0f)<<8)|data[3]);//vai1表示通道1     12位数据采集结果
Uart_printf("%s %x %d %s %x %d\r\n","channe_l_val=",channel[0], val1,"channe_2_val=",channel[1], val2);//将采集出来的数据打印出来

从说明看, 好像通信不稳定. 是不是时序上有问题呢?

通道切换后延时长一点试试

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top