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.

关于ADS1118ADC的先关问题,求解答

Other Parts Discussed in Thread: ADS1118

请问ADS1118是直接一上来就给写字节,默认写的字节是到控制寄存器吗。还有是在写完之后,立马就可以读数据。还有读回来的应该是32位的数据吗?读的时候每次先读的是结果寄存器的两个字节的数据,然后是控制寄存器的数据吗?

  • Hi Xipeng

    先写控制寄存器。写完之后,下一个CS周期再读数据。

    读回来可以使32bit或者16bit,取决于你在CS周期里面的CLK的个数。

    读的时候32bit模式下,先读到的是2个字节的转换结果,然后是2个字节的控制寄存器数据。

    16bit下,只读到2个字节的转换结果。

  • 控制寄存器只需要写一次吧,看数据手册上说的是,BIT1到BIT2是写入控制寄存器,是不是在写入之前要先写入这两位,再写其他。写入寄存器的时候可以一次性送入16位吗?还是分两次8位送入?读的时候可以一次性读16位吗?

  •  写寄存器要分几步,就是说先写什么,再写什么,最后再启动转换啥的?有点读不懂那个数据手册啊?我都翻译了一般一遍,还是不会用啊。。

  • 写入的时候可以分两个8位写入,比如:

    ConfigH = 0x8B; //AIN0 & AIN1, .256V, Single Mode

    ConfigL = 0xF2; //860SPS, Temp Mode, Pull_UP Disabled

    SPI_SendChar(ConfigH);

    SPI_SendChar(ConfigL);

    读的时候可以一次读取16位


  • 这个芯片手册有时序图,楼主课根据时序图来操作,先写控制寄存器。写完之后,下一个CS周期再读数据。读回来可以使32bit或者16bit,取决于CS周期里面的CLK的个数。读的时候是处于32bit模式下,先读到2个字节的转换结果,然后是2个字节的控制寄存器数据。16bit下,只读到2个字节的转换结果。希望能够解决你的问题。

  • 你看一下读取32bit 和16bit 的时序图:

  • 您好,我用的是STM32控制的ads1118,控制命令SPI_ADC_SendData(SPI1, 0xD3E3);

    它的4个通道不能分别进行控制吗?只能顺序轮番执行吗?看看是不是控制命令的问题?谢谢!

  • 您好,我用的是STM32控制的ads1118,控制命令SPI_ADC_SendData(SPI1, 0xD3E3);

    它的4个通道不能分别进行控制吗?只能顺序轮番执行吗?看看是不是控制命令的问题?谢谢!

x 出现错误。请重试或与管理员联系。