STM32G071

01、问题的描述

某客户使用 STM32G071 芯片从 standby 模式下唤醒,想要 SRAM 的数据在退出 standby模式后得以保持。根据手册的描述,配置了相应的比特位,但是发现数据仍然保持不了。

02、问题的复现

根据客户的描述,以及 STM32G071 的最新版参考手册 RM0444 发现,在 standby 模式下,可以通过设置 PWR_CR3 的 RRS 比特位去控制 SRAM 的保持能力,相应的 API 接口函数为HAL_PWREx_EnableSRAMRetention()、HAL_PWREx_DisableSRAMRetention() ;

1.png

基于例程

......\STM32Cube\Repository\STM32Cube_FW_G0_V1.6.1\Projects\NUCLEOG071RB\Examples\PWR\PWR_STANDBY\EWARM 

以及相应的 NUCLEO-G071 开发板,修改部分代码,根据 LED4 的闪烁频率去判断从 Standby 模式退出后,SARM 里面的数据是否能够保持住。

2.png

03、问题的排查

基于上述的配置,简单的测试了一下,发现即使 HAL_PWREx_EnableSRAMRetention() 使能了,但是测试代码中的 sram_magic_word 的值没有保持住,显示的是 LED4 的闪烁频率为1s。

究竟是什么原因导致了数据没有保持住呢,再次查看参考手册,确定了只要使能 PWR_CR3的 RRS 比特位即能保持住,对比了 PWR_CR3 的 RRS 比特位的说明,在 standby 模式下,SRAM 的数据可以保持,但是当退出 standby 模式呢?

3.png

由于测试的是从 standby 模式退出,standby 模式退出后会进行 reset,该复位导致了 SRAM的数据被覆盖或丢失?通过查阅资料,发现是编译器的配置导致的。以 IAR 为例,查看其默认的脚本文件 icf;

4.png

也就是说,在程序执行的时候,会将 readwrite 的数据进行自动的初始化,而具有.noint 性质的块则不初始化,所以这儿还需要将 SRAM 里面要保持的数据放置在.noinit 的 section 中。

04、问题的解决

知道原因之后,相应的措施也就明朗了,修改 icf 文件如下:

5.png

并将想要保持的 SRAM 中的数据前面加关键字__no_init :

6.png

再次下载程序,发现 LED4 的闪烁频率跟随 RRS 比特位值的不同而不同,符合预期。另外在实现的过程中,需要说明两点的是: 

1、修改 icf 后,可以通过 map 文件查看,应如下文所示,如果发现“P2”mismatch 之类的提示,检查下该 section 中的变量,如上面提到的 sram_magic_word,可能被编译器优化了,在map 中也搜索不到该名称,则可以在实际的代码中使用该变量进行一些运算或判断,然后重新编译即可解决。

7.png

2、当调试器连着 IAR 调试界面运行的时候,无论 RRS 的值设置为 0 或 1,G071 从standby 模式下退出后,SRAM 中的内容均可以保持,如果需要验证 RRS 的值的影响,则建议断开调试器,让程序 free-running ,可以通过比如 LED 的闪烁频率去判断结果。

来源:STM32单片机

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 12

意法半导体推出了一个支持可编程电源(PPS)的 USB Type-C™Power Delivery 3.0参考设计,最大输出功率27W,在不连接充电线的情况下零功耗,可加快好用、小巧、高效的电源适配器设计。USB PPS有助于节省电能,减少设备充电时间和散热量,降低设备端的物料清单成本。

STEVAL-USBPD27S参考设计集成STM32G071微控制器(MCU)、最先进的PWM控制器STCH03和TCPP01-M12 USB Type-C 保护IC,其中,STM32G071单片集成功能完整的USB Type-C Power Delivery控制器。这个参考设计让用户可以快速开发USB快充电源适配器,满足欧盟能效标准European CoC V5 Tier-2和美国能效标准DOE Level VI规定的四级最低平均工作能效和待机功耗低于40mW的要求。

STM32G071 MCU处理整个数字控制部分的功能,包括副边VBUS电压控制算法,以及意法半导体独有的自适应同步整流专利算法,从而提高充电效率。VBUS控制算法符合USB Type-C供电和PPS规范,并实现了电缆压降补偿,以精确控制供电电压。PPS可以在3.3V-11V之间以20mV步长逐步调整输出电压值,50mA步长逐步调整限流值,以最大程度地减小充电期间的功率变换损耗。

作为基于MCU的解决方案,该参考设计为用户提供了更多的设计灵活性,可以实现其他的客户定制应用层,引入USB Power Delivery标准的升级改进功能。

STEVAL-USBPD27S电路板的功率级采用意法半导体的高集成度STCH03 PWM控制器,该控制器内置高压启动电路、原边恒流输出调节和先进电源管理功能。为准谐振零压开关(ZVS)反激式转换器设计,STCH03确保功率变换器具有高能效、超低待机功耗和出色的动态性能。

STD7N65M6 MDmesh M6原边高压STPOWER MOSFET优化了软开关和硬开关模式的开关性能,为应用设计带来极高的能效。

最后,TCPP01-M12 为USB VBUS引脚和配置通道(CC)引脚提供±8kV ESD静电放电保护,符合IEC 61000-4-2第4级安全要求。VBUS引脚和CC引脚之间还有短路保护功能,以及误用坏线导致设备损坏的防护功能。

STEVAL-USBPD27S是一个小巧紧凑的立即可用的评估板模组,外观尺寸为59mm x 35mm x 21mm,功率密度达到每立方英寸10.2W。

产品详情访问

https://www.st.com/en/evaluation-tools/steval-usbpd27s.html

关于意法半导体

意法半导体拥有46,000名半导体技术的创造者和创新者,掌握半导体供应链和最先进的制造设备。作为一家独立的半导体设备制造商,意法半导体与十万余客户、数千名合作伙伴一起研发产品和解决方案,共同构建生态系统,帮助他们更好地应对各种挑战和新机遇,满足世界对可持续发展的更高需求。意法半导体的技术让人们的出行更智能,电力和能源管理更高效,物联网和5G技术应用更广泛。详情请浏览意法半导体公司网站:www.st.com

围观 23
订阅 RSS - STM32G071