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.

[参考译文] CCS/MSP430F67641:CCS 的 MSP430F67641三相电能测量源代码

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/649887/ccs-msp430f67641-msp430f67641-three-phase-energy-measurement-source-code-for-ccs

器件型号:MSP430F67641

工具/软件:Code Composer Studio

对于三 相电能测量系统 MSP430F67641应用、我从 Web 下载此源代码、但它是 IAR。 但我使用的 IDE 是 CCS。 我的问题:在哪里可以获得 CCS 的源代码。

谢谢、致以最诚挚的谢意

周露西

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

    您好 Lucy、

    感谢您的发帖。 遗憾的是、现有能源库源代码功能支持 IAR、但不支持 CCS。 但是、我们正在主动监控 CCS 支持请求、如果有任何更改、我一定会更新您的信息。

    目前、我建议使用 IAR 作为 IDE。将 IAR 项目移植到 CCS 极具挑战性。 例如、工具包(数学)函数已在汇编语言中实现、必须进行移植。 下面的主题中对此进行了一些讨论。

    此致、

    James

    MSP 客户应用

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    James、
    谢谢。
    但是我没有 IAR 的 IDE、我不知道从哪里可以获得这个 IDE?

    2.使用 MSP430头文件(*。h 文件)来简化代码开发。
    CCS 会为每个器件提供用于定义器件寄存器和位名称的文件。
    TI 建议使用这些文件、这些文件可以极大地简化开发的任务
    程序。 要包含与目标器件对应的.h 文件、请添加行#include
    对于 C 和.cdecls C、list、"msp430xyyy.h"表示汇编代码、其中
    xyyy 指定 MSP430器件型号。
    我使用的芯片是 MSP430F67641IPN、但我在 driverlib 中找不到该文件 MSP430F67641.h、我是否应该使用哪一个文件来替换 MSP430F67641.h?

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

    您好!

    您可以通过以下链接下载 IAR。

    DriverLib 项目应包含一个名为'hw_memmap.h'的头文件(在"inc"文件夹下)。 此文件(如下所示)包括对"4304.h"头文件的调用。 使用创建项目时选择的器件、它将自动选择正确的头文件、例如"430F67641.h"。

    /*-版权所有-、BSD
    *版权所有(c) 2017、德州仪器(TI)公司
    *保留所有权利。
    *
    *
    只要
    符合以下条件*、允许以源代码和二进制形式重新分发和使用:
    *
    *源代码的重新分发必须保留上述版权
    声明*、此条件列表和以下免责声明。
    *
    ***二进制形式的再发行必须在
    
    *随发行提供的文档和/或其他材料中复制上述版权声明、本条件列表和以下免责声明。
    *
    ***未经
    
    事先书面许可、不得使用德州仪器公司的名称或*其贡献者的名称认可或推广从本软件衍生的产品*。
    *
    *本软件由版权所有者和贡献者"按原样"提供
    *、
    
    不承担任何明示或暗示的保证、包括但不限于*适销性和特定用途适用性的暗示保证*。 在任何情况下、版权所有者或
    *贡献者都不对任何直接、间接、偶然、特殊、
    *模范、 或相应的损害(包括但不限于
    *采购替代产品或服务;丧失使用、数据或利润;
    *或业务中断)、但出于任何责任理论
    、*无论是在合同中、严格责任还是由于
    使用本软件而以任何方式产生的侵权行为(包括疏忽或*其他)
    、*即使已获悉可能会发生此类损坏。
    *--/copyrights-*/
    #ifndef __hw_MEMAP__
    #define __HW_MEMAP__
    
    #define __DRIVERLIB_MSP430F5XX_6XX_family_//
    *********
    //
    //包括特定于器件的头文件
    //
    //*********
    #include 
    
    #include "MSP430F5xx_6xxgeneric.h"
    
    #include "stdint.h"
    #include "stdbool.h"
    
    //*********
    ////
    API 返回值的成功和失败
    ///*********
    
    #define STATUS_SUCCESS 0x01
    #define STATUS_FAIL 0x00
    
    //*********
    //
    //启用断言调试的宏
    //
    *********
    #define NDEBUG
    
    //*********
    //
    硬件访问宏
    //
    //*********
    #define HWREG32 (x) \
    (*((volatile uint32_t *)((uint16_t) x)
    )#define HWREG16 (x) \
    (*((volatile uint16_t *)((uint16_t) x)
    )#define HWREG8 (x) \
    (*((volatile uint8_t *)((uint16_t) x))
    
    
    )#endif //#ifndef __hw_MEMAP__ 

    此致、

    James

    MSP 客户应用

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    James、
    谢谢。
    但我无法下载 IAR IDE、因为我没有许可证。
    2.对于三相电能测量系统的源代码、是否可以提供使用说明? 以便我可以将这些代码用于我的应用。
    谢谢、致以诚挚的问候
    周露西
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    对于三相电能测量系统(slaa621c)的源代码、是否可以提供其使用说明和一些流程图? 以便我可以将这些代码用于我的应用。
    谢谢、致以诚挚的问候
    周露西
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Lucy、

    很抱歉由于节假日而延迟回复。

    关于 IAR 许可证、请参阅以下 IAR 网站。

    此外、您还可以在 使用 MSP430F67641 应用手册实施低成本三相电子电表时找到有关源代码和流程图的信息。

    此致、

    James

    MSP 客户应用

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    James、
    谢谢。
    但使用 UART_2仍然存在一些问题。 UART_A2无法进入中断功能。
    对于作为 UART_2的 P2.2和 P2.3、我使用与 UART_1相同的配置和中断 ISR 代码、但无法进入此中断功能(ISR (USCI_A2、USCI_A2_ISR))。请参阅下面的.UART_2中断没有响应。 但 UART_1正常。 我修改了这些使用 slaa621c 源代码。 请帮助。

    ISR (USCI_A2、USCI_A2_ISR)

    uint16_t TX; //Lucy 可以进入路由器

    开关(__evo_in_range (UCA2IV、USCI_UART_UCTXCPTIFG))

    USCI_NONE 案例:
    中断;
    USCI_UART_UCRXIFG 案例:
    UART_Rx_CORE (2、UCA2RXBUF);
    中断;
    USCI_UART_UCTXIFG 案例:
    TX = UART_TX_CORE (2);
    UCA2TXBUF = TX & 0xFF;
    IF (TX 和0x8000)
    UCA2IE &=~UCTXIE;
    中断;
    USCI_UART_UCSTTIFG 案例:
    中断;
    USCI_UART_UCTXCPTIFG 案例:
    中断;

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

    您好 Lucy、

    您可能需要在'emeter-template.h'文件中添加与 UART_2接口相关的#defines (将代码片段放在第71行之后)。 我看到它们适用于 UART_0和 UART_1、但不适用于 UART_2。 添加"UART_2_SUPPORT"会将"emeter-communication.h"文件中的"MAX_UART_PORT"从2增加到3 (请参阅第36至49行)、这应允许配置 UART_2 (我怀疑问题是由禁用的 UART_2中断引起的)。 请记住、在对任何文件进行更改后、按以下顺序重新编译所有项目:emeter-toolkit-67641 -> emeter-met量 度-67641 -> emeter-app-67641。

    /*! 这定义了 eUSCI 2的速度*/
    #define UART_2_support
    #define UART_2_BAUD_RATE 9600
    #define UART_2_DLT645_support 

    此致、

    James

    MSP 客户应用

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

    James、

    谢谢。

    我对使用 UART_2进行了一些修改(请参阅随附的),在修改代码后,我将按照以下顺序重新生成所有项目:emeter-toolkit-67641 -> emeter-meteto-67641 -> emeto-app-67641,但仍然不输入中断点,请参阅随附的。

    使用 IC:MSP430F67641IPN (80引脚)

    谢谢、致以诚挚的问候

    露西

     

    e2e.ti.com/.../UART1-and-UART2-break-point.docx

     

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

    James、

    有更新吗?

    这对我来说是紧急的。

    在我们的应用中,需要使用这两个函数 UART_A2 (p2.2、p2.3)和 B0_SPI (P1.7、P2.0、P2.1),但无法正常工作,我使用 TI 提供的 UART 和 SPI 示例,将代码添加到 slaa621c 源代码, 无法进入中断入口。当我只使用 UART 和 SPI 示例代码时,它们是正确的。如何将这两个函数添加到 slaa621c 源代码中? 请提供建议。

    谢谢、致以诚挚的问候

    周露西

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

    我建议您使用原始源代码(未修改)作为代码的参考。 首先、在移至 UART_2之前、尝试了解 UART_1的初始化、配置和使用方式。 在进入 SPI 接口之前、请先关注 UART 接口。

    您是否能够在'emeter-communication.c'中调试 UART_2配置代码? 此代码用于配置 UART_2接口。 如果您无法在第270行上停止、则需要弄清楚为什么未正确配置"UART_2_support"定义。 执行此代码后、应启用中断。 就我个人而言、我发现使用 IAR 中的搜索功能(Ctrl + Shift + F)从定义转到函数等有助于更好地理解代码。

    还有一点、如果您正在调试、请务必关闭编译器优化(大小和速度)。 如果没有完成调试、我就会发现这会导致问题的地方。

    此致、

    James

    MSP 客户应用
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    此外、请注意您尝试调试哪个 UART ISR (有几个取决于模块类型)。 在这里、MSP430F67641具有 EUSCI_A2、因此该模块的 ISR 代码从第664行开始。

    此致、

    James

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

    James、

    Thankse2e.ti.com/.../UART1-and-UART2-register.xlsx

    我使用原始代码并构建它、URAT_1正在工作。然后我添加与 UART_1相同的 define UART_2、
    #define UART_2_support
    #define UART_2_BAUD_RATE                           9600
    #define UART_2_DLT645_support
    UART_2可以进行正确配置并输入270行断点、但 UART_2仍然无法正常工作。我检查并比较它们的寄存器、找出 UCA2IE=0、它的值已修改、UART_2无法中断、请参阅所附的。 我可以在何处恢复其中断使能?
    (另一件事是、如果您正在进行调试、请务必关闭编译器优化(大小和速度)。 如果没有完成调试、我就会发现这会导致问题的原因。) 我不知道在哪里可以关闭?
     
    谢谢、致以诚挚的问候
    周露西

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

    James、

    是否有更新?

    谢谢、致以诚挚的问候

    周露西

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

    [引用 user="Lucy Zhou "](另一件事是、如果要进行调试、请务必关闭编译器优化(大小和速度)。 如果没有完成调试、我就会发现这会导致问题的原因。) 我不知道哪里可以关闭?

    在 IAR 中、右键点击工程、转到 Properties > C/C++ Compiler > Optimizations、为 Level 选择"None"、点击"OK"、然后重新编译工程。 您需要为每个项目执行此操作。

    [引用 user="Lucy Zhou ]]我使用原始代码并生成它、URAT_1正常工作。然后添加与 UART_1相同的 define UART_2、
    #define UART_2_support
    #define UART_2_BAUD_RATE                           9600
    #define UART_2_DLT645_support
    UART_2可以进行正确配置并输入270行断点、但 UART_2仍然无法正常工作。我检查并比较它们的寄存器、找出 UCA2IE=0、它的值已修改、UART_2无法中断、请参阅所附的。 在哪里可以恢复其中断使能?

    我会尝试准确跟踪中断被禁用的位置。

    此致、

    James

    MSP 客户应用

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

    James、

    感谢你的帮助。