TI工程师好:
项目中用到了贵司的ADS1247芯片,驱动程序移植自“Example_ADS1248FW“(原本为MSP430,移植到STM8上)。
ADS1247用作单端3通道ADC,模拟信号分别从AIN0、AIN1、AIN2、输入,AIN3接模拟地,参考源为外部REF0供给的4.096V(LM4030AMF-4.096)。
目前在使用ADS1247时遇到以下问题:
1、芯片可以正常读写寄存器,也可以读取ADC的转换结果。但MCU运行后第一次读取的结果总是0(MCU硬上电或者复位)。
2、循环依次读取0、1、2三个模拟输入通道的结果,结果发现切换通道后读取的结果是上一通道的结果,
即:读0通道时是0(仅运行后第一次,后面就不是0),读1通道时结果却和0通道的实测结果吻合,读2通道时又与1通道实测结果一致,依次类推。
问题1可以根据问题2的实验推知第一次的0是复位后的初始值,无意义数据。因此主要问题集中在问题2,为什么读出的是上一次的数据。
请问我将ADS1247用作3通道单端模式时的用法是否正确?
正确的循环读取三个单通道数据的操作步骤是怎样的?
以上问题的原因是什么?需要做什么样的实验确认问题所在?
目前还没找出问题来,有些急,请尽快回复下。多谢!
user151383853:
MCU运行后第一次读取的结果总是0(MCU硬上电或者复位)。
我怀疑这是 ADS1247 还没有准备好时就去读取数据的结果是否考虑增加一定延时当然, 也可能问题出在你自己的程序里面. 比如数据缓冲和更新问题.
lanbo chen:
问题关联此帖
http://www.deyisupport.com/question_answer/analog/data_converters/f/58/t/118921.aspx
lanbo chen:
问题关联此帖
http://www.deyisupport.com/question_answer/analog/data_converters/f/58/t/118921.aspx