ADS1118是上电之后,先选中芯片,将CS拉低,直接送配置字,然后拉高CS。再就是直接读数据?
SPI_CS_Low(); //拉低CS
SPI_Write_byte(0x85);
SPI_Write_byte(0x83);
SPI_CS_High(); //拉高CS
SPI_CS_Low();
Data_H=SPI_Rec_byte(); //读高字节
Data_L=SPI_Rec_byte();// 读低字节
SPI_CS_High();
Data|=Data_H;
Data=Data<<8;
Data|=Data_L;可以不?
还有,ADS1118默认上电状态,是低功耗模式,那么怎么启动转换呢?还有,是上电后立马就可以对ADS1118写配置字吗,而且只要写入就一定是写到控制寄存器吗?在读数据前有没有什么标志?
Carter Liu:
第一个问题:
“ADS1118是上电之后,先选中芯片,将CS拉低,直接送配置字,然后拉高CS。再就是直接读数据?”
上电之后,先选中芯片,将CS拉低,直接配置Config Register,然后拉高CS。能否读取数据根据你的mode配置。若是配置为single-shot mode,且SS位在配置时已设置为1,则转换已开始,拉低CS,通过读取DRDY引脚判断转换是否完成。转换完成后可以读取数据
若配置为continuous conversion mode,则可以直接通过读取DRDY引脚判断转换是否完成。转换完成后可以读取数据
Carter Liu:
第二个问题:
“SPI_CS_Low(); //拉低CSSPI_Write_byte(0x85);SPI_Write_byte(0x83);SPI_CS_High(); //拉高CSSPI_CS_Low();Data_H=SPI_Rec_byte(); //读高字节Data_L=SPI_Rec_byte();// 读低字节SPI_CS_High();Data|=Data_H;Data=Data<<8;Data|=Data_L;可以不?”
不行。首先,SPI_CS_High(); //拉高CS SPI_CS_Low();中间最好加一个短的延时;
然后,Data_H=SPI_Rec_byte(); //读高字节Data_L=SPI_Rec_byte();// 读低字节
在这之前需要判断DRDY是否有效。
Carter Liu:
第三个问题:“ADS1118默认上电状态,是低功耗模式,那么怎么启动转换呢?”
设置Config Register的SS bit为1后自动开启一次单次转换。低功耗的意思在这里就是单次转换。
Carter Liu:
第四个问题:“是上电后立马就可以对ADS1118写配置字吗,而且只要写入就一定是写到控制寄存器吗?在读数据前有没有什么标志?”
上电后就可以对其写配置字。写入的是配置寄存器Config Register,应该就是你说的控制寄存器。数据转换完成会有标志,即DOUT/DRDY引脚
WenJie Chen1:
回复 Carter Liu:
还一些疑问,不好意思。
1问一下,到底如何判断数据可以读,手册上说的是,可以判断DOUT引脚有一个低电平就可以读取数据,请问这样吗?
2 In continuous conversion mode, DOUT/DRDY transitions high again 8 µs before the next data ready signal
(when DOUT/DRDY asserts low) if no data are retrieved from the device.芯片中这句话什么意思?
在连续转换模式下,写完配置字之后就可以判断DOUT引脚,如果该引脚输出低电平,则可以读数据。而此处说的,DOUT引脚再高8us,是说这一次读数据应该结束,马上会有第二次数据准备就绪,当DOUT在8us之后再变低电平就说明可以再读取第二次数据了?
可以这样理解吗?
WenJie Chen1:
回复 Carter Liu:
1 在连续模式时,是不是,在写完配置字后,拉高CS。延时,然后再拉低CS,判断DOUT是否为低电平,如果是,就可以开始读数据,读完之后,就又返回判断DOUT,如此循环,这样可以吗?
2在单次转换模式,转换一次后是不是就不转换了。单次转换时,送入配置字(OS=1,还有设置成单次转换模式),拉高CS。那么短延时之后,拉低CS,是不是就可以判断DOUT,再就可以读数据了,读完拉高CS就可以了吧。
3所有的转换是在配置字送完之后开始转换的吧?是不是配置字只需要送一次?
user3917511:
芯片手册有完整的介绍吧,楼主可以多看看时许流程图设计,这样设计更加的没有错误,上电之后,先选中芯片,将CS拉低,直接配置Config Register,然后拉高CS。能否读取数据根据你的mode配置。若是配置为single-shot mode,且SS位在配置时已设置为1,则转换已开始,拉低CS,通过读取DRDY引脚判断转换是否完成。转换完成后可以读取数据。希望能够解决你的问题。。
Carter Liu:
回复 WenJie Chen1:
1.是的。
2.连续转换模式下,转换完成一组数据后,在下一组数据转换完成前DRDY拉高8US,当DOUT在8us之后再变低电平就说明可以再读取第二次数据。
Carter Liu:
回复 WenJie Chen1:
1.是的。
2.是的。
3.单次转换需要每次转换前发送一次配置信息。
Carter Liu:
回复 WenJie Chen1:
另外,我这里有使用430SPI外设模块控制ADS1118的程序,如果需要可以留下邮箱