This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430F5359:LPM3使用外部晶体XT2

Guru**** 2595800 points
Other Parts Discussed in Thread: MSP430F5359, MSP430F5436

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/632532/msp430f5359-lpm3-using-external-crystal-xt2

部件号:MSP430F5359
主题中讨论的其他部件: MSP430F5436


我的主板上有一个带外部的MSP430F5359处理器
14Mhz XT2晶体.  XT2用作ACLK和SMCLK的时钟源。
用于闪烁LED的定时器ISR使用ACLK作为时钟源。

 当XT2用作时,功耗不会下降
输入LPM3时ACLK的时钟。 处理器似乎可以
当XT2用作时钟源时,不会进入休眠模式。

如果ACLK的时钟源更改为REFOCLK (UCSCTL4 =拉美经济体系__REFOCLK + TELS__REFOCLK + SELM__XT2CLK)
进入LPM3时功耗下降,并且情况正常。


在LPM3中,当外部晶体用作ACLK的时钟源时,为什么我们继续消耗电力? 。



// Timer1中断服务例程
#pragma vector=Timer1_A0_vector
__interrupt void Timer1_A0_ISR(void){
   P8OUT ^= BIT1;//切换LED
}

INT MAIN ( void )

   
   WDTCTL = WDTPW + WDTHOLD;  
   
   P1SEL = 0x00;P1DIR = 0x00;P1IE = 0x00;
   P2SEL = 0x00;P2DIR = 0x00;P2IE = 0x00;
   P3SEL = 0x0F;P3DIR = 0x00;
   P4SEL = 0x00;P4DIR = 0x00;
   P5SEL = 0x00;P5DIR = 0x00;
   P6SEL = 0x00;P6DIR = 0x00;
   P7SEL || BIT2+BIT3;
   P8SEL = 0x00; P8DIR |= 0x02;
   P9SEL = 0x00;P9DIR = 0x00;
   
   UCSCTL0 = 0x0000;       
   
   UCSCTL1 = DISMOD + DCORSEL_0;
   
   UCSCTL2 = FLLN0 + FLLD_0;   
   
   UCSCTL3 = SELREF_REFCLK | FLLREFDIV_0;
   
  // UCSCTL4 =拉美经济体系_ REFOCLK + TELS__REFOCLK + SELM__XT2CLK ;//LPM2  工作电流消耗低
   UCSCTL4 =拉美_ XT2CLK + SESS_ REFOCLK + SELM_ XT2CLK;//电流消耗约为80 mA
   
   UCSCTL5 = DIVM__1 + DIVs__16 + DIVA__16;
   
   UCSCTL6 = XT1OFF + XCAP_3+XT1DRIVE_0+XT2OFF + XT2DRIVE_0;
   
   UCSCTL8 = 0x00;//禁用条件时钟请求
   
   同时(SFRIFG1和OFIFG){             //检查OFIFG故障标志
   同时(((SFRIFG1 & OFIFG))         //检查OFIFG故障标记
   {    
      //清除OSC故障标志
      UCSCTL7 &=~(DCOFFG + XT1LFOFFG + XT1HFOFFG + XT2OFFG);//清除XT2,XT1,DCO故障标志
      SFRIFG1 &=~OFIFG;             //清除OFIFG故障标记
   }
   UCSCTL6 &=~(XT1DRIVE1_L+XT1DRIVE0);//降低驱动强度
   }
   
   
   TA1CCTL0 = CCIE;                      
   TA1CCR0 = 5万;
   TA1CTL = tassel_1 + MC_1 + TCLR;// ACLK是时钟源
   
   __bis_sr_register(LPM3_bits + GIE);      //输入LPM3,启用中断
   __no_operation();
   
   }

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    XT2振荡器电路使用电源。 用户指南的5.2 第5节说:

    XT2在以下任一情况下启用:

    • XT2是ACLK (拉美经济体系={5,6,7})的来源,并通过LPM3 (OSCOFF =0)处于活动模式(am)
      […]

    如果不想让XT2保持运行,请为ACLK选择不同的时钟源。 如果要禁用ACLK,请改用LPM4。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    非常感谢您的迅速回复。

    我知道,如果选择XT2作为在LPM2中激活的ACLK时钟,它将会运行。 问题是在MSP430F5359芯片上,当XT2用作ACLK的时钟源时,功耗大于200 mW。



    我还碰巧拥有一个使用7 MHz时钟频率的MSP430F5436AIZQW芯片
    晶体连接到可用的XT2引脚。 代码几乎相同
    上面所示的配置,并使用XT2晶体在LPM2中获取ACLK
    此芯片的功耗低于3 mW。


    为什么XT2晶体振荡器在MSP430F5359芯片上功耗如此高,而在MSP430F5436AIZQW芯片上性能相当好。

    在使用XT2振荡器时,是否有任何可用于降低MSP430F5359芯片功耗的变通办法?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    有关此问题的注意事项是,在MSP430F5436上运行的相同代码的功耗约为3mW,而在MSP430F5359上运行的代码的功耗约为240mW。 这是一个巨大的差异。 在这两种情况下,处理器大部分时间都处于LPM3状态,但计时器熄灭时除外。 在ISR计时器中,我们将输出状态更改为LED,然后返回休眠状态。 非常简单。  

    熟悉这些处理器的人能解释一下这种巨大的功耗差异吗?  

    TI选择迁移到论坛模式以获得支持,但我们已经使用了几个多星期,而且还没有看到很多帮助,这让人很沮丧。 如果有人能就这一问题提供一些信息,我们将不胜感激。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    全部,

    请注意,F5436与F5359不同。 参考用户指南,详细说明了XT2在哪些条件下保持启用状态。

    因此,如果按照用户指南中的说明将XT2用于获取ACLK计时器,则XT2将在LPM3中保持打开状态:

    所以我想说F5359的表现就像指定的那样更有趣的是F5436。 正如您在用户指南中所看到的,此设备已被单独处理,因此不再推荐用于新设计。

    因此,请检查F5436勘误表中的UCS2是否适用于您:

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    非常感谢您的回复,Dietmar。

    问题不在于时钟已启用-在这两种情况下都应该启用。 问题在于,当F5359的大部分时间都花在LPM3上时,它正在燃烧1/4瓦特。 两个处理器都启用了XT2时钟,并且计时器ISR定期唤醒,以将引脚状态更改为LED,而F5436的功耗仅为3mW,而F5359的功耗几乎增加了100倍。 F5359似乎有人阻止其进入LPM3。

    再次感谢您在这里的时间!

    丰富

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    丰富,

    为了确保我的所有信息都正确,这是您的时钟方案正确:

    XT2具有14 MHz晶体,与驱动器级别1一起使用

    ACLK = XT2CLK / 16 =~875 kHz

    SMCLK = REFOCLK / 16 = ~2 kHz

    MCLK = XT2CLK / 1 = 14 MHz

    定时器A的来源为ALCK ,表示运行频率为875 kHz。

    F5436的功耗为3mW,即DVCC=3.0V时为9mA

    但F5359耗电240 mW意味着在DVCC=3.0V时为80 mA

    因此,即使我们不输入LPm3 80mA,如果您使用上述设置运行,即使在"活动模式"下也会输入过多。

    但是,看看您的代码,我知道它可能来自哪里:

       P1SEL = 0x00;P1DIR = 0x00;P1IE = 0x00;
       P2SEL = 0x00;P2DIR = 0x00;P2IE = 0x00;
       P3SEL = 0x0F;P3DIR = 0x00;
       P4SEL = 0x00;P4DIR = 0x00;
       P5SEL = 0x00;P5DIR = 0x00;
       P6SEL = 0x00;P6DIR = 0x00;
       P7SEL || BIT2+BIT3;
       P8SEL = 0x00; P8DIR |= 0x02;
       P9SEL = 0x00;P9DIR = 0x00;

    您将所有GPIO设置为输入浮点,因此即使在F5436上,也可能有很高的不可预测电流消耗。

    请通过将所有未使用的针脚从外部拉低或向上/下拉或将其设置为输出方向并驱动高或低来端接这些针脚。

    请检查这是否有帮助?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您所提到的设置正确无误,是的,我们看到的是大约73mA @3.28V,这似乎过高。  

    根据您的建议,我们尝试将端口置于输出方向PxDIR =1,驱动输出低(PxOUT = 0x00),驱动输出高(PxOUT = 0xFF),启用上拉/下拉电阻器(PxREN =1),禁用上拉/下拉电阻器(PxREN =0)。 所有这些都没有降低LPM2中XT2振荡器的功耗。

     

       P1SEL = 0x00;P1DIR = 0xFF;P1IE = 0x00;P1OUT = 0x00;P1REN = 0xFF;

       P2SEL = 0x00;P2DIR = 0xFF;P2IE = 0x00;P2OUT = 0x00;P2REN = 0xFF;

       P3SEL = 0x0F;P3DIR = 0xFF;P3OUT = 0x00;P3REN = 0xFF;

       P4SEL = 0x00;P4DIR = 0xFF;P4OUT = 0x00;P4REN = 0xFF;

       P5SEL = 0x00;P5DIR = 0xFF;P5OUT = 0x00;P5REN = 0xFF;

       P6SEL = 0x00;P6DIR = 0xFF;P6OUT = 0x00;P6REN = 0xFF;

       P7SEL || BIT2+BIT3;P7OUT = 0x00;P1REN = 0xFF;P7REN = 0xFF;

       P8SEL = 0x00; P8DIR = 0xFF;P8OUT = 0x00;P8REN = 0xFF;

       P9SEL = 0x00;P9DIR = 0xFF;P9OUT = 0x00;P9REN = 0xFF;   

    这绝对值得尝试,但我对结果并不感到惊讶,因为我们可以通过将ACLK源从XT2更改为内部时钟来降低功耗:

    // UCSCTL4 =拉美经济体系_ REFOCLK + TELS__REFOCLK + SELM__XT2CLK ;//LPM2工作电流消耗低
    UCSCTL4 =拉美_ XT2CLK + SESS_ REFOCLK + SELM_ XT2CLK;//电流消耗约为80 mA

    一如既往地感谢你们的帮助!!

    丰富

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    在CPU处于低功耗模式(如LPM2)且计时器从外部XT2晶体运行的情况下,是否有人在MSP430F5359上进行过任何功率测量?

    谢谢!
    丰富

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    启用XT2振荡器时,MSP430F5359芯片即使在LPM3中也会消耗大量功率。 我们知道F5436芯片上LPM3中的XT2振荡器的功耗降低了100倍。 我们已遵循您关于更改GPIO引脚状态的建议,但无法降低功耗。

    如果您知道XT2振荡器在MSP430F5359芯片上消耗大量功率的其他原因,请提供建议。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们最终获得了MSP-TS430-PZ100C目标板。 我在XT2输入中添加了一个晶体,并运行了我们在其他目标上一直使用的代码。 在空闲模式下(在一段时间循环中旋转,而计时器偶尔会唤醒并切换LED),CPU消耗约7mW。 当我将While回路更改为LPM3呼叫时,功率下降到1mW左右。 这明显低于我们在主板上看到的240mW。

    我认为我们可能有一个或两个损坏的CPU -我正在制造一些新的主板来测试它。 我会在收到结果后发布结果。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Rich,您好!

    很抱歉回复较晚,但您执行的关联测试非常有用。 我检查了我们以前的数据库,没有发现XT2和LPM2有任何明显的问题。 下一步是我尝试重新创造你的行为。

    但是,如果您不能在TI参考主板上使用您在上面发布的代码,我假定我也不能复制。 因此,在您对新主板执行测试后,请及时通知我们,并告知我们它是否与PCB或损坏的部件相关。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    丰富,

    我使用16 MHz晶体(14 MHz不可用)在PZ封装的F6659 revA设备上重新测试了您发布的代码,该代码工作正常,并且设备在未连接LED的情况下消耗~435uA。 因此,要么您的PCB出现问题,要么您的部件确实损坏。 验证新PCB后,请随时更新。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    假设处理器已损坏,我有另一个主板,它只使用处理器和外部晶体(以及类似电路所需的无源器件)。 我再次加载了代码并测量了电路。 仍为240mW,带有外部晶体。 然后,我回到原理图,注意到我们将VCORE连接到了3.3V导轨,这是一个错误。 验证这可能是问题的根源并不迅速,因此问题是:这是否足以导致CPU消耗如此多的电量? 如果是,为什么它只在启用外部时钟时才显示?

    我猜是这样,但如果有人对芯片内的内容有更好的了解,我会很高兴看到他们同意。 我讨厌旋转板,也不会错。

    谢谢!
    丰富

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    丰富,

    感谢您的更新。 我不会怀疑这是否会以某种方式损坏设备,因为Vcore域是一个低电压域,晶体管不是针对这种压力而制造的。 我想我不需要说这是不具体的!

    您必须从DVCC和470nF电容器上断开Vcore,否则无法保证功能和规格。

    我假设当您只以1 MHz运行时,您也会看到更高的电流,但与高频晶体相比,值更低。
    最后,很难确定具体发生了什么,因为在这种情况下,设备不会制造出来。

    无论如何,您找到了这种行为的根本原因,这太棒了!