查看: 4024|回复: 12

[求助] KL26, ADC如何关闭?

[复制链接]

该用户从未签到

9

主题

52

帖子

1

注册会员

Rank: 2

积分
138
最后登录
2018-11-29
发表于 2016-3-5 15:04:31 | 显示全部楼层 |阅读模式
我们正在做系统功耗优化,对于ADC,如果不需要用了,想关闭它,降低功耗。
我们ADC配置成 与一个区间范围进行比较,如果测量值不在这个范围内,则引发中断。只测一个通道。
ADC本身由LPTMR触发,频率为500HZ,LPTMR的输入时钟来自LPO,

我们如果开机时不初始化ADC,VLPS模式下,电流会少40uA;
如果打开过ADC,那么不论怎么关,都会多出40uA来。
我们尝试了:
1)关LPTMR,没效果
LPTMR0_CSR &= ~LPTMR_CSR_TEN_MASK;

2)将ADC触发模式改为软件触发,但我们不去触发
ADC_SC2_REG(ADC0_BASE_PTR) &=  ~ADC_SC2_ADTRG_MASK ;

哪位大师能否指点一下,如何关闭已经运行的ADC,达到我省电的目的?
我知道答案 目前已有12人回答
回复

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2016-3-7 11:07:28 | 显示全部楼层
楼主你好!
如果不用ADC模块的话,你可以直接在SIM中ADC模块。
比如关闭ADC0的时钟,SIM_SCGC6[ADC0]=0.
回复 支持 反对

使用道具 举报

该用户从未签到

9

主题

52

帖子

1

注册会员

Rank: 2

积分
138
最后登录
2018-11-29
 楼主| 发表于 2016-3-7 11:43:06 | 显示全部楼层
好的,试试看,谢谢!
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2016-3-7 13:11:18 | 显示全部楼层
yangzhengyong 发表于 2016-3-7 11:43
好的,试试看,谢谢!

好的,后续如果还有问题,欢迎继续跟帖交流。
回复 支持 反对

使用道具 举报

该用户从未签到

9

主题

52

帖子

1

注册会员

Rank: 2

积分
138
最后登录
2018-11-29
 楼主| 发表于 2016-3-7 14:34:09 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2016-3-7 13:11
好的,后续如果还有问题,欢迎继续跟帖交流。

试了,好像没改善:
通风良好的情况下(电风扇吹着),如果ADC开着,即使关时钟,电流依然有40~50uA;
不初始化ADC,就10uA以下了;

发现这个对温度很敏感,如果电风扇关掉,上述电流值会有显著变大,比如开着ADC时,会到70~100uA;
回复 支持 反对

使用道具 举报

该用户从未签到

9

主题

52

帖子

1

注册会员

Rank: 2

积分
138
最后登录
2018-11-29
 楼主| 发表于 2016-3-7 14:39:35 | 显示全部楼层
本帖最后由 yangzhengyong 于 2016-3-7 14:41 编辑

这是我们的ADC驱动代码

adc.zip

6.43 KB, 下载次数: 12, 下载积分: 威望 1

回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2016-3-7 14:44:54 | 显示全部楼层
yangzhengyong 发表于 2016-3-7 14:34
试了,好像没改善:
通风良好的情况下(电风扇吹着),如果ADC开着,即使关时钟,电流依然有40~50uA;
不 ...

ADC通道关闭,ADC时钟模块关闭,也会这样?
回复 支持 反对

使用道具 举报

该用户从未签到

9

主题

52

帖子

1

注册会员

Rank: 2

积分
138
最后登录
2018-11-29
 楼主| 发表于 2016-3-7 14:49:10 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2016-3-7 14:44
ADC通道关闭,ADC时钟模块关闭,也会这样?

恩,你看看我写的有问题吗,ADC_Disable();
进入VLPS之前会调用。
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2016-3-7 15:30:59 | 显示全部楼层
yangzhengyong 发表于 2016-3-7 14:49
恩,你看看我写的有问题吗,ADC_Disable();
进入VLPS之前会调用。

ADCx_SC1n[ADCH]=0b11111;
回复 支持 反对

使用道具 举报

该用户从未签到

9

主题

52

帖子

1

注册会员

Rank: 2

积分
138
最后登录
2018-11-29
 楼主| 发表于 2016-3-7 16:00:44 | 显示全部楼层
本帖最后由 yangzhengyong 于 2016-3-7 16:13 编辑
FSL_TICS_ZJJ 发表于 2016-3-7 15:30
ADCx_SC1n[ADCH]=0b11111;

效果还是一样,

就是上述文件,我如果注释掉 ADC_Init();  ADC_ReInit(); ADC_Disable(); 那么进入VLPS之后,电流就很小,10uA以内; 如果打开这些代码,即使打上你刚刚这个补丁,效果还是一样, 50~70uA   。。。
ADC_SC1_REG(ADC0_BASE_PTR,0) = ADC_SC1_REG(ADC0_BASE_PTR,0) | 0x1f;


what's the promblem?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-22 06:44 , Processed in 0.105323 second(s), 31 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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