查看: 3511|回复: 7

MC9S08MM128低功耗问题

[复制链接]

该用户从未签到

8

主题

49

帖子

0

新手上路

Rank: 1

积分
187
最后登录
1970-1-1
发表于 2012-2-16 15:49:47 | 显示全部楼层 |阅读模式
我使用的是最小系统,使用的是内部时钟,上电简单设置后就进入低功耗模式,总体功耗约有110uA左右,其中电源芯片部分约占了10几个uA,另外100个uA的电流到底用在哪里了?数据手册上说的只有不到1uA的,我找了很久也没找到原因在哪里。附件图片是原理图,其中有几个专用模块没有使用,引脚是接地的,我不肯定是不是应该接地,但我去掉不接地还是一样,电流几乎没有变。请大伙发表下意见,以下是基本代码:
void main(void)

   Delay_ms(5);              //
   DisableInterrupts;        //禁止总中断 
   MCU_Init();               //系统基本设置
   Delay_ms(10);             //
   PORT_Init();              //I/O口初始化
   Delay_ms(10);             //
   EnableInterrupts;         //允许总中断
   asm stop;                 //进入停止模式2或3
}
void MCU_Init(void)
{
   SOPT1 = 0x23;       //禁用看门狗,使用停止模式  
   SPMSC1 = 0x00;      //禁用低电压检测
   //SPMSC2 = 0x03;      //允许进入局部断电模式(STOP2)
   SPMSC2 = 0x02;      //允许进入低功耗模式(STOP3)
   SCGC1 = 0x00;       //禁用外围模块时钟
   SCGC2 = 0x00;
   SCGC3 = 0x00;
}
void PORT_Init(void)
{
  PTAD = 0x00;   //A 端口数据寄存器        (输出0)
   PTADD = 0xFF;  //A 端口数据方向寄存器    (输出方式)
   PTAPE = 0x00;  //A 端口上拉使能寄存器    (上拉禁用)
   PTASE = 0x00;  //A 端口斜率使能寄存器    (输出斜率控制被禁止)
   PTADS = 0x00;  //A 端口驱动强度选择寄存器(低输出驱动强度)
   PTAIFE = 0x00; //A 端口输入低通滤波器禁用
  
   PTBD = 0x00;
   PTBDD = 0xFF;
   PTBPE = 0x00;
   PTBSE = 0x00;
   PTBDS = 0x00;
   PTBIFE = 0x00;
   
   PTCD = 0x00;
   PTCDD = 0xFF;
   PTCPE = 0x00;
   PTCSE = 0x00;
   PTCDS = 0x00;
   PTCIFE = 0x00;
  
   PTDD = 0x00;
   PTDDD = 0xFF;
   PTDPE = 0x00;
   PTDSE = 0x00;
   PTDDS = 0x00;
   PTDIFE = 0x00;
  
   PTED = 0x00;
   PTEDD = 0xFF;
   PTEPE = 0x00;
   PTESE = 0x00;
   PTEDS = 0x00;
   PTEIFE = 0x00;
  
   PTFD = 0x00;
   PTFDD = 0xFF;
   PTFPE = 0x00;
   PTFSE = 0x00;
   PTFDS = 0x00;
   PTFIFE = 0x00;
  
   PTGD = 0x00;
   PTGDD = 0xFF;
   PTGPE = 0x00;
   PTGSE = 0x00;
   PTGDS = 0x00;
   PTGIFE = 0x00;
  
   //IRQ引脚设为上拉输入,不设置这个不能进入STOP2模式
  PTEDD &= ~BIT4;
  PTEPE |= BIT4;
}
编辑说明:增加了红色显示部分
mc9s08mm128.JPG

MC9S08MM128.pdf

548.34 KB, 下载次数: 20, 下载积分: 威望 1

回复

