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.

[参考译文] TMS320F28.0049万C:处理器引脚保持高阻抗状态

Guru**** 2560390 points
Other Parts Discussed in Thread: C2000WARE, DRV8353

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1098676/tms320f280049c-processor-pins-keep-in-hi-impedance-state

部件号:TMS320F28.0049万C
主题中讨论的其他部件:LUNCHXL-F28.0049万CC2000WAREDRV8353

您好,

我有 一个带电机控制固件的LAUNCHXL-F28.0049万C (从x0025处理器移植)。

将此代码加载到处理器时,2个LED针脚(GPIO23和34符合数据表)保持高阻抗状态。

加载另一个程序时,LED将打开/关闭(紧跟在main()之后)

这可能是什么问题? 链接程序文件已损坏?

此致,

Ruud

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

    您好Ruud:

    我假设您希望LED针脚随电机控制固件一起打开/关闭? 您是否检查过GPIO控制和数据寄存器的内容以验证您的软件是否正确配置了GPIO引脚? 您可以参考C2000ware中的LED闪烁示例。 如果您怀疑存在硬件问题,也可以在LaunchPad上运行此示例。

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

    您好,Gus,

    我已移植并正在使用电机控制固件(部分)。 在调试器运行到main()时,我配置了端口并检查LED是否打开/关闭(在霍尔斜化之前)。 IO针脚配置与我的其他固件一样,工作正常。 加载另一个程序时,LED工作正常,因此此处没有硬件问题。

    我使用 GPIO写入引脚(23,1);和GPIO切换引脚(23);函数。

    与我的另一个proram不同的是我在那里使用driverlib。 因此,只需删除src_driver中的所有文件并包含driverlib。 仍然不工作。

    但是,当使用切换寄存器时,LED将切换。

    ###

    只需将优化级别从Off (关)设置为0 (Register Optimizations (配准优化))。 现在,引脚将切换,但不可能存在断点(在 GPIO _TogglePin函数上),调试中的代码步进实际上不可能实现。  

    在我的其他固件中,可以在“优化关闭”和“0”(注册优化)中使用断点和代码步进。  

    这两个代码都是从闪存运行的,并且使用编译器21.6LTS

    此致,

    Ruud

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

    Ruud,

    当代码从Flash运行时,调试器将使用硬件断点。 限制为2个HW断点。 您可能需要 检查  “查看”>“CCS中的断点”以查看是否启用了太多的HW断点。 有关硬件断点的更多信息,请参阅以下内容。

    https://software-dl.ti.com/ccs/esd/documents/ccs_breakpoint_watchpoint_c2000.html

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

    我买了一个Launchpad f28.0025万C,重新安装了电机控制软件,导入了一个新项目 ,正如 教程所解释的那样。 已将f28.0025万C板连接至DRV8352RS-EVM板。  完全按照教程操作。  

    调试器将遇到指示灯的代码:

                if(systemVars.counterLED > (uint16_t)(LED_BLINK_FREQ_Hz * 1000))
                {
                    HAL_toggleLED(halHandle, HAL_GPIO_LED2C);
    
                    systemVars.counterLED = 0;
                }

     HAL_ToggleLED行上不能有断点,但这可能是由于优化级别。 在 systemVars.counterLED =0上设置断点;调试器停止。  没有指示灯 切换。

    LED1打开(3V3)。

    有什么想法吗?

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

    您好Ruud:

    我不熟悉此固件。 HAL_TOGLELED()是如何定义的?  HAL_GPIO_LED2C的定义是什么? 是否可以使用CCS中的“查看>寄存器”窗口来验证GPIO引脚mux是否配置正确? 您还可以直接写入GPIO切换寄存器,以验证LED是否确实打开/关闭。

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

    您好Gus,

    似乎无法使用'out of boxe'的HAL_GPIO _LED2C,因为它用作DRV8353驱动程序的FAULTn引脚。

    我将其更改为 HAL_GPIO _LE1C并将其设置为输出,现在1个LED正在切换。  

    我觉得很奇怪,LED开箱就不能工作了,因为-开始时-这是最重要的用户反馈。

    此致,

    Ruud