关于ADS1118ADC的先关问题,求解答
请问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个通道不能分别进行控制吗?只能顺序轮番执行吗?看看是不是控制命令的问题?谢谢!