我设计了一个ADS7809的电路,程序运行后,BUSY和SYNC一直是高电平。
原理图和程序如下:
unsigned int adconvers(void)
{
unsigned i;
char j;
adclk=0;nop();nop();nop();nop();nop();nop();nop();nop();
adclk=1;nop();nop();nop();nop();nop();nop();nop();nop();
//adclk=0;nop();nop();nop();nop();nop();nop();nop();nop();
adrc=0;
adcs=0;
adclk=1;nop();nop();nop();nop();nop();nop();nop();nop();
//开始转换
//adclk=1;nop();nop();nop();nop();nop();nop();nop();nop();
adclk=0;nop();nop();nop();nop();nop();nop();nop();nop();
adclk=1;nop();nop();nop();nop();nop();nop();nop();nop();
adclk=0;nop();nop();nop();nop();nop();nop();nop();nop();
adclk=1;nop();nop();nop();nop();nop();nop();nop();nop();
adcs=1;adrc=1;
nop();nop();nop();nop();nop();nop();nop();nop();//禁止再次转换
adclk=0;nop();nop();nop();nop();nop();nop();nop();nop();
adclk=1;nop();nop();nop();nop();nop();nop();nop();nop();
adclk=0;nop();nop();nop();nop();nop();nop();nop();nop();
// adclk=1;nop();nop();nop();nop();nop();nop();nop();nop();
while(adbuzy==0)//等待忙信号
{
adclk=0;nop();nop();nop();nop();nop();nop();nop();nop();
adclk=1;nop();nop();nop();nop();nop();nop();nop();nop();
} //忙信号结束
adclk=0;nop();nop();nop();nop();nop();nop();nop();nop();
adclk=1;nop();nop();nop();nop();nop();nop();nop();nop();
adrc=1; nop();nop();nop();nop();nop();nop();nop();nop();//开始传输
adcs=0; nop();nop();nop();nop();nop();nop();nop();nop();
// while(adsync==0) //等待同步信号
{
adclk=1; nop();nop();nop();nop();nop();nop();nop();nop();
adclk=0;nop();nop();nop();nop();nop();nop();nop();nop();
}
// while(adsync==1) //等待同步信号结束
{
adclk=1; nop();nop();nop();nop();nop();nop();nop();nop();
adclk=0;nop();nop();nop();nop();nop();nop();nop();nop();
}
for(j=0;j<16;j++)
{
adclk=0;nop();nop();nop();nop();nop();nop();nop();nop();
adclk=1; nop();nop();nop();nop();nop();nop();nop();nop();//高电平读数据
if(addata)
{
i|=0x0001;
i<<=1;
continue;
}
i&=0xfffe;
i<<=1;
}
adclk=0;nop();nop();nop();nop();nop();nop();nop();nop();
adclk=1;nop();nop();nop();nop();nop();nop();nop();nop();
adcs=1;
return i;
} |