使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2012-2-17 09:59:36 | 显示全部楼层

    RE:MC9S08MM128低功耗问题

    IO口漏电流引起的,你休眠的时候把IO口设置为输入或者高组态的。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8

    主题

    49

    帖子

    0

    新手上路

    Rank: 1

    积分
    187
    最后登录
    1970-1-1
     楼主| 发表于 2012-2-17 13:47:23 | 显示全部楼层

    回复:MC9S08MM128低功耗问题

    回复第 2 楼 于2012-02-17 01:59:36发表:
    IO口漏电流引起的,你休眠的时候把IO口设置为输入或者高组态的。 

    从代码上看我并没有在休眠时把IO口设置为输入或者高阻态的吧?除了中断引引脚设为上拉输入外。其实I/O口的设置我已经试过上拉输出1,上拉输出0,不上拉输出1,不上拉输出0,上拉输入,浮空输入,默认设置,除了浮空输入和默认设置电流有mA级别外,其它的都差不多,都在110uA左右,我已经排除了电源芯片、电流表、测试方法的问题,但始终查不出来100uA的电流到底是用在哪里了?另外想问下版主,从电路上看,未用的专用模块这样接法是对的吗?(我试过把那些模块引脚不接地电流还是差不多)
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2012-2-17 14:08:43 | 显示全部楼层

    RE:MC9S08MM128低功耗问题

    IO口应该设置为输入状态,或者高组态。问题还是电路板的其他器件引起的。还有注意RS232,他的电流在电路中不可忽视。最理想的状态是,只有最小系统,没有其他器件的情况下,测试电流。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8

    主题

    49

    帖子

    0

    新手上路

    Rank: 1

    积分
    187
    最后登录
    1970-1-1
     楼主| 发表于 2012-2-17 15:28:28 | 显示全部楼层

    回复:MC9S08MM128低功耗问题

    回复第 4 楼 于2012-02-17 06:08:43发表:
    IO口应该设置为输入状态,或者高组态。问题还是电路板的其他器件引起的。还有注意RS232,他的电流在电路中不可忽视。最理想的状态是,只有最小系统,没有其他器件的情况下,测试电流。 

    我使用的就是最小系统啊!说IO口应该设置为输入状态,这个我试过还是一样,没多大区别,但是说设成高阻态,你是指使能了外部模块的引脚吧?如果是未使用的I/O设置成高阻态不对吧?我试过也不行,电流反而还很大,有mA级别!
    MC9S08MM128RM.pdf里第61页有下面这一句话:Immediately after reset, all of these pins are configured as high-impedance general-purpose inputs with internal pull-up devices enabled.
    第147页有下面这一段话:Not all general-purpose I/O pins are available on all packages. To avoid extra current drain from floating  input pins, the user’s reset initialization routine in the application program must either enable on-chip pull-up devices or change the direction of unconnected pins to outputs so the pins do not float.
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2012-2-17 16:05:12 | 显示全部楼层

    RE:MC9S08MM128低功耗问题

    我并不是只你未使用的IO口设置,而是你当前已经使用的。设置为输入IO就可以了。另外你还要考虑LED灯等外部器件。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8

    主题

    49

    帖子

    0

    新手上路

    Rank: 1

    积分
    187
    最后登录
    1970-1-1
     楼主| 发表于 2012-2-17 16:38:33 | 显示全部楼层

    回复:MC9S08MM128低功耗问题

    回复第 6 楼 于2012-02-17 08:05:12发表:
    我并不是只你未使用的IO口设置,而是你当前已经使用的。设置为输入IO就可以了。另外你还要考虑LED灯等外部器件。 

    实在抱歉,原来是我的原理图误导了你,前面我的文字说明不够清楚。我的PCB板设计是很多元器件的,但为了测功耗我的最小系统只焊了供电部分、单片机、下载接口和复位系统,其它都是空的,而且我检查过单片机的引脚没有不该连接的连在一起的情况,也确保不是电源部分的问题。 你说的设置为输入IO,我试过了,不管是上拉还是不上拉,复位默认设置也试过,都不行,其中除了默认设置耗电很大外,其它的都差不多,都是在110uA左右,不会偏差超过10uA以上。
    mc9s08mm128修改.JPG
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8

    主题

    49

    帖子

    0

    新手上路

    Rank: 1

    积分
    187
    最后登录
    1970-1-1
     楼主| 发表于 2012-2-21 13:59:33 | 显示全部楼层

    原因找到啦!

    原来是芯片的第二个引脚IRO要接地!!!
    真TNND,其中一个数据手册看了几次都找不到相关说明,最后在另外一个手册(第一楼附件MC9S08MM128.pdf第22页)的小字体注悉说明文字里找到测试条件是在IRO接地情况下,今天测试果然问题在这里! 我在MC9S08MM128RM.pdf的相关模块找了那么久也没找到,不熟悉飞思卡尔的手册编排造成!
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-8-3 18:15 , Processed in 0.098048 second(s), 27 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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