打印

HC32L110 采集ADC有可能一直没有值吗

[复制链接]
911|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
windows100|  楼主 | 2023-12-20 10:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
先说现象:1.试产了1000个大约有20个,ADC采样一直通不过。复位以后程序又正常工作,采样正常。
2.对不能正常工作的产品测量对应引脚:
(1)引脚上模拟信号量在变化,0~3V。
(2)ADC连续转换中断有产生,因为我的程序在转换完成中断会关闭ADC使能,把检测口关闭。还把光敏电阻的电源关闭。通过测量光敏电阻电源,和引脚上的变化。确定ADC程序在运行,正常结束。
程序结构:
1.上电后初始化ADC功能。关闭ADC。因为是低功耗项目,所以不用的时候都关闭了外设。
2.在需要的时候,开启转换。转换完成中断后,把ADC值保存在数组中,关闭ADC。


3.程序任务判断ADC的值,做出对应动作。出错在这里,外部模拟量变化,这里没有反应。

我怀疑是我的ADC设置不对,但是又没有找到哪不对。
其中,我实际使用中因为不停的开关BGR,发现BGR的使能时间对结果影响非常大。我实际测试当BGR使能时间大于1ms,结果比较稳定。我程序中是使能了1.5ms才开启的转换。
实际电路中因为输入阻抗大,所以程序开启了电压跟随器功能。

看具体的操作:
需要转换时:
开启光敏电源
使能对应扫描通道
使能ADC时钟
使能ADC
使能BGR
延时1.5ms
清除ADC 连续转换完成中断标志
中断使能
复位ADC连续转换状态
启动ADC转换

ADC中断程序:
清除连续转换完成中断
获取对应通道ADC值保存在数组中。
禁止BGR
禁止ADC
禁止ADC时钟
禁止ADC中断
关闭光敏电源

使用时:
取ADC数据赋给局部变量
局部变量参与运算,判断数据在哪个区间段
根据区间段做出对应动作。

最后,希望有大佬能提供思路。我在考虑是不是要周期性重新初始化ADC,但是这个是治标不治本的办法,我没有找到为什么会出现这个。




使用特权

评论回复
沙发
windows100|  楼主 | 2023-12-20 10:25 | 只看该作者
出了问题以后,我对这个有问题的产品,开了打印程序,打印ADC值,是变化的。芯片本身ADC功能也正常。对不能采集到ADC数据的,只要复位一次就好了。困惑中

使用特权

评论回复
板凳
hjl2832| | 2023-12-21 08:47 | 只看该作者
不明白你为流程里为什么每次都要禁止ADC,而且还禁止了它的时钟,你又开启的连续转换模式。如果硬要这样操作,那么ADC就要重新初始化更好一些,而不是只开ADC时钟和使能它。
像你这种应用,不是应该使用单次模式更好吗?

使用特权

评论回复
地板
windows100|  楼主 | 2023-12-22 08:49 | 只看该作者
hjl2832 发表于 2023-12-21 08:47
不明白你为流程里为什么每次都要禁止ADC,而且还禁止了它的时钟,你又开启的连续转换模式。如果硬要这样操 ...

每次都禁止是为了低功耗,开启连续转换是为了使用中断,并且我不止一路ADC,有时候开启一路,有时候开起2路。

使用特权

评论回复
5
豌豆爹| | 2024-2-27 10:05 | 只看该作者
建议确保BGR稳定后再进行ADC转换,并在程序中增加BGR的等待时间。

使用特权

评论回复
6
cr315| | 2024-2-27 11:40 | 只看该作者
可以考虑在复位后或在ADC异常情况下重新初始化ADC。

使用特权

评论回复
7
内政奇才| | 2024-2-27 13:30 | 只看该作者
检查电源管理相关的寄存器设置和状态。

使用特权

评论回复
8
海滨消消| | 2024-2-27 15:30 | 只看该作者
确保ADC引脚的配置正确,包括模拟输入引脚没有配置错误,以及引脚上的任何保护电路或滤波电路不会干扰ADC的采样。

使用特权

评论回复
9
麻花油条| | 2024-2-28 10:00 | 只看该作者
可能是硬件问题,考虑检查ADC模块、BGR模块以及相关电路是否存在故障。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

272

帖子

1

粉丝