This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

ADS1118的硬件SPI通讯问题

Other Parts Discussed in Thread: ADS1118

        我是使用一个8位的MCU与ADS1118通过硬件SPI通讯的,最初连续发送读取的问题比较困扰我。现在问题暂时解决了,实际上按照手册上的时序图描述,连续发送四次8位数据,只要bit2bit1不是01,就可以驱动ADS1118发回32位数据——16位数据寄存器和16位状态寄存器。不过现在有新的问题了。

        1、读写的速率计算,我用的是11.0592M的晶振,1/128的模式,这样才能与ADS1118正常通讯。而按照手册里“TIMING REQUIREMENTS: SERIAL INTERFACE TIMING”部分的表格所描述的,Tsclk >= 250ns,即Fsclk <= 4M,与11.0592M/128差的有点远。所以,这个读写速率的大致数字应该是多少,能不能给出正确的计算方法。

        2、现在我发送0x0000,0000给ADS1118,得到的数值是0x0000,,058B,我理解为我得到了16位(0x0000)全零的数据和16位(0c058B)的状态,而0x058B按照手册理解,其beit3为1,即读取的是内部温度值。此处的问题是:

              A、如果0x058B是状态寄存器的真实反映,那么室温状态下返回的数据寄存器不应该是0x0000。

              B、我的ADS1118没有进行过配置,所以按照手册描述状态字按Default应该为0x0583,为什么会是0x058B它是不是一个错误的值

        3、状态寄存器的bit0为1的问题,我查了一下有数据准备好后Dout自动拉低的说法,此处如何正确处理?

              A、我用判断MISO管脚(连接Dout)为0的方法,去确定ADS1118是否准备好,以便主机发送数据(0x0000,0000)来读取ADS1118的内容,但是始终的不到结果。但实际上这个判断没有被触发。

              B、如果我主动把MISO(连接Dout)拉低.......结果很难看。

        4、补充一个问题,如果手册上给出的状态寄存器bit2bit1的说明是:是否可以更改状态寄存器.......这是一个是或者否的问题,只要用一位就可以做到,为什么要用两位?或者说bit2bit1除了01表示可以更新状态寄存器外,另外三种状态也有神秘的用法?很是好奇。

        对了,ADS1118返回值是32位的——前16位是数据,后16位是状态?