主题中讨论的其他部件: MSP430F2252
您好,
我的客户有以下问题,您能否推荐解决方案?
我们将MSP430FR5.8471万用作最新的系统控制器
主板系列(以前我们使用的是MSP430F2252)。
我们正在尝试的一项新功能是一种高功率消耗状态
部件置于JTAG模式时发生。 我们没有这个问题
使用MSP430F2252。 我们希望有一些端口配置
不熟悉此零件上需要在零件之后进行设置的
进入JTAG模式。 您是否可以告诉我们或指出我们
至?
谢谢!
Chuchen
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.
您好,
我的客户有以下问题,您能否推荐解决方案?
我们将MSP430FR5.8471万用作最新的系统控制器
主板系列(以前我们使用的是MSP430F2252)。
我们正在尝试的一项新功能是一种高功率消耗状态
部件置于JTAG模式时发生。 我们没有这个问题
使用MSP430F2252。 我们希望有一些端口配置
不熟悉此零件上需要在零件之后进行设置的
进入JTAG模式。 您是否可以告诉我们或指出我们
至?
谢谢!
Chuchen
您好,
我是目前正在使用MSP430FR5.8471万的实际工程师,尤其是这个问题,希望我能提供更多的背景信息。
我们的MCU具有一组比较复杂的P1-4端口引脚连接,因此很难使用示例代码测量我们的目标功耗。 如果是这样,我会花时间在其中一个示例中正确配置这些引脚,但即便如此,您也需要我们的原理图和连接的零件引脚说明的片段。 在继续这条道路之前,我想说我非常确信我设置的PIN配置是正确的,或者至少不是此特定问题的根源。
我已经看到了错误配置的引脚在功耗方面的外观,并且此问题的行为有所不同。 我的假设是,有些东西没有被芯片重置(断言/释放重置引脚)清除,并且与JTAG模块相关。 只有在将JTAG序列发送到PJ引脚后未完全断开MCU的所有电源时,才会出现此错误电源状态。 我相信这会导致JTAG模块即使在芯片重置后仍保持开启状态。
我已经浏览了该MCU的用户指南,数据表和勘误表,还没有看到JTAG模块的启用位寄存器。 我真的想知道什么寄存器操作可以确保JTAG模块处于非活动状态,就像在低电压BOR重置的情况下一样。 我看了一下sysctl,SYSJMBC和PMMCTL等,但没有找到我要找的东西。 JTAG密码寄存器的软件锁定功能是否会将JTAG模块置于禁用状态?
我已经使用 slac536j.zip中的msp430fr59xx_lpm3_02.c示例代码确认了这种高功耗状态。 我只编辑了它以删除WDT ISR。
#include <MSP430-h> int main(void) { WDTCTL = WDTPW | WDTTMSEL | WDTSSEL_2 | WDTIS_5;// VLOCLK, 1s中断 // SFRIE1 |= W技工 经; //启用WDT中断 //配置GPIO P1OUT = 0; P1DIR = 0xFF; P2OUT = 0; P2DIR = 0xFF; P3OUT = 0; P3DIR = 0xFF; P4OUT = 0; P4DIR = 0xFF; PJOUT = 0; PJDIR = 0xff; //禁用GPIO通电默认高阻抗模式以激活 //先前配置的端口设置 PM5CTL0 &=~LOCKLPPM5; //时钟系统设置 CSCTL0_H = CSKEY >> 8; //解锁CS寄存器 CSCTL1 = DCOFSEL_0; //将DCO设置为1 MHz CSCTL2 = SELM__DCOCLK | SESL__DCOCLK | LAST__VLOCLK; CSCTL3 = DIVA__1 | DIVM__1; //将所有分隔器设置为1 CSCTL4 = LFXTOFF; CSCTL0_H = 0; //锁定CS寄存器 // P1DIR |= BIT0; //打开LED __bis_sr_register (LPM3_bits | GIE); __no_operation(); //用于调试器 }
在我通过JTAG对部件进行编程,然后断开并重新连接3V电池后,会产生额定电流消耗。 测得的电流为~0.6uA。
在我通过JTAG (甚至只是通过JTAG序列)对部件进行编程后,将产生高电流消耗,并且从不断开电源。 测得的电流为~129uA。
您好,Ling,感谢您的努力。
在初始编程过程中,设备加载了一个内部3V电池,其唯一目的是保持MSP的工作状态。 因此,为了解决这一问题,我们需要要求用户在每次MSP固件更新时拆卸机柜并断开/重新连接电池。 显然,这对于现场的设备来说是极其困难的。 话虽如此,我们确实已将RST引脚配置为用于重置功能,并使用该引脚来执行POR级别重置。 遗憾的是,这不会使我们返回到额定功率状态。
您好,Robert:
很抱歉耽误您的时间。 要回答有关从CPU端重置JTAG的可能性的问题,您可以执行的最强大的操作是生成SW BOR。 相应的位放置在PMMCTL0寄存器中。 这是PMMSWBOR。
如果这不能解决问题,则很可能没有其他解决方案,只有使用JTAG通信。 原因基本上是JTAG/调试逻辑- CPU关系背后的系统理念。 JTAG需要能够控制器件的CPU端,而不是相反,因为这会产生其它无法解决的问题。
此致
彼得