主题中讨论的其他器件:LAUNCHXL-F28379D
大家好
如何使用"德州仪器 C2000处理器的嵌入式编码器支持包"将 ePWM12B 信号连接到 Simulink 中的引脚?
我想将 GPIO23连接到一个 IntputxBar、并将这个输入连接到一个 OutputxBar、它连接到板上的引脚34。
我找不到 用于配置此功能的选项。
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.
大家好
如何使用"德州仪器 C2000处理器的嵌入式编码器支持包"将 ePWM12B 信号连接到 Simulink 中的引脚?
我想将 GPIO23连接到一个 IntputxBar、并将这个输入连接到一个 OutputxBar、它连接到板上的引脚34。
我找不到 用于配置此功能的选项。
您好!
我尝试了系统初始化块、但它不起作用。 诊断查看器仅显示错误:
构建"PWM3PHASE_V4"时遇到错误:###无法生成所有二进制输出。
我在系统初始化块中编写了以下代码:
#include "F2837xD_DEVICE.h"
#include "F2837xD_examples.h"
空 InitEPwm12Gpio (空)
{
// 无法从电路板 LAUNCHXL-F28379D 完全访问 EPWM12 (GPIO22和 GPIO23)。 可通过 LAUNCHXL-F28379D (表用户指南)的引脚8访问 GPIO22。
// 无法通过任何引脚访问 GPIO23
// 此处的 InputXBar 和 OutputXBar 用于将 GPIO23路由出去。
// 《TMS320F2837xD 双核 Delfino 微控制器-技术参考手册》对此进行了说明
// 从 InputXBar 中选择 Input1,因为它可以将信号路由到 OutputXBar (第1153页)。
// 来自参考手册-表7-8。 GPIO 复用引脚
// GPIO22为 EPWM12A
// GPIO23是 EPWM12B
EALLOW;
GpioCtrlRegs.GPAPUD.bit.GPIO22 = 1;//禁用上拉
GpioCtrlRegs.GPAPUD.bit.GPIO23 = 1;//禁用上拉
GpioCtrlRegs.GPAMUX2.bit.GPIO22 = 1;
GpioCtrlRegs.GPAMUX2.bit.GPIO23 = 1;
GpioCtrlRegs.GPAGMUX2.bit.GPIO22 = 1;
GpioCtrlRegs.GPAGMUX2.bit.GPIO23 = 1;
InputXbarRegs.INPUT1SELECT = 23;//选择 GPIO23转至 InputXbar 的 Input1
// 从用户指南中可以看到 GPIO24 (引脚34)可用于 OUTPUTXBAR1。 Input1将路由到此输出
OutputXbarRegs.OUTPUT1MUX0TO15CFG.bit.MUX1 = 1;//从 InputXBar 中选择 INPUTXBAR1作为 Output1。 参考手册-表8-3. 输出 X-Bar 多路复用器配置表
OutputXbarRegs.OUTPUT1MUXENABLE.BIT.MUX1 = 1;//启用多路复用器
GpioCtrlRegs.GPAMUX2.bit.GPIO24=1;//将 GPIO24配置为 EPWM12B
GpioCtrlRegs.GPAPUD.bit.GPIO24 = 1;//禁用 GPIO24上的上拉电阻(EPWM12B)
EDIS;
}
不知道我犯了什么错误。
提前感谢您。
您好!
我刚才包含了 C2000块库中的 ePWM 块、并为 PWM 输出配置了 EPWM12A 和 EPWM12B。 我可以使用 DSO 验证 EPWM12A 上的输出。 然后、使用系统初始化块、我添加了以下代码行:
EALLOW;
InputXbarRegs.INPUT1SELECT = 23;
OutputXbarRegs.OUTPUT1MUX0TO15CFG.bit.MUX1 = 1;
OutputXbarRegs.OUTPUT1MUXENABLE.bit.MUX1 = 1;
EDIS;
根据我们的理解、应将 EPWM12B 路由到 GPIO24、该 GPIO24位于 J4 - 34接头上。
但我在该引脚上看不到任何输出。 因此,我不知道我们是否可以采用这种方法。
我的印象是只能使用 GPIO 上的外部输入、而不能使用内部信号。
我们能否从 TI 朋友那里确认这一理解。
您好!
正如 Venkatesh 所解释的、可以使用输入 X-BAR 和输出 X-BAR 的组合将 ePWM 输出路由到另一个 GPIO、但这仍然有一些限制。 尽管所有 GPIO 都可以访问输入 X-Bar、但输出 X-Bar 无法将正弦路由到所有 GPIO、因此需要小心谨慎。 但您所需的配置、即 GPI023 (ePWM12B)-> GPIO34是可能的。
将输入 X-Bar 配置为连接 GPIO23和 Input1、然后将输出 X-Bar 配置为连接 Input1和 Output1。 此外、必须注意 的是、只有通过 GpioCtrlRegs.GPxMUX 和 GpioCtrlRegs.GPxGMUX 寄存器选择了正确的 OUTPUTx 多路复用选项、才能在 GPIO 上看到该信号。
如果我的回复回答了您的问题、请点击位于我帖子底部的"我的问题已解决"按钮。
此致
Himanshu
您好!
感谢您的回复。
但我仍然有问题。
我知道将 PWM12B 信号路由到引脚所需的 C 代码、我在前面的线程中发布了它。
我没有将其集成到 Matlab / Simulink 项目中。
到目前为止、我尝试在"系统初始化块"、"模型源块"和"配置参数/仿真目标/源文件-窗口"中编写额外的自定义代码。
这是我使用的代码:
#include "F2837xD_DEVICE.h"
#include "F2837xD_examples.h"
空 InitEPwm12Gpio (空)
{
// 无法从电路板 LAUNCHXL-F28379D 完全访问 EPWM12 (GPIO22和 GPIO23)。 可通过 LAUNCHXL-F28379D (表用户指南)的引脚8访问 GPIO22。
// 无法通过任何引脚访问 GPIO23
// 此处的 InputXBar 和 OutputXBar 用于将 GPIO23路由出去。
// 《TMS320F2837xD 双核 Delfino 微控制器-技术参考手册》对此进行了说明
// 从 InputXBar 中选择 Input1,因为它可以将信号路由到 OutputXBar (第1153页)。
// 来自参考手册-表7-8。 GPIO 复用引脚
// GPIO22为 EPWM12A
// GPIO23是 EPWM12B
EALLOW;
GpioCtrlRegs.GPAPUD.bit.GPIO23 = 1;//禁用上拉
GpioCtrlRegs.GPAMUX2.bit.GPIO23 = 1;
GpioCtrlRegs.GPAGMUX2.bit.GPIO23 = 1;
InputXbarRegs.INPUT1SELECT = 23;//选择 GPIO23转至 InputXbar 的 Input1
// 从用户指南中可以看到 GPIO24 (引脚34)可用于 OUTPUTXBAR1。 Input1将路由到此输出
OutputXbarRegs.OUTPUT1MUX0TO15CFG.bit.MUX1 = 1;//从 InputXBar 中选择 INPUTXBAR1作为 Output1。 参考手册-表8-3. 输出 X-Bar 多路复用器配置表
OutputXbarRegs.OUTPUT1MUXENABLE.BIT.MUX1 = 1;//启用多路复用器
GpioCtrlRegs.GPAMUX2.bit.GPIO24=1;//将 GPIO24配置为 EPWM12B
GpioCtrlRegs.GPAPUD.bit.GPIO24 = 1;//禁用 GPIO24上的上拉电阻(EPWM12B)
EDIS;
}
如果有人可以发布功能示例、这将真的对我有所帮助。
感谢您的支持。