豌豆佛 发表于 2018-4-3 09:53:55

STM32H743II芯片ADC的Vrefbuf配置问题

本帖最后由 豌豆佛 于 2018-4-3 10:55 编辑

最近在使用H7的ADC功能时,将Vrefbuf配成了使用内部电源做参考的模式,没有外接参考电压源。此时使用AD通道采集的模拟量基本上都是满量程的0xFFFF,使用万用表测量Vref引脚的电压,发现只有0.8V。使用仿真器查看Vrefbuf寄存器的值,结果为0x00000000:
寄存器地址:

寄存器数据:

寄存器定义:


并不是我使用CubeMX配的模式,而且寄存器的值无法手动修改。使用CubeMX将Vrefbuf配置成外部参考电压模式时,外接一个3.3V的参考电压,此时模拟量采集才算正常。继续观察Vrefbuf的寄存器配置,依然是0x00000000;我想问下有没有遇到跟我一样情况的?此部分寄存器无法修改是不是被保护了?



maxtch 发表于 2018-4-3 21:28:10

手册里面其实讲的很明白了:最低两位 00 代表 VREF+ 内部接地。如果你要用 ADC,这两位不应该都是 0。如果在这种情况下你依然强行灌入 3.3V 恐怕会有烧东西的风险。

feixiang20 发表于 2018-4-3 22:12:43

内部参照电压VREFINT和ADCx_IN17相连接,它的作用是相当于一个标准...ADC的参考电压都是通过Vref+提供的,貌似输入电压只能限制在2.5V。你把寄存器的配置修改下看看呢,修改vref有附接电容看看呢

豌豆佛 发表于 2018-4-4 09:52:09

maxtch 发表于 2018-4-3 21:28
手册里面其实讲的很明白了:最低两位 00 代表 VREF+ 内部接地。如果你要用 ADC,这两位不应该都是 0。如果 ...

不管把Vrefbuf配成什么模式,初始化之后,查看这个Vref寄存器的值都是0;
测量Vref的电压值是0.8V,这时候外接电压的话,AD采样的结果是正确的;
也就是说 ,AD采样正不正确跟Vref的配置没关系,只跟外部接不接基准源有关,这个跟手册里的描述是不一致的。现在怀疑是芯片内部的Vref有损坏的可能。

豌豆佛 发表于 2018-4-4 09:53:03

feixiang20 发表于 2018-4-3 22:12
内部参照电压VREFINT和ADCx_IN17相连接,它的作用是相当于一个标准...ADC的参考电压都是通过Vref+提供的,貌 ...

初始化修改寄存器没效果,手动修改也改不了。
还有一种可能是,这个Vrefbuf 就仅仅是个buffer,并不能提供电压。

maxtch 发表于 2018-4-4 14:36:54

豌豆佛 发表于 2018-4-4 09:52
不管把Vrefbuf配成什么模式,初始化之后,查看这个Vref寄存器的值都是0;
测量Vref的电压值是0.8V,这时 ...

内部 VREF 应该是要从某处打开的

maxtch 发表于 2018-4-4 14:37:23

豌豆佛 发表于 2018-4-4 09:52
不管把Vrefbuf配成什么模式,初始化之后,查看这个Vref寄存器的值都是0;
测量Vref的电压值是0.8V,这时 ...

内部 VREF 应该是要从某处打开的

wen1121 发表于 2018-10-17 17:11:29

STM32H750也是这个样子

longxguang 发表于 2018-12-29 16:22:16

wen1121 发表于 2018-10-17 17:11
STM32H750也是这个样子

各位,我也遇到类似的问题,VRFBUF寄存器不能修改,请问有人解决这个问题吗?

li4671 发表于 2019-8-2 15:54:07

所以这个问题最终结论就是VREFBUF不可以用是吗?
页: [1] 2
查看完整版本: STM32H743II芯片ADC的Vrefbuf配置问题