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.
工具/软件: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。
您好、Hamid、
听说您能够创建尝试生成的 PWM 是一件很好的事情。
关于驱动 BLDC 电机、很遗憾、我不是电机控制专家、因此我不能就此提供太多建议。 我假设、由于相位之间的延迟、您意味着您希望 PWM 的计时方式使它们的相位差达到规定的值? 如果是这种情况、我认为方法是利用 NHET 程序内的计数器来控制每个 PWM 的边沿何时发生。
我们的 wiki 页面上提供了一个 BLDC 演示项目、可帮助您了解如何设置该项目。 RM48 CNCD Wiki 位于以下链接: RM48 CNCD Wiki 页面 BLDC 演示可在页面目录的 Demos 链接下找到。 请注意、CNCD 电路板已不再可用、因此本 Wiki 上的信息可能仅在有限的时间内可用。