完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
你好。一直在熟悉STM32L011F4P6芯片。我使用焊接在电路板上的 20 针芯片作为我的测试设备。我正在使用 Nucleo-f429zi 作为编程/调试设备。我已经进行了必要的更改,并且正在使用 SWD 接头连接到我的芯片并对其进行编程。Nucleo 板上的 SWD 引脚连接到芯片以提供电源和复位。我正在使用 arm-none-eabi-gcc 工具链与 VSCodium 进行开发。一切顺利,我使用GDB将程序加载到芯片上,并在st-util工具的帮助下运行/调试连接。
现在,回答我的问题。我一直试图达到 1uA 待机模式电流消耗,但卡在 15uA。这甚至不符合文档的睡眠模式消耗水平。我没有使用 HAL 库,而是一直采用“裸机”方法。我正在使用 stm32cubel0 文件(包括所有 CMSIS)并且一切似乎都运行良好。我一直在阅读数据表和用户指南,试图找出我在将芯片发送到待机模式之前准备过程中可能遗漏的任何步骤。我的“prepsleep”函数在调用 __WFI() 函数之前立即运行。我可以通过断开从 Nucleo 板的电源到芯片的 VDD 线并在其上进行测量来使用电流表(万用表)监控功耗。这表明我的芯片在使用 MSI 时钟以默认 2.1 MHz 启动时运行代码时使用了大约 300-400 uA。然后我可以观察到,一旦芯片到达代码中的 WFI 点,它就会下降到 15 uA。我错过了什么步骤?或外设或时钟未禁用?我的 prepsleep 函数如下所示:
作为旁注,我还使用 Nucleo-32 STM32L011K4T6 板重现了这一结果,结果相同(测量微小跳线引脚的电流消耗)。 |
|
相关推荐
1个回答
|
|
在检查我的“prepsleep”功能和大量调试之后,我意识到设备实际上并没有退出我的“prepsleep”功能并且没有到达 WFI 调用(因此没有进入正确的待机状态)。
感谢 JW 的协助。对于任何感兴趣的人,我的“prepsleep”修订版现在可以使用了。看来我可能一直在尝试执行一些不必要的步骤和/或可能以错误的顺序执行。我的工作“prepsleep”功能如下,我在调用 WFI 后成功达到 <1uA:
|
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2699 浏览 1 评论
3229 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1801 浏览 1 评论
3639 浏览 6 评论
6019 浏览 21 评论
957浏览 4评论
1327浏览 4评论
1382浏览 3评论
201浏览 3评论
190浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-12 23:32 , Processed in 1.173373 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号