现在把一个项目从STM32F413移植到STM32U575,以前用函数HAL_RTCEx_BKUPWrite() 往F413 里面Backup RAM写的内容,短暂断电一段时间后再上电,内容不会丢失,我判断是Vdd 上连接有较大系统滤波电容,放电慢,Vdd 不会在短时间内归零,在重启之后,内容还在,不过长时间断电之后,Backup RAM内容就会丢失,这样就可以大致判断系统是经历了长时间的断电,这个功能期望在移植之后仍保留,而且F2,F4,L4 系列都是这样的。不过使用STM32U575时,不管断电时间多么短,重启之后,Backup RAM 里面的内容都会被清零,我查阅资料,并操作了TAMP->CR2,TAMP->CR3 这些寄存器的对应操作位,都无法阻止每次上电把Backup RAM 里面的内容清零,有解决方案吗? |
STM32U575的备份域的备份寄存器和备份RAM是靠VBAT供电的。这个引脚的供电为了保证安全性有一个电压BOR电路监控,所以当电压掉到1.65V之后,就会复位备份域,所以就会清零。 楼主可否通过PVD检测系统掉电,然后进入低功耗模式。当系统重新上电检测到上电复位标志,那么就是掉电足够长时间了(低于最小工作电压)。 当然外部给VBAT加个电容也许还能长一点点时间。
STM32U575的备份域的备份寄存器和备份RAM是靠VBAT供电的。这个引脚的供电为了保证安全性有一个电压BOR电路 ...
您好!谢谢你的回答, 我们的电路的VDD 和VBAT 是连接在一起的。 我理解的是如果产生了BOR 复位,STM32U575 肯定会把Backup RAM 的内容清除,且没有机制是可以阻止这种清除的,而F2,F4,L4 等ST系列芯片同样情况的BOR 复位,是不会清除Backup RAM 的内容的,对吧? 用PVD中断进入低功耗模式的办法,延长VDD 电压降低到BOR 阈值电压1.65V的时间,确实是一个办法,但延长的时间有限,不能达到足够足够长,而F2,F4,L4 系列芯片在大概在断电一分钟之内VDD 电压降到0.3V之前,Backup RAM 的内容都不会丢失。
我看了下U5,F4,L4几个系列的备份域的复位条件,都是一样的。按理F4可以,U5也可以,你确认下U5系列的备份SRAM使能没有,即它的时钟开启没有,它的时钟是单独开关的。
您好!谢谢你的回答, 我们的电路的VDD 和VBAT 是连接在一起的。 我理解的是如果产生了BOR 复位,STM ...
这个问题硬件能有效解决:在VDD和VBA之间接个二极管,VBA对地加个10uF电容,可以保存好几天, 有条件的可以采用法拉电容,这样几个月都丢不了数据,也不需要后背电池。
这个问题硬件能有效解决:在VDD和VBA之间接个二极管,VBA对地加个10uF电容,可以保存好几天, 有条件的可 ...
这个应该解决不了问题吧? 这是U575 的防TAMPER 机制在BOR 复位以后(VDD 电压降低引起的),自动清除了Backup RAM 的内容, 跟VBAT pin 脚有没有电没关系,VBAT 脚即使是满满的电压,它也会照样清除。