完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
最近在做一个案子要用低功耗,网上看了这个芯片可以代替STM8,自己试了下,能进入掉电模式,但是功耗还是有3.3MA,有哪位大神能提供下10ua的例程吗?
|
|
相关推荐
1个回答
|
|
十微安的低功耗还是比较苛刻的要求,需要在硬件和软件上都做一些优化才能实现。以下是一些可能有用的方法:
1. 将芯片工作在低频率下,可以减少功耗,同时也可以使用PWM调节输出。 2. 将不需要的模块关闭,比如ADC、DAC、UART等。 3. 使用芯片提供的Power Down模式,这种模式将芯片的除RAM、RTC以外的其他所有模块都关闭,可以达到很低的功耗。 4. 减小供电电压,这将会减小功耗,但需要注意芯片的工作范围。 以下是一个简单的例程,实现了N76E003进入Power Down模式并每隔一秒钟唤醒一次,大概可以达到10-20微安的功耗。 ```c #include "N76E003.h" #include "SFR_Macro.h" #include "Function_define.h" void main() { PCON = 0x02; // 进入Power Down模式,清除WDT计时器并关闭XTAL运行模式 PCON |= SET_BIT4; // 设置PD中断标志位,下降沿触发PD中断 ENABLE_GLOBAL_INTERRUPT; // 常规中断全局使能 ENABLE_PD_INTERRUPT; // PD中断使能 while(1) { _nop_(); _nop_(); _nop_(); _nop_(); // 等待中断触发唤醒,这里可以加入进入其他低功耗模式的代码 } } #pragma vector=0x02 // PD中断向量地址 __interrupt void PD_ISR(void) { PDIF = 0; // 清除PD中断标志位 // 这里可以添加一些操作,例如打印调试信息、驱动外设、修改配置等 set_PCON_PD; // 进入Power Down模式 } ``` 需要注意的是,每次唤醒之后代码都会从上次的位置开始执行,因此需要处理好所有状态和变量。另外,如果需要进行ADC和DAC等操作,可以使用Timer PWM模块实现模拟输出。 |
|
|
|
只有小组成员才能发言,加入小组>>
661 浏览 0 评论
1083 浏览 1 评论
2454 浏览 5 评论
2779 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2615 浏览 6 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
638浏览 9评论
634浏览 7评论
请教大神怎样去解决iMX6Q在linux3.0.35内核上做AP失败的问题呢
765浏览 6评论
610浏览 5评论
651浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-8 16:38 , Processed in 1.066589 second(s), Total 80, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号