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.

[参考译文] MSP430FR6047:超声波程序中的 UART、使用低功耗模式

Guru**** 2540720 points
Other Parts Discussed in Thread: MSP430F5528

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/998295/msp430fr6047-uart-in-ultrasonic-program-use-low-power-mode

器件型号:MSP430FR6047
主题中讨论的其他器件:MSP430F5528MSP430WARE

我想将 MSP430FR6047EVM_USS_WATE_Demo 中的通信从 I2C 更改为 UART。 现在、它应该将与 GUI 一样的信息发送到我的终端程序。

我已经更改了 comm_config.h 中的位设置、并通过操作属性将整个工程的功率模式设置为"Disable_LPM"。 遗憾的是、我仍然无法接收 UART 信号、电路板也无法向 COMM_RXD 或 TXD 跳线发送任何数据。

当我调试程序时、它卡在'commonTimerWaitEvent'中。 lpmMode 为 lpm0,但调试器找不到 GIE。 这些信息可能会有所帮助。

在“Properties->Debug->Misc/Other Options”(属性->调试->Misc/Other Options)中,“Allow power transitions while running if suced (low power running)”(如果已导入(低功耗运行),则允许在运行时进行电源转换)已设置,并且我 是否需要取消选中它?

我的设置是否正确、我还需要更改什么?

此外、当我使用闪存仿真工具进行调试时、我遇到了一个问题。 仿真工具 LED 信号始终在模式和电源之间切换、EVM 尝试显示" LPH 下的流速"、但显示"FL"后始终重试。 电源连接是否有问题? 我使用了 JTAG 电源。

感谢你的帮助

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

    您好 Kathrin、

    从 hal_UART.c 可以看到、UART 默认配置为通过引脚 P1.2和 P1.3工作。 这些是您使用示波器检查的引脚吗?

    BR、
    Leo

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

    您好、Leo、

    是的、这些是我检查的引脚。

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

    您好 Kathrin、

    我之所以提出这一要求、是因为这些信号与  您在上面的线程中提到的 COMM_RXD 或 TXD 线对应。 P1.1和 P1.2是 JTAG 连接器引脚的一部分。

    BR、
    Leo

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

    是的、我读出 COMM_RXD 和 TXD 用于 USB-UART 通信、"正常" UART 引脚用于其他 RXD 和 TXD 引脚。 我检查了它们(以及所有连接到芯片的引脚)的信号。 但没有人传输二进制代码。

    UART 引脚和 USB-UART 之间的区别到底是什么? 我想他们应该发送同样的信息。

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

    您好 Kathrin、

    USB-UART 引脚用于通过 MSP430F5528通过其 USB 接口与 PC 进行通信。   我将向我的同事咨询您可能看不到这些活动的原因。

    BR、
    Leo

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

    您好 Kathrin、

    模板项目应具有 UART 实现、并在自述文件中提供有关如何启用 UART 的进一步说明。 您了解过这一点吗? 此自述文件应位于 USS Lib 安装目录中:

    C:\ti\MSP\USS_02_40_00_00\USS\examples\USSSWLib_template_example

    BR、
    Leo

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

    您好、Leo、

    谢谢你。 我还不知道这个自述文件或示例项目。 我将在下周进行测试、然后查看是否可以在正常项目中正确更改所有设置。

    Kathrin

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

    我现在测试了该示例的软件。 它会毫无问题地发送信息。 但 uart_parse.py 文档有错误。 打印命令没有括号,第30行中的列表索引有问题:

    回溯(最近一次调用最后一次):
     文件"C:\ti\msp430ware_3_80_13_03\ussl\b\tools\examples\UART_parse.py"、第46行、位于
       解码文件(sys.argv[1]、sys.argv[2])
     文件"C:\ti\msp430ware_3_80_13_03\ussl\b\tools\examples\uart_parse.py"、第30行、位于 decode_file 中
       结果= struct.unpack("f"、struct.pack("i"、int (line_list[1]、16))))[0]
    IndexError:列表索引超出范围

    转换过程在之后停止

    AbsTo-UPS、5.676555e-05
    未定义 、

    您是否会向我发送一个有效版本的 UART_parse.py?

    遗憾的是、自述文件未解释如何对正常的超声波项目实施正确的设置。 是否有其他我未看到的自述文件?

    BR、
    Kathrin

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

    您好 Kathrin、

    我正在咨询我的同事、并将与您再次见面。

    BR、

    Leo

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

    您好 Kathrin、

    您能否发布用作此脚本输入的*。csv 文件?  您能否确认您使用的是02_40_00_00版本?  您能否在 c:\ti\MSP\USS_02_40_00_00\目录中尝试解析器?

    BR、
    Leo

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

    您好、Leo、

    这是我的输入文件和用于解析的命令的屏幕截图。 我使用项目 USS_02_40_00_00、但我发现 uart_parse.py 不在您告诉我的路径上。 在我看来,这不应该是一个问题。

    e2e.ti.com/.../EVM_5F00_original.csv

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

    感谢 Kathrin、

    我在这里重现了这个问题、我需要一些时间来深入研究这个问题、以确定发生了什么。

    BR、
    Leo

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

    您好 Kathrin、

    请在下面找到更新的 python 脚本。 如果通信中的数据丢失、您将收到警告、但至少应完成解析并生成输出文件。

    #!/usr/bin/python
    """ Parses USS Template project UART data (src.csv) and store result in out.csv"""
    import re
    import struct
    import sys
    
    def decode_file(file_in_name, file_out_name):
        """ Decodes input file using delim_dict and stores decoded output"""
        delim_dict = {"$": "AbsTof-UPS", "#": "AbsTof-DNS", "%": "DToF", "!": "VFR"}
        # Open File Input and Output Files
        input_file = open(file_in_name, "r")
        target_file = open(file_out_name, "w")
        lineNum = 1
        # Iterate through the data
        for line in input_file:
            # Remove New Line
            line = line.rstrip("/n")
            # Remove Spaces in front
            line = line.lstrip(" ")
            # Remove White space and tabs
            pattern = re.compile(r"\s+")
            clean_line = re.sub(pattern, " ", line)
            # Split the line by spaces
            line_list = clean_line.split(",")
            if (len(line_list) == 2):
                # Check if the first Value is supported by dictionary
                if line_list[0] in delim_dict.keys():
                    target_file.write(delim_dict[line_list[0]])
                else:
                    target_file.write("Undefined " + line_list[0])
                target_file.write(",")
                try:
                        result = struct.unpack("f", struct.pack("I", int(line_list[1], 16)))[0]
                        # Format the output in exponent notation
                        target_file.write("{0:e}".format(result) + "\n")
                except:
                    print("Warning: Potential corrupted data in line: "+ str(lineNum) + " \""+ line + "\"\n")
            else:            
                if(len(line_list[0]) >1):
                    print("Warning: Potential corrupted data in line: "+ str(lineNum) + " \""+ line + "\"\n")            
            lineNum = lineNum + 1
        # Close Files
        input_file.close()
        target_file.close()
        print("Successfully Generated: \n", file_out_name)
        return
    
    if __name__ == "__main__":
        if len(sys.argv) != 3:
            print ("Invalid input. Usage uart_parser.py <input_csv> <output_csv>")
        else:
            # Parse the USS Template project src input file and store result in
            # output csv
            decode_file(sys.argv[1], sys.argv[2])
    

    BR、
    Leo