OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 65|回复: 7

关于实际项目中ADC应用的问题

[复制链接]

7

主题

34

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
229
金钱
229
注册时间
2024-8-27
在线时间
27 小时
发表于 3 天前 | 显示全部楼层 |阅读模式
1金钱

硬件电路

硬件电路
使用STM32F030C8T6做的一个充电桩项目中,ADC电压检测实际电路如上所示,实测CP电压12.06V,ADC检测点电压为3.09V,读到的ADC值是3860左右,由公式ADC_VOLT=ADC_VAL*3.3/4096,验证得到ADC采样得到的值应是正确的,但是按这个电路怎么计算得到检测点电压3.09V,所示实际CP电压与ADC转换应该怎么计算?求各位大佬指点一下

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

12

主题

3369

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8577
金钱
8577
注册时间
2020-5-11
在线时间
3993 小时
发表于 前天 11:04 | 显示全部楼层
叠加定理 了解一下;
戴维南定理 了解一下;
专治疑难杂症
回复

使用道具 举报

7

主题

34

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
229
金钱
229
注册时间
2024-8-27
在线时间
27 小时
 楼主| 发表于 前天 13:00 | 显示全部楼层
本帖最后由 KKGG 于 2025-3-31 13:10 编辑
LcwSwust 发表于 2025-3-31 11:04
叠加定理 了解一下;
戴维南定理 了解一下;

我试了用基尔霍夫节点电流方法计算,以及使用PROTEUS仿真,计算出来的ADC检测点电压大概都应该是2.98V-3.0V左右,但实际测到的检测点电压是3.09V,不知道是啥原因,会不会和单片机的ADC检测引脚的程序配置有关系,从而导致的检测点电压升高了?
回复

使用道具 举报

12

主题

3369

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8577
金钱
8577
注册时间
2020-5-11
在线时间
3993 小时
发表于 前天 13:15 | 显示全部楼层
KKGG 发表于 2025-3-31 13:00
我试了用基尔霍夫节点电流方法计算,以及使用PROTEUS仿真,计算出来的ADC检测点电压大概都应该是2.98V-3. ...

3.09V是万用表测的吗?PA7配置的是什么模式?
专治疑难杂症
回复

使用道具 举报

7

主题

34

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
229
金钱
229
注册时间
2024-8-27
在线时间
27 小时
 楼主| 发表于 前天 13:37 | 显示全部楼层
LcwSwust 发表于 2025-3-31 13:15
3.09V是万用表测的吗?PA7配置的是什么模式?

对,用万用表量的,PA7配置的是常规的模拟输入模式/* CP信号检测端口PA7初始化配置 */
        GPIOA->MODER &= ~(3 << 14);
        GPIOA->MODER |=  (3 << 14);                          //设置为模拟模式
        GPIOA->PUPDR &= ~(3 << 14);                          //设置为无上下拉模式
回复

使用道具 举报

12

主题

3369

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8577
金钱
8577
注册时间
2020-5-11
在线时间
3993 小时
发表于 前天 13:50 | 显示全部楼层
KKGG 发表于 2025-3-31 13:37
对,用万用表量的,PA7配置的是常规的模拟输入模式/* CP信号检测端口PA7初始化配置 */
        GPIOA->MODER &= ...

我没见过这种寄存器,所以没办法判断。建议自己多作检查,再试试不同的输入电压,或断开R1、R2、R3后再测,

或者给R5并联一个电容,降低采样率、转换速率。
专治疑难杂症
回复

使用道具 举报

7

主题

34

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
229
金钱
229
注册时间
2024-8-27
在线时间
27 小时
 楼主| 发表于 前天 14:02 | 显示全部楼层
本帖最后由 KKGG 于 2025-3-31 14:03 编辑
LcwSwust 发表于 2025-3-31 13:50
我没见过这种寄存器,所以没办法判断。建议自己多作检查,再试试不同的输入电压,或断开R1、R2、R3后再测 ...

CP电压是由单片机TIM3定时器决定输出高电平还是PWM的,结果我改了TIM3的相关寄存器配置,发现ADC检测电电压就降到3.0V了,好像恢复正常了,这该怎么解释,CP电压一直是高电平12V的,只是改了寄存器相关配置就变正常了,改了这几个寄存器:TIM3->CCER &=  ~(1 << 0);                          //CC1E=1:OC1输出失能                        TIM3->CCMR1 |=  (5 << 4);                          //OC1M=101: CP信号设置为强制高电平输出
                        TIM3->CCMR1 &= ~(3 << 0);                          //CC1S=00: CC1通道设置为输出模式
                        TIM3->CCER |=  (1 << 0);                           //CC1E=1:OC1输出使能
回复

使用道具 举报

12

主题

3369

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8577
金钱
8577
注册时间
2020-5-11
在线时间
3993 小时
发表于 前天 14:18 | 显示全部楼层
KKGG 发表于 2025-3-31 14:02
CP电压是由单片机TIM3定时器决定输出高电平还是PWM的,结果我改了TIM3的相关寄存器配置,发现ADC检测电电 ...

那就用示波器看看。
万用表测的是平均值,ADC采的是瞬时值,得用示波器确定ADC采样时的电压。
专治疑难杂症
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-4-2 01:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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