芯片:STM32G474 问题1:内部通道Viefint Channel测量结果3400mV与实际万用表数据3300mV相差100mV? 使用__HAL_ADC_CALC_VREFANALOG_VOLTAGE获取测量结果。 为什么芯片内部测得电压高于实际电压,高出部分是如何产生的? 问题2:内部通道Vbat Channel测量结果3430mV与实际万用表数据3300mV相差130mV? 为什么芯片内部测得电压高于实际电压,高出部分是如何产生的? 问题3:内部通道Tempertature SensorChannel测量结果58℃与芯片表面实际温度38℃相差20℃? 使用__HAL_ADC_CALC_TEMPERATURE获取测量结果。 为什么芯片内部测得温度与实际温度相差巨大,高出部分是如何产生的? |
《MCSDK5.X中增加位置环》提及mc_position.c/mc_position.h
STM32G473 DRDY不置位?
stspin32G4这颗mcu里面集成的是哪一款G4?能不能用cubemx来进行配置
STM32G473是否支持硬件AES?
STM32G473VET6同时使用6个片上放大器(OPAMP)的PGA加外部偏置模式,引脚位置让差分信号走线分离,信号有无较大影响?
stm32G474的flash模式如何判定?single bank 和dual bank
STM32G474 ADC无法正常启动转换
STM32G474 HRTIM无法正常触发ADC
STM32G431RB,变量接受不到串口发下去的数据
foc电流环无法正确维持Iq在自己设定的数值。
2. 軟件部分注意ADC的校準以及采樣時間要充分。
估算VREF+的電壓公式中只有一個ADC内部參考電壓值是轉換過來的。 這個通道轉換是有時間要求的。如果轉換時間短,得到的值偏小,那麽自然計算結果就會偏大。
此外,内部溫度傳感器適合估算内部結溫的,本身半導體運行發熱,以及與外界隔著封裝,測量環境溫度就不合適。
1、这几个内部信号,都有最小采样时间的要求,其中Vbat的测量最少需要12us采样时间,其它两个为4~5us.
配置注意采样时间的合理配置。不影响整体性能情况下,尽可能将采样时间配置长点。
2、你说测得的内部Vrefint的结果为3400mv ,这就差太远了。它不可能到这个数。
它一般在1.2v左右。我刚才用手边G4开发板测量,结果为1.207v。
你好好确认下你的测量过程。我很好奇你是怎么用万用表测得到它的。
我也顺便测量VBAT的结果,我将VBAT与 板上3.3v相连,ADC测得的结果为3.304v。
没有什么偏差。
3、至于温度我也 测量 了。温度结果就没去计算了。对你来说先把第一步搞好,
把测量搞准。一步步来。
4、顺便提醒下 启动ADC前做下校准。保持系统供电稳定。
感谢您准确且非常针对性的回复,是我描述的不准确。我利用Vrefint的测量换算出VDDA的大小,实际测量的是VDDA的数值,两者相差100mV.
实际上我同时也测量了VBAT,电路上VBAT实际连接通过一个小电感到VDDA,这两者之间似乎有35mV的压差,此时读出的数据在3430mV,也许是采样时间设置的太小了 ,我晚些时候将采样时间放大看看结果。
非常感谢您的准确的回答,我的采样时间过小了,我将改善采样时间再试试。
再次感谢您耐心的解答。
感谢2位大神指点:
是采样时间过短影响了采样结果,当电压采样的结果趋于准确时,温度偏差也相应减小。
实际上3个问题归结于一个问题,合理的设置采样周期和采样时间可以得到准确的结果。
再次感谢2位,工作愉快!