6261平台睡眠后定时器的使用
FAQ说明
路过看看
我是来学习的
路过,看看
由于系统的特性, 26M时钟似在未激活时, 不定期处于 sleep 状态. 以前看些文档, 似有印象说明该不定时激活 26MHz 完全取决 GSM RF 时隙需求. 故我们在调试时, 似无法准确观察和把握 26MHz 的关闭/开启的规律. 表现出的结果, 就是你说的, 时钟变慢且无规律. 有时似还基本准确, 有时会延长 *2 周期亦不稀奇.
使用 gpt timer 没啥困难的, 我印象是仔细阅读 FAQ, 并上手多次调试即可. 但能提前告诉你勿走弯路的经验是, 使用 gpt timer, 我们发现 system 将永远无法 sleep! 这是 FAQ 故意没有提到的. 希望对你有用.
路过看看
按你这么说系统就一直就sleep不了了?
是的, 将大约导致 10mA 的多余current消耗.
这仅是我个人经验, 也不排除我的实验有偏差, 对FAQ理解不够. 你可自行尝试.
谢谢,我这边是可以用GPt进入到真正sleep 的,在关闭lcd睡眠后电流1ma左右。
感谢您的分享
咦, 我几个月前的尝试未成功.
不仅如此, 由于 gpt timer 调试的经验, 跟着我甚至检查发现某个系统固有错误,
由于系统某个 gpt timer 未能release, 导致激活键盘/LCD后, 无法再次返回 sleep. 并自行做了修改, 校正了这个系统BUG.
是否这是我的版本号较低, 本身存在 gpt timer 代码未能升级的问题?
应如何分析理解这个现象? 使用 32K 的 gpt timer, system 还能正常进入 sleep...
如果 32K 仅仅从 26MHz 分频而得到, 如保持 32K 的 gpt timer 正常工作, 难道不就意味着必须保持 26MHz 振荡? 26Mhz 振荡不关, 又如何进入 sleep? 似很难理解...
我的理解是低速的32k跟大多数处理器一样,是独立的存在芯片内部的,节点休眠作用的,应该不是由26M分频过来的。理论上sleep后32k还能工作,还有你说的激活LCD唤醒睡眠不了的bug,我特意看了一下好像也存在这个问题,你还记得是怎么修改的呢?
我的理解是低速32k应该跟不多数处理器一样是可以独立存在芯片内部的,起节点睡眠作用的,应该不是有26M分频过来的,所以26M睡眠的时候32k能正常工作,还有你说的唤醒LCD后,用gpt进不了sleep,你还记得怎么解决的吗?我发现唤醒后他会有一段时间一直维持着10几ma,之后还是能够进入到sleep的,不知道这个时间mtk内部是怎么定义的
帮你顶一下,学习了。
如果你的分析成立, 我特意看了一下 mt6261 的管脚, 似无 32KHz 实时振荡 input.
故该 32KHz 振荡很可能被集成在芯片内部.
我遇到的现象激活后 10ma 永远存在, 不会过段时间 sleep. 我记得花了好几天跟进代码,
反复阅读理解系统键盘驱动模式, 分析键盘驱动应该 hardware driver 和 software
driver 都有使用, 并利用 gpt timer 或者是判断长按, 或者是判断去抖. 由于分析不出哪个
gpt timer 造成系统无法 sleep, 我记得似在某个系统完成键盘事件后的 callback function,
对这几个 gpt timer 都做了 release, 这个 BUG 就解除了.
现在我似有猜想, 1. 32kHz 振荡电路很可能被 mt6261 内部集成? 2. 某些solution 的代码
或者有开这个 32Khz 振荡, 某些 solution 的代码未开?
mtk 的资料实在是太不透明了...
没错,唤醒后一段时间后系统会进入sleep,只有srv_backlight_all_lcd_off直接进入sleep的,你说的我再找一下看看能不能去掉这个时间,谢谢了;32k的这个应该就是MTK内部集成降低功耗的,跟TI的一样可以用过软件实现开关的