funghome 发表于 2008-5-8 10:14:19

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的状态?

fengye2009 发表于 2009-8-18 16:35:52

在用LTC2400,读取的数据有时候全是高,有时候全是低,不管输入怎么接。
LTC2400和LTC2440都是24位的ADC,只是LTC2400控制比较简单些。

dujuan8693 发表于 2012-6-17 22:56:48

我也遇见这些问题 解决不了

dujuan8693 发表于 2012-6-17 22:57:13

LZ 解决了嘛

ZHAOBAO511 发表于 2012-9-18 16:20:20

我有一个国外的LTC2440仿真软件,正常不正常不知道,有需要的WANGGONG1976126@163.COM,一起研究下

ddr 发表于 2012-9-22 08:02:26

2440 proteus 仿真是可以读出数据的,不过要注意读的时机。你可以用仿真示波器看下,它的数据发送是在 clk 的下降沿后发送的,但是数据只持续几微秒就没了,而且持续时机 不定,所以在发送完下降沿后在大概700ns 内就要读 SDO,才能采集到数据,而且还不保证采集的到,因为数据持续时机不定,有时压根就会消失,所以要多次,多次采样,把采样结果 OR 后,当做一次采样。 多次采样的意思是 读取32位数据后 等下次转换完毕后再读取。。。。读取大概4次 结果相or 后基本能得到准确结果了。
页: [1]
查看完整版本: proteus 仿真 LTC2440讀不到數據?