已回答假定已回答

AD7195采集到的数据上传上位机处理时失真。

newbie2014 在 2014-11-27 詢問的問題
最後回覆由adi_yu於2014-12-3提供

用AD7195做磅秤应用,注意不是直接用它的Evaluation Board 而是把评估板上的AD7195接到我自己的MCU上。  然后对MCU写程序         对AD7195的配置如图修改后的配置.jpg

也就是程序中按图中Mode 和Configuration 寄存器的值写入的。程序在debug状态下与AD7195的Evaluation Board上的显示值一致,如下图

1HO38FV$O)UR@JE68JQB)E3.jpg

watch1里面的temp值就是取的ad7195  data register 中的前16位组成的数,只是显示为十进制,按压应力片的同时,然后run 程序,可以看到temp值会相应增大,且数据正确。但是一旦把采集的数据上传到上位机软件来显示。就发现数据乱跳,完全与我自己用run来debug时得到的数据不一致。

已知的是MCU与上位机通道通信正常,显示也正常,这是因为我下位机发送一个任意固定值时(如图中注释了的temp=10000),上位机软件都能正确显示。

分析可能的原因是因为我每次debug按一次run然后停到断点时,也就是只读了一次AD7195,即使手不停按run频率也是比较小的,而让退出debug模式让MCU不停运行时,对AD7195的读就相当频繁了。导致同步丢失,从而数据丢掉。

(但是失去同步的可能性应该是不高的把,因为我在多次读操作的中间都把DIN脚拉高了,防止DIN线上无效跳动的干扰了,而且在程序中也加入了如遇数据异常执行reset复位操作,然后重新读的功能)

静等高手解答!!!!!!!!!!!!!!!谢谢!

結果