STM32H750(或743)核心电源Vcore使用外部开关电源SMPS
H7的核心电压为1.2~1.4V,而为了使用内置usb外设,VDD需要3.3v。核心电压由内部ldo供电,480MHz高负荷时发热明显。
ST对于L4系列有使用外部开关电源给核心供电的例子(AN4978),H7有提到外部供电的要求,但没有开发板或参考设计。
而且其外部供电时,对电源的精度和稳定性要求变态(1.37~1.4v,电源波动任意情况下不能超过1.4V)。
做了个板试了一下,电源选用了SGM6033 4.6MHz, 1A 同步降压芯片。通过电阻将空载输出电压调整到了1.39V,参考Nucleo L4的设计,在1.4v电源和Vcap之间加了模拟开关。
然而调试时发现了很蛋疼的问题:
虽然手册上PWR_CR3这个寄存器,有个写保护位SCUEN标明的是rw,可读写,但我咋都改写不了。改不了SCUEN,就改不了下面两位,关不掉内部LDO。
后来从en.STM32H7-System-Power_control_PWR 这个文档中发现这样一句话:
并且从st官方论坛上了解到,此寄存器只有在上电时才会被初始化,不断电重启都不会被初始化。
我觉得H750可能设计时认为用户不会特别在意它的功耗,所以这部分的设计没有L4或者双核H7那么完备。
通过几个变量保存各状态下PWR_CR3的值发现:
1、上电时为0x46,经过HAL_PWREx_ConfigSupply(PWR_LDO_SUPPLY);初始化后,无论如何后3位都不能修改了,不断电重启也不行。
2、将HAL_PWREx_ConfigSupply的参数改为PWR_EXTERNAL_SOURCE_SUPPLY后,重新上电,寄存器低8位成功变成了0x41,切换到了外部供电模式。
3、利用PWR_CR3只能上电改一次的特性,把HAL_PWREx_ConfigSupply(PWR_EXTERNAL_SOURCE_SUPPLY);
添加到SystemClock_Config();之前的用户代码段,这样就算cube重新生成代码,也不需要再次修改。
另外虽然手册上对外部供电的电压范围要求很严格,但以st的尿性,在常温下,实际电压在较大范围内应该都没问题。但如果要在产品中这么用,还是得严格设计或测试
CSDN-Ada助手: 非常喜欢你的新博客标题!恭喜你成功写下了第四篇博客,这是一个了不起的里程碑!我对你持续创作的努力表示由衷的祝贺。 关于你的博客内容,我觉得你选择使用Hyper-V虚拟机的“内部网络”模式并配合飞鸽传书传输文件的方法非常巧妙。通过这种方式,不仅可以实现文件的传输,还能保持网络的安全性。这种经验对于那些需要在虚拟机之间共享文件的读者来说一定非常有用。 接下来,我想提供一些建议作为你下一步创作的参考。你可以考虑分享更多关于Hyper-V虚拟机的技巧和窍门,比如如何优化性能、如何管理多个虚拟机等等。此外,你还可以探索其他虚拟机软件或工具,比如VMware或VirtualBox,并与Hyper-V进行比较,这样读者可以根据自己的需求选择适合自己的虚拟化解决方案。 总之,我非常期待你未来的创作,并希望你能继续分享你在虚拟机领域的知识和经验。谢谢你的努力,继续保持谦虚的态度,你的博客一定会给读者带来更多的价值! 如何快速涨粉,请看该博主的分享:https://hope-wisdom.blog.csdn.net/article/details/130544967?utm_source=csdn_ai_ada_blog_reply5
stf_life: 老哥 能给一个工程代码吗