微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > TI模拟硬件电路设计 > ADS8317 采集问题

ADS8317 采集问题

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

 如图,采集出来的结果竟然是32768 的数字,(我把输入接地后,跟不接地,均是32768)。求大神指点。。。

uint16 Read_ADS8317()
{
uint16 AD_Value=0,i=0;
// delay_us(1);
AD_CS_L;//SCLK_H;
AD_CLK_L;delay(72);
AD_CLK_H;delay(72);
AD_CLK_L;delay(72);
AD_CLK_H;delay(72);
AD_CLK_L;delay(72);
AD_CLK_H;delay(72);
AD_CLK_L;delay(72);
AD_CLK_H;delay(72);
AD_CLK_L;delay(72);
AD_CLK_H;delay(72);
AD_CLK_L;delay(72);
AD_CLK_H;delay(72);

for(i=0;i<16;i++)
{
AD_CLK_L;
delay(72);
AD_CLK_H;

AD_Value = AD_Value << 1;
if(AD_DA_IN)
{
AD_Value = AD_Value | 0x0001;
}
delay(72);



}
AD_CS_H;

return AD_Value;
}

估计是时序问题。最好用示波器把波形抓出来分析。 另外需要确定delay(72)延迟时间是多少?

问题解决,原因是 这个AD芯片是双极性输入的,所以参考电压,不能高于VDD电压的1半,现在我的VDD是3.3V,而参考电压是2.5V,所以致使AD无法正常工作,我现在换了一个参考电源,1.2V的,可以正常工作,谢谢你们的回答。非常感谢。附图有datasheet上的解释。。。。

请问楼主这段代码还在么?想模拟spi一直没写出来,能发给我么?

有啊,帖子上不就有吗

能说说dalay函数怎么写的么。。。谢谢啦

哦,是这样的,我的单片机主频72MHZ,然后delay函数是这样,很简单

void delay(long x)

{

     while(x--);

所以72的话,应该要大于1US的时间

嗯,谢谢,我再试试

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

网站地图

Top