使用Scanner读取Adc芯片数据与实际不符

Adc配置如下:

Adc Chip配置如下:

在使用Chip下的read方法读取11号寄存器与12号寄存器读取到的数据与硬件测量的电压值相同为1040mv左右

94F9CC1F-75BA-4952-CF51-544A2095BC21

94F9CC1F-75BA-4952-CF51-544A2095BC21

但是使用scanner读取到的11号寄存器和12号寄存器的电压值仅为795mv左右存在差异与预期不符

scanner:

请问要怎么解决

Scanner配置是位读,用下chip的位读方法试下呢,看看读出来的值

使用按位读还是一样的结果

image

image

hwproxy的版本是1.90.19以上吗,是的话可以尝试用trace跟踪下。
1、mdbctl,进入终端
2、attach hwproxy,连接hwproxy
3、lscmd看下有没有tracedebounce命令
4、tracedebounce </Scanner obj> start,开始跟踪,看下防抖窗口内的值和每次读的值

ps:也可以tracechip </chip obj> start,跟踪下器件读写

使用tracedebounce可以看到原始读值是正确的,但是经过抖动处理后读值就变为798了

image

目前我的Scanner的debounce配置为“Debounce”: “#/MidAvg_Inlet”

"MidAvg_Inlet": {
  "WindowSize": 4,
  "DefaultValue": 20,
  "IsSigned": true
},

这个Debounce要改为什么呢

你的防抖配置里,配置了防抖值是有符号的,有符号的防抖只支持-256~255,计算一个字节以上的会导致非预期结果,你试试把IsSigned改为false