proteus 仿真 LTC2440讀不到數據?
void ADCRead(){
CS=0;
SCK=0;
for(i=2;i>=0;i--){
SCK=0;
for(j=1;j>0;j--);
SCK=1;
}
SCK=1;
sign=sign|SDO;
for(i=0;i<24;i++){
SCK=0;
for(j=1;j>0;j--);
SCK=1;
dat=dat<<1;
dat=dat|SDO;
}
CS=1;
}
程序如上,单片机是pic16f628
读出的数据是全高-->全低,不断重覆.
将单片机时钟调至0.5mhz也是这样,因此不会是过快了,转换时间应该足够
难道一定要检测eoc的状态? 在用LTC2400,读取的数据有时候全是高,有时候全是低,不管输入怎么接。
LTC2400和LTC2440都是24位的ADC,只是LTC2400控制比较简单些。 我也遇见这些问题 解决不了 LZ 解决了嘛 我有一个国外的LTC2440仿真软件,正常不正常不知道,有需要的WANGGONG1976126@163.COM,一起研究下 2440 proteus 仿真是可以读出数据的,不过要注意读的时机。你可以用仿真示波器看下,它的数据发送是在 clk 的下降沿后发送的,但是数据只持续几微秒就没了,而且持续时机 不定,所以在发送完下降沿后在大概700ns 内就要读 SDO,才能采集到数据,而且还不保证采集的到,因为数据持续时机不定,有时压根就会消失,所以要多次,多次采样,把采样结果 OR 后,当做一次采样。 多次采样的意思是 读取32位数据后 等下次转换完毕后再读取。。。。读取大概4次 结果相or 后基本能得到准确结果了。
页:
[1]