找回密码
 立即注册
查看: 944|回复: 35

STC8G2K64S4的AD采集有时采集的数据偏大 | 已解决

[复制链接]

该用户从未签到

13

主题

40

回帖

194

积分

注册会员

积分
194
发表于 2023-7-26 14:35:13 | 显示全部楼层 |阅读模式
STC8G2K64S4的10路AD采样,因为自己的AD采样出了问题,故采用官方的16路采集的例子,但把官方例子稍微变动

变动的是只采集P1.1口输入的电压,万用表测其电压是芯片VCC 一半 故AD值输出是512  513  514 但有时会输出767这个值 按电源3.3换算其电压为2.4V
但P1.1口没有这样的电压输入 请问这是什么问题?
谢谢!

Test2.rar

6.65 KB, 下载次数: 40

官方例子改成单路AD采样

回复 送花

使用道具 举报

该用户从未签到

46

主题

3060

回帖

6901

积分

超级版主

积分
6901
发表于 2023-7-26 18:14:44 | 显示全部楼层
本帖最后由 梁工 于 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之外都默认为高阻,为了通用,最好自己设设置一下)。
回复 支持 反对 送花

使用道具 举报

该用户从未签到

13

主题

40

回帖

194

积分

注册会员

积分
194
 楼主| 发表于 2023-7-27 07:59:12 | 显示全部楼层
梁工 发表于 2023-7-26 18:14
ADC输入端要对地接一个1nF~100nF的电容。
你的情况可能是尖峰干扰导致的。你将输入信号串联1K电阻到ADC输入 ...

好的  我试试 谢谢您的解答
回复 支持 反对 送花

使用道具 举报

该用户从未签到

13

主题

40

回帖

194

积分

注册会员

积分
194
 楼主| 发表于 2023-8-14 08:27:03 | 显示全部楼层
梁工 发表于 2023-7-26 18:14
ADC输入端要对地接一个1nF~100nF的电容。
你的情况可能是尖峰干扰导致的。你将输入信号串联1K电阻到ADC输入 ...

10路AD口但就有几路会采集到高值 实际上高值不存在,单路AD的程序也是同样的问题  官方的程序也是这样
难道是芯片bug?

点评

ADC输入端要接信号才有意义,信号内阻越小越好。如果ADC输入端悬空,则读到任意值都是正常的。 如果怀疑这个芯片坏了,你可以换一块样板测试,测试样板至少3块,看一致性。 IC本身目前没发现有BUG。  详情 回复 发表于 2023-8-14 10:28
回复 支持 反对 送花

使用道具 举报

该用户从未签到

46

主题

3060

回帖

6901

积分

超级版主

积分
6901
发表于 2023-8-14 10:28:13 | 显示全部楼层
Inver1688 发表于 2023-8-14 08:27
10路AD口但就有几路会采集到高值 实际上高值不存在,单路AD的程序也是同样的问题  官方的程序也是这样
...

ADC输入端要接信号才有意义,信号内阻越小越好。如果ADC输入端悬空,则读到任意值都是正常的。
如果怀疑这个芯片坏了,你可以换一块样板测试,测试样板至少3块,看一致性。
IC本身目前没发现有BUG。
回复 支持 反对 送花

使用道具 举报

该用户从未签到

13

主题

40

回帖

194

积分

注册会员

积分
194
 楼主| 发表于 2023-8-14 10:53:08 | 显示全部楼层
本帖最后由 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路轮询采集有问题,采取单独一路采集还是出问题

点评

100%使用的问题,没用对。STC8系列的MCU是非常优秀的,精度高,噪声低。 你可以使用我的例程测试,直接下载HEX文件测试,串口监控,文本方式,ADC已转为十进制。程序通用的,只看你需要的通道即可。  详情 回复 发表于 2023-8-14 10:59
回复 支持 反对 送花

使用道具 举报

该用户从未签到

46

主题

3060

回帖

6901

积分

超级版主

积分
6901
发表于 2023-8-14 10:59:38 | 显示全部楼层
Inver1688 发表于 2023-8-14 10:53
我们的5块板子都是这样  
后来分别采用TI的TMS320F2803x的AD以及ST的STM32F103的AD采样 均没出过这种情况
...

100%使用的问题,没用对。STC8系列的MCU是非常优秀的,精度高,噪声低。
你可以使用我的例程测试,直接下载HEX文件测试,串口监控,文本方式,ADC已转为十进制。程序通用的,只看你需要的通道即可。
STC8G系列-ADC相关程序.rar (341.32 KB, 下载次数: 53)

回复 支持 反对 送花

使用道具 举报

该用户从未签到

13

主题

40

回帖

194

积分

注册会员

积分
194
 楼主| 发表于 2023-8-14 11:57:39 | 显示全部楼层
梁工 发表于 2023-8-14 10:59
100%使用的问题,没用对。STC8系列的MCU是非常优秀的,精度高,噪声低。
你可以使用我的例程测试,直接下 ...

我采取你的例子 但我使用的是ADC中断 发现还是老问题 此外不做平均值的话 值偏差很大的

点评

直接下载HEX文件测试,串口助手观察结果!  详情 回复 发表于 2023-8-14 13:04
回复 支持 反对 送花

使用道具 举报

该用户从未签到

46

主题

3060

回帖

6901

积分

超级版主

积分
6901
发表于 2023-8-14 13:04:22 | 显示全部楼层
本帖最后由 梁工 于 2023-8-14 13:05 编辑
Inver1688 发表于 2023-8-14 11:57
我采取你的例子 但我使用的是ADC中断 发现还是老问题 此外不做平均值的话 值偏差很大的  ...

直接下载HEX文件测试,串口助手观察结果!做平均值是为了对信号滤波(这是通用测试程序,避免有的用户输入信号纹波大导致读数跳动),测试正常后你可以取消平均值滤波。
回复 支持 反对 送花

使用道具 举报

该用户从未签到

13

主题

40

回帖

194

积分

注册会员

积分
194
 楼主| 发表于 2023-8-14 13:18:45 | 显示全部楼层
梁工 发表于 2023-8-14 13:04
直接下载HEX文件测试,串口助手观察结果!做平均值是为了对信号滤波(这是通用测试程序,避免有的用户输入 ...

示波器观察过 没大的波动 TI和ST的单片机采集AD很稳的
回复 支持 反对 送花

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2024-5-22 10:58 , Processed in 0.110151 second(s), 73 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表