
芯片: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获取测量结果。 为什么芯片内部测得温度与实际温度相差巨大,高出部分是如何产生的? |
关于STM32G474 双BANK的测试问题
STM32G473 flash擦除时程序卡死
STSPIN32G4内部驱动电压输出问题
comp输出用于tim1刹车,消隐源和pwm输出是不是得是同一个TIM?
STM32G431内部运放1和2输出连接的ADC为什么不是OPAMP?
workbench6.3.2生成的代码,无法用pilot电机参数识别,无法通讯
stm32G474的flash模式如何判定?single bank 和dual bank
STM32G474高精度定时器HRTIM配置死区互补PWM极端输出问题
hrtim里update reset和reset update同时打开不会互相激励吗,另外为什么现在定时器周期值不用-1了
STM32G473 解除写保护失败
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位,工作愉快!