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.

[参考译文] MSP430FR5994:可以在运行时执行期间获取 Energytrace 的能耗数据、并使用该值确定执行行为。

Guru**** 2581345 points
Other Parts Discussed in Thread: MSPDS, ENERGYTRACE

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/981344/msp430fr5994-it-is-possible-to-obtain-energy-consumption-data-of-energytrace-during-run-time-execution-and-use-this-value-to-determine-the-execution-behavior

器件型号:MSP430FR5994
主题中讨论的其他器件:MSPDSENERGYTRACE
我知道 Energytrace 工具可用于获取能耗数据。
但我的程序希望与这些能耗数据交互。 这在技术上是可行的吗?
感谢您的建议。 
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您的应用是什么?

    数据由调试器收集并发送到 PC。 我们不会向客户开放通信端口。

    您可以收集电压和电流来简单地计算功率假设。

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

    感谢您的回复。

    我的应用是间歇性计算系统。

    需要在消耗一定的能量后执行相应的功能(以模拟发生电源故障后恢复的系统)。

    电路板上的运行程序如何收集电压和电流信息?

    或者、我能否监控计算机上 Energytrace (或 MSPDS)的功耗数据并通过 UART 将其发回电路板上的程序?



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

    您可以下载 MSPDS—MSP 调试堆栈开发包并使用 MSP430.dll 来控制 Energytrace。 它可能是一种解决方案。

    您可以在以下链接中找到下载函数的说明: www.ti.com/.../MSPDS

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

    感谢您的回复。
    我尝试在 ubuntu16.04系统下构建 MSP 调试堆栈开发包。

    但在 README-BUILD.txt 中、以下陈述让我感到困惑。
    -hidapi.h 必须复制到 thirdparty\include
    必须将-hidapi.lib 复制到 thirdparty\lib

    但 MSP 调试堆栈开发包中没有名为 thirdparty 的文件夹。

    是否有任何官方安装说明或使用示例供我参考?

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

    其中包括:

    很抱歉、支持团队已从 TI 移除。 我只能提供有限的支持。

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

    感谢您的回复。

    现在、我通过 UART 成功地将数据从 PC 发送到电路板。
    但是、当尝试将数据从电路板传输到 PC 时。
    发生了一些错误。  


    以下是我的测试程序。

    首先、我将程序闪存放入电路板中、然后在 CCS 中打开终端、但我没有得到预期的字符 AAAAAAAAAA...

    您是否知道错误发生在何处?

    我认为波特率设置是正确的、因为在将数据从 PC 传输到电路板时没有问题。
    我真的不知道出现了什么问题。

    #include <msp430.h>
    int main(void){
        WDTCTL = WDTPW | WDTHOLD;
        
        UCA0CTLW0 |= UCSWRST;
        UCA0CTLW0 |= UCSSEL__SMCLK;
        UCA0BRW = 8;
        UCA0MCTLW = 0xD600;
    
        P2SEL1 &= ~BIT0;
        P2SEL0 |= BIT0;
    
        PM5CTL0 &= ~LOCKLPM5;
    
        UCA0CTLW0 &= ~UCSWRST;
    
        int i;
        while(1){
            UCA0TXBUF = 'A';
            for(i=0; i<10000; i++){}
        }
    
        return 0;
    }

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

    感谢您的回复。

    现在、我通过 UART 成功地将数据从 PC 发送到电路板。
    但是、当尝试将数据从电路板传输到 PC 时。
    发生了一些错误。  


    以下是我的测试程序。

    首先、我将程序闪存放入电路板中、然后在 CCS 中打开终端、但我没有得到预期的字符 AAAAAAAAAA...

    您是否知道错误发生在何处?

    我认为波特率设置是正确的、因为在将数据从 PC 传输到电路板时没有问题。
    我真的不知道出现了什么问题。

    #include <msp430.h>
    int main(void){
        WDTCTL = WDTPW | WDTHOLD;
        
        UCA0CTLW0 |= UCSWRST;
        UCA0CTLW0 |= UCSSEL__SMCLK;
        UCA0BRW = 8;
        UCA0MCTLW = 0xD600;
    
        P2SEL1 &= ~BIT0;
        P2SEL0 |= BIT0;
    
        PM5CTL0 &= ~LOCKLPM5;
    
        UCA0CTLW0 &= ~UCSWRST;
    
        int i;
        while(1){
            UCA0TXBUF = 'A';
            for(i=0; i<10000; i++){}
        }
    
        return 0;
    }

    ----------------------------------------------------

    更新了 
    我找到了错误。 
    底部的两行是正确的。 

        //P2SEL1 &= ~BIT0;
        //P2SEL0 |= BIT0;
        
        P2SEL0 &= ~BIT0;
        P2SEL1 |= BIT0;