STC8G2K64S4的AD采集有时采集的数据偏大 | 已解决
STC8G2K64S4的10路AD采样,因为自己的AD采样出了问题,故采用官方的16路采集的例子,但把官方例子稍微变动变动的是只采集P1.1口输入的电压,万用表测其电压是芯片VCC 一半 故AD值输出是512513514 但有时会输出767这个值 按电源3.3换算其电压为2.4V
但P1.1口没有这样的电压输入 请问这是什么问题?
谢谢!
本帖最后由 梁工 于 2023-7-26 18:17 编辑
ADC输入端要对地接一个1nF~100nF的电容。
你的情况可能是尖峰干扰导致的。你将输入信号串联1K电阻到ADC输入端,ADC输入端对地接一个100nF的电容。ADC_VREF要接一个纹波非常小、稳定的参考电压(2.0V~AVcc之间)。
STC8系列和STC32系列的ADC是非常优秀的,误差小于1LSB。
还有,ADC输入口一定要设置为高阻(上电后除了P3.0 P3.1之外都默认为高阻,为了通用,最好自己设设置一下)。
梁工 发表于 2023-7-26 18:14
ADC输入端要对地接一个1nF~100nF的电容。
你的情况可能是尖峰干扰导致的。你将输入信号串联1K电阻到ADC输入 ...
好的我试试 谢谢您的解答 梁工 发表于 2023-7-26 18:14
ADC输入端要对地接一个1nF~100nF的电容。
你的情况可能是尖峰干扰导致的。你将输入信号串联1K电阻到ADC输入 ...
10路AD口但就有几路会采集到高值 实际上高值不存在,单路AD的程序也是同样的问题官方的程序也是这样
难道是芯片bug? Inver1688 发表于 2023-8-14 08:27
10路AD口但就有几路会采集到高值 实际上高值不存在,单路AD的程序也是同样的问题官方的程序也是这样
...
ADC输入端要接信号才有意义,信号内阻越小越好。如果ADC输入端悬空,则读到任意值都是正常的。
如果怀疑这个芯片坏了,你可以换一块样板测试,测试样板至少3块,看一致性。
IC本身目前没发现有BUG。 本帖最后由 Inver1688 于 2023-8-14 11:06 编辑
梁工 发表于 2023-8-14 10:28
ADC输入端要接信号才有意义,信号内阻越小越好。如果ADC输入端悬空,则读到任意值都是正常的。
如果怀疑 ...
我们的5块板子都是这样
信号是经过运放LV358G后输入到AD口
后来分别采用TI的TMS320F2803x的AD以及ST的STM32F103的AD采样 均没出过这种情况
TI和ST的AD口分别引线到STC8G2K64S4 AD输入口上同时采样的,这两款单片机的AD采样均没出现偏大值得情况
此外我单独焊接一个STC8G2K64S4的板子上面就是电源和AD口 然后把那五块的AD引在上面 照样出问题
考虑到10路轮询采集有问题,采取单独一路采集还是出问题
Inver1688 发表于 2023-8-14 10:53
我们的5块板子都是这样
后来分别采用TI的TMS320F2803x的AD以及ST的STM32F103的AD采样 均没出过这种情况
...
100%使用的问题,没用对。STC8系列的MCU是非常优秀的,精度高,噪声低。
你可以使用我的例程测试,直接下载HEX文件测试,串口监控,文本方式,ADC已转为十进制。程序通用的,只看你需要的通道即可。
梁工 发表于 2023-8-14 10:59
100%使用的问题,没用对。STC8系列的MCU是非常优秀的,精度高,噪声低。
你可以使用我的例程测试,直接下 ...
我采取你的例子 但我使用的是ADC中断 发现还是老问题 此外不做平均值的话 值偏差很大的 本帖最后由 梁工 于 2023-8-14 13:05 编辑
Inver1688 发表于 2023-8-14 11:57
我采取你的例子 但我使用的是ADC中断 发现还是老问题 此外不做平均值的话 值偏差很大的...
直接下载HEX文件测试,串口助手观察结果!做平均值是为了对信号滤波(这是通用测试程序,避免有的用户输入信号纹波大导致读数跳动),测试正常后你可以取消平均值滤波。 梁工 发表于 2023-8-14 13:04
直接下载HEX文件测试,串口助手观察结果!做平均值是为了对信号滤波(这是通用测试程序,避免有的用户输入 ...
示波器观察过 没大的波动 TI和ST的单片机采集AD很稳的