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/RM48L952:如何在 Code Composer Studio 中执行 HET 的引脚映射

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/565103/ccs-rm48l952-how-to-do-pin-mapping-of-het-in-code-composer-studio

器件型号:RM48L952
主题中讨论的其他器件:DRV8301TMS570LS3137HALCOGEN

工具/软件:Code Composer Studio

嘿、有

我使用 TMDXRM48作为控制卡、该卡放置在 DRV8301上、用于驱动 BLDC 电机

这是我的 Code Composer Studio 屏幕截图

我在 GPIO 引脚的帮助下使用 HET1_04在 DRV8301引脚分配 PWM_BH 处提供 PWM

这是 HET1_04 (突出显示)的 TMS (控制卡)的屏幕截图

这是 DRV8301的屏幕截图、如下所示

但在 CCS 中、有一个 het.c 文件、其中包含一些 HET 专用引脚、如下面的屏幕截图所示

您可以在屏幕截图中看到、HET 引脚14用于 PWM 3、但当我在使用相同的 PWM 3通道并保存代码的同时将引脚从14更改为引脚4时、不会显示所需的输出。

因此、请提供帮助、我是否还必须更改地址?

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

    您好、Hamid、

    首先、您应该会发现一些有用的其他背景信息。  

    我看到您使用的原理图实际上是 TMS570LS3137_CNCD 原理图。 尽管在这种情况下、差异很小、但对于其他器件而言、这可能很重要。 包含示例和原理图在内的 RM48 CNCD 信息可在 Wiki 页面上的此 链接中找到。  

    您的主要问题。 如原理图和器件数据表中所示、默认情况下选择 NHET1[4]引脚作为 MCU 的输出。 在原理图的屏幕抓图中、您将显示控制板的 DIMM 连接器、这表示 MCU 的 NHET1[4]引脚(焊球 B12)通过铜线迹连接到 DIMM 连接器引脚24。 在控制卡原理图中、DIMM 上的标签是 GPIO2/EPWM2A、这意味着 NHET1[4]引脚/通道用于代替通常使用的 GPIO2/EPWM2A 信号、因为 RM48没有任何 ePWM 模块、比使用基本 GPIO 更高效。

    如果您确实需要修改 Hercules 器件的引脚复用、则需要使用 Halcogen 或查看并了解参考手册中的 IOMM 功能。

    现在、我们来讨论一些附加信息、以供理解。 Code Composer Studio 是一种 IDE、仅在 IDE 中、它没有专门与其关联的任何代码、它支持碰巧包含 Hercules 的多种平台。 您正在运行的代码/项目似乎是 Hercules CNCD 的一个示例项目、在该项目中、您尝试使用您自己生成的 PWM 来驱动电机(超出正常 HET 功能)。 这不是 CCS 的一部分。

    在上述情况下、您表示在 GPIO 引脚的帮助下使用 HET 通道4 (HET1_04)来驱动 PWM。 请注意、HET1_04是 MCU 上的 NHET1[04]焊球 B12。 该引脚通过 NHET1模块驱动、可在 GPIO 模式下使用、但根据上面的代码、不能清除您使用 GPIOPORTA 的目的。 还值得注意的是、在执行 HET 初始化之前、您要设置 HET 引脚方向、然后将引脚设置为高电平。 这将导致您在初始化之前编写的信息丢失。

    最后、您提供的最后一个屏幕截图是作为 NHET 程序的目标文件、该文件将加载到 HET 存储器中以供执行。 这是通过编写 HET 程序并将其与前面提到的 HET 汇编器组合在一起来生成要放置在 HET 存储器中的内容而得出的。 HET 程序将具有作用于特定 HET 通道/引脚的指令。

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

    你好、Chuck、

    实际上、我希望在 C 语言中执行所有操作、而不受任何 GUI 中任何配置的影响。 因此、我希望避免从 halcogen 映射引脚。 您将转至 IOMM。 在哪份手册或参考中? 一

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

    您好、Hamid、

    我知道您想在 C 语言中执行所有操作,因为这是了解 MCU 的好方法,但请记住,大多数情况下,使用可用的工具来执行它们的驱动程序;因此,他们可以将所有注意力集中在应用级代码上。 随着器件复杂性的增加、开发速度更快、上市时间更短。

    不过、如果您打算使用寄存器级编程(请注意、这是一个更准确的描述、因为即使是 Halcogen 生成的代码是用 C 语言编写的)、我强烈建议您使用 MCU 的可用文档。 您可以在 RM48L952的产品页面上找到很多此文档(如技术参考手册、数据表、勘误文档、应用手册等) RM48L952的参考手册为 TI 文献编号 SPNU503

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好、Chuck、我不知道你说什么
    看看我做了什么
    只有我检查了 HALCoGen 中的 GIO 和 HET 驱动程序、并且我正在使用 Code Composer Studio 生成 PWM、因此当我包含这些文件时、然后在我开始编码后、 我看到我包含的"het.c"文件显示、假设 HET1_08是针对通道 pwm0、类似地、HET1_10是针对 pwm3、 但是、当我编辑 het.c 文件并设置所需的引脚 HET1_04并使用相同的 pwm0通道时、不会生成所需的 PWM。
    请告诉我如何在所需的引脚上获取 PWM?
    希望您了解我的问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Hamid、

    您能否将您的项目压缩到合理大小并将其发布在此主题中、以便我查看您的代码? 为了进行全面的解释、我需要查看项目以了解如何配置 NHET 以及您正在使用的项目中包含了什么 NHET 程序。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嘿、Chuck、无论如何、谢谢

    我已经解决了我的问题、并轻松解决了这些问题。

    看看我的屏幕快照

    现在、我在连接到 MOSFET 栅极的 PWM AH、BH、CH、AL、BL 和 CL 引脚上获取 PWM

    您能告诉我、驱动三相 BLDC 电机的逻辑应该是什么、以及如何在 PWM 之间提供延迟、因为有三相 U、V 和 W

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

    您好、Hamid、

    听说您能够创建尝试生成的 PWM 是一件很好的事情。  

    关于驱动 BLDC 电机、很遗憾、我不是电机控制专家、因此我不能就此提供太多建议。 我假设、由于相位之间的延迟、您意味着您希望 PWM 的计时方式使它们的相位差达到规定的值? 如果是这种情况、我认为方法是利用 NHET 程序内的计数器来控制每个 PWM 的边沿何时发生。

    我们的 wiki 页面上提供了一个 BLDC 演示项目、可帮助您了解如何设置该项目。 RM48 CNCD Wiki 位于以下链接: RM48 CNCD Wiki 页面 BLDC 演示可在页面目录的 Demos 链接下找到。 请注意、CNCD 电路板已不再可用、因此本 Wiki 上的信息可能仅在有限的时间内可用。