搜索
bottom↓
回复: 12

关于AVR省电模式

[复制链接]

出0入0汤圆

发表于 2013-5-13 23:13:50 | 显示全部楼层 |阅读模式
我搞ATMEGA16的  节能模式  很久了,都搞不了,在这跪求个位大神帮忙,发个例程或资料我学下。16的说明书我看了也做不出。。太菜了。还有I/O时钟clkI/O是什么时钟?是要外接的么?T/C2 的 32.768 kHz 振荡器又是什么??原谅我的无知。。。。       过后比有回报。君子一言驷马难追!!

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2013-5-14 08:47:12 | 显示全部楼层
小兄弟 慢慢来,先把跑马灯基本I/O口搞懂网上很多历程 主动学习。
  

  /********************关闭部分功能,按自己设计需求自行添加删减(这个只是一个思路,自己学着运用)************************/
  TWCR &= ~(1<<TWIE);关闭TWI
  TWCR = (1<<TWINT)|(1<<TWSTO);
  TWCR &=~((1<<TWEA)|(1<<TWIE))|(1<<TWEN);//关闭TWI中断。
  
  UCSR1B &= ~((1<<TXEN1)|(1<<RXEN1));  //关闭UART
  UCSR0B &= ~((1<<TXEN0)|(1<<RXEN0));
  ADCSRA = 0x00; //disable adc
   
/************************设置MCU睡眠(睡眠有多种方式,自己看看手册里MCUCR的描述)***********************************/
   MCUCR = 0x30; //使能休眠功能,设为掉电模式。   
   asm("SLEEP");


把基础搞定其余是思维。加油吧兄弟。还有莫元哦 呵呵

出0入0汤圆

发表于 2013-5-16 13:20:07 | 显示全部楼层
这个问题比较复杂,关键你要实现什么功能,功耗多少能接受。外围电路是一个什么样的结构,如果有点亮的发光管,那你就没有什么必要做低功耗了

出0入0汤圆

发表于 2013-5-18 23:04:00 | 显示全部楼层
工作频率尽量最低,没用到的模块时钟全部关闭,设置外部中断唤醒省电(掉电)模式

出0入0汤圆

发表于 2013-5-19 15:51:42 | 显示全部楼层
我已经可以把功耗做的很低了。可以和我说说你的需求。

出0入0汤圆

发表于 2013-5-19 16:29:09 | 显示全部楼层
现在做的睡眠模式下电流为4uA,

出0入0汤圆

 楼主| 发表于 2013-5-21 23:47:39 | 显示全部楼层
浮生似海 发表于 2013-5-14 08:47
小兄弟 慢慢来,先把跑马灯基本I/O口搞懂网上很多历程 主动学习。
  

avr单片机我一些基础程序我都学得差不多了,就是这个节能模式很少见,所以不太熟悉。      asm("SLEEP");是什么意思?是不是还有加个32.768K的晶振呢?  我要实现的功能是去控制一个大功率LED灯。每隔段时间就去PWM调下亮度,期间就省电模式。

出0入0汤圆

 楼主| 发表于 2013-5-21 23:50:26 | 显示全部楼层
fanice 发表于 2013-5-19 15:51
我已经可以把功耗做的很低了。可以和我说说你的需求。

就是PWM去控制一个大功率的LED的亮度。当然还要AD转换得到的参数去控制。每隔端时间就控制下,期间就休眠。可以教下我么?

出0入0汤圆

发表于 2013-5-22 09:28:06 | 显示全部楼层
学习      

出0入0汤圆

发表于 2013-5-22 10:47:15 | 显示全部楼层
a5123058 发表于 2013-5-21 23:47
avr单片机我一些基础程序我都学得差不多了,就是这个节能模式很少见,所以不太熟悉。      asm("SLEEP"); ...

asm("SLEEP");  休眠语句呀。    晶振可用内部的 熔丝位配置下就行了。
你用看门狗做定时唤醒也可以  功耗大概在7ua左右  整体休眠还要看你的负载。 用定时器做休眠唤醒 功耗会很大。
整个过程是这样的:你先把设备运行输出、之后配置单片机端口该关闭的关闭、之后打开看门狗定时器按照你的设计设定合适的时间,再之后调用 “asm("SLEEP");”进行AVR休眠(看数据手册休眠那节),最后一个大循环,整个系统就这样运行  明白了吗?  我给你的代码已经有很清晰的思路了。整体框架要有然后逐个击破 。基础还是很重要哦。

出0入0汤圆

 楼主| 发表于 2013-5-23 09:20:39 | 显示全部楼层
浮生似海 发表于 2013-5-22 10:47
asm("SLEEP");  休眠语句呀。    晶振可用内部的 熔丝位配置下就行了。
你用看门狗做定时唤醒也可以   ...

我看了数据手册,您说的看门狗应该是掉电模式的吧?看门狗溢出最长时间是2.1S,但如果我想时间更长,比如10分钟要怎么做?  休眠指令后那个大循环是怎样的?按我理解,我会这样写:运行主程序,完成所有任务后进入休眠,达到一定时间后自动唤醒,继续执行SLEEP后的语句。                  我还是不太明白异步模块,它的时钟是外接还是内部独立的一个时钟?  谢谢了

出0入0汤圆

发表于 2013-5-24 09:25:29 | 显示全部楼层
a5123058 发表于 2013-5-23 09:20
我看了数据手册,您说的看门狗应该是掉电模式的吧?看门狗溢出最长时间是2.1S,但如果我想时间更长,比如 ...

首先“大循环”的意思就是 你程序不是执行一次就不执行了吧 “运行》休眠》唤醒,再运行》休眠》唤醒······”就是循环的意思了。十分钟休眠你可以唤醒后什么都不做记一个标记循环N次后达到你的休眠时间了,再运行所需程序(就是加判断语句)。至于你说的异步模块 指的是哪个模块 单片机运用的是一个时钟 ,看门狗有单独的时钟也是内部有的 去看AVR整体内部框图。如果外部控制其它模块那个模块需要时钟那就外挂啦。

出0入0汤圆

发表于 2013-6-10 11:38:52 | 显示全部楼层
这个东西我觉得还是多看看数据手册吧,呵呵
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 01:25

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表