“线程”中讨论的其它部件:C2000WARE, TMDSHSECDOCK
例如,我正在寻找使用280039C 设备生成2个 PWM 输出,该设备具有用户定义的死机时间,切换频率和死机时间。 我已经尝试了模块7的“控制外设实验室”示例,它允许我使用 CCS 中的 Graph 工具查看指定频率和占空比的 ePWM 单通道输出,并检查范围的输出。 现在,我想将其增强为2通道互补 PWM 输出,并在死机时进行。
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.
例如,我正在寻找使用280039C 设备生成2个 PWM 输出,该设备具有用户定义的死机时间,切换频率和死机时间。 我已经尝试了模块7的“控制外设实验室”示例,它允许我使用 CCS 中的 Graph 工具查看指定频率和占空比的 ePWM 单通道输出,并检查范围的输出。 现在,我想将其增强为2通道互补 PWM 输出,并在死机时进行。
你好,阿迪蒂亚,
在示例中,当我检查范围上的 GPIO10和 GPIO11时,
问题1:
我没有收到一份有死时间的免费输出。 以下是在示波器上捕获的波形。 连接到示波器的子卡 TMDSHSECDOCK 上的引脚为引脚61和引脚63。 
顺便说一句,我将 ePWM_TIMEER_TBPRD 从 2000UL 更改为 2250UL (似乎是600us 时间段)。 由于子卡上的 GPIO11引脚与使用的其他 GPIO 引脚不同,这是问题吗? 
问题1:而且,我相信3000用户许可证的有效期是800用户。 ePWM_TIMEER_TBPRD 与时间段的确切关系是什么?
问题2: 为了改变死机时间,我应该改变哪些参数? 下面的200和400代码在 usec 中转换为什么? 是否有更简单的方法将失效时间设置为可变输入?
//设置红色和馈入值
//
ePWM_setFallingEdgeDelayCount (基本,200);
ePWM_setRisingEdgeDelayCount (基数,400);
//
问题3:我的理解是否正确:要更改工作周期,我需要修改以下两行代码? (当前设置为25%)。 是否有更简单的方法将占空比输入作为代码中的变量输入?
ePWM_setCounterCompareValue (基本值,ePWM_counter_compare_a,ePWM_TIMER TBPRD/4);
ePWM_setCounterCompareValue (基本值,ePWM_counter_compare_B,3*ePWM_TIMEER_TBPRD/4);
Shashank,
在本例中,当我检查 GPIO10和 GPIO11的示例中,[引用 userid="5136770" URL"~ë/support/icros/C2000 -微控制器组/CC2000 /f/C2000 -微控制器-论坛/1082888/tmdscncd280039c-example-to -generate-2-explexcan-wm-output-with -id-dead -time /4009569#4009569 '"GPIO10,11对应于禁用死区的 EPWM6,有关使用不同 ePWM 模块显示的不同功能的详细信息,请参阅示例说明。
在您的情况下,您可以检查 EPWM4的输出,该输出演示了“主动高互补”操作模式。
[引用 userid="513670" url="~/support/icins/c2000微控制器-组/CC2000 /f/c2000 -微控制器-论坛/1082888/tmdscncd280039c-example-to generate-2-excusbe-wm-output-with -dead time /4009569#4009569]800ques 1:我还相信,我们的 UL 期限也是在美国。800ques 1: ePWM_TIMEER_TBPRD 与时间段的确切关系是什么? [/引用]TBPRD 是一个期间寄存器,用作生成所需 PWM 频率的分频器。 设备参考手册中详细说明了如何计算 PWM 频率和周期。
[引用 userid="513670" url="~/support/icins/c2000微控制器-group/c2000 /f/c2000微控制器-forume/1082888/tmdscncd280039c-example-to-generate-2-exc项-pwm-output-with -dead-time /4009569#4009569 "]以下哪些代码可以翻译200和400?引用400代码[usec 以下哪个代码?]200,400将符合 PWM 时钟频率。 例如 时钟频率为10kHz,然后200将转换为20usec。
您也可以将其与 TBPRD 注册表直接关联,以了解您的案例中200和400将转换为什么。
[引用 userid="513670" url="~ë/support/icns/c2000-icro-group/c2f/c2000-m控制 器-forume/1082888/tmdscncd280039c-example-forde-2-explyus-pwm-output-with -dead time /4009569#4009569 "]我是否理解修改以下两行代码以修改代码,并修改两行代码?]没错。 计数器比较寄存器用于计算占空比。 您可以在此处定义变量来代替定义的占空比,并根据需要在代码的其他部分与变量一起使用。
我在前面的答复中提到的同一个文件夹中的 updown_AQ 示例也展示了一个类似的可变负荷示例。
谢谢,
阿迪特亚
阿迪特亚,
感谢您的回复。 然而,我在这里有点困惑。
[引用 userid="462934" url="~ë/support/icins/c2000-icro-group/c2f/c2000-微控制器-forume/1082888/tmdscncd280039c-example-to-generate-2-probyer-output-with -dead-time /4010341#4010341"]GPIO10,11对应于禁用死区的 EPWM6,有关使用不同 ePWM 模块显示的不同功能的详细信息,请参阅示例说明。
在您的情况下,您可以检查 EPWM4的输出,该输出演示了“主动高互补”操作模式。
[/引用]我发现以下描述表明 EPWM6用于开关 A 和 B 输出:EPWM1禁用死区。 请澄清哪一项正确。 我从下面的描述中想到,我需要使用 GPIO10 EPWM6A 和 GPIO11 EPWM6B。
示例位置为:“ePWM_EX8_dul带”,位于位置 C:\ti\C2000Ware_4_00_00_00\driverlib\f28003x\examples\ePWM 下
//! 此示例按如下所示配置 ePWM1到 ePWM6
//! -禁用去带功能的 ePWM1 (参考)
//! - ePWM2,脱带主动偏高
//! - ePWM3,脱带主动低电平
//! -免费提供带去死区活动高电平的 ePWM4
//! - ePWM5,带脱带主动低电平
//! -带去频输出交换的 ePWM6 (开关 A 和 B 输出)
//!
//!
//! b 外部连接\n
//! -GPIO0 EPWM1A
//! -GPIO1 EPWM1B
//! -GPIO2 EPWM2A
//! -GPIO3 EPWM2B
//! -GPIO4 EPWM3A
//! -GPIO5 EPWM3B
//! -GPIO6 EPWM4A
//! -GPIO7 EPWM4B
//! -GPIO8 EPWM5A
//! -GPIO9 EPWM5B
//! GPIO10 EPWM6A
//! GPIO11 EPWM6B
您能告诉我 参考手册中可以读取 PWM 频率计算的内容吗?
[引用 userid="462934" url="~ë/support/intrles/c2000-intraters-group/c2f/c2000-intraters-forum/1082888/tmdscncd280039c- example-to-generate-2-excwm-output-with -dead-time /4010341#4010341]],例如。 时钟频率为10kHz,然后200将转换为20usec。这是否意味着死亡时间是20usec 和40usec? 您能否更详细地解释以下各行
ePWM_setFallingEdgeDelayCount (基本,200);
ePWM_setRisingEdgeDelayCount (基数,400);
如果我说20kHz PWM 频率,并且想要200ns 的死机时间,我应该使用什么值?
Shashank,
[引用 userid="513670" url="~/support/icles/c2000-icler-group/c2f/c2000微控制器-forum/1082888/tmdscncd280039c-example-to-generate-2-excusion-wm-output-with -dead-time /4010433#4010433]I 发现以下断带 WEPM1和 WEPB 的输出描述是禁用的,其中说明 WEPM1的。 请澄清哪一项正确。 我从下面的描述中想到,我需要使用 GPIO10 EPWM6A 和 GPIO11 EPWM6B。 [/引用]EPWM6演示了交换 A 和 B 输出的功能。即使在交换输出时也可以插入死时间,但在本例中,死区未启用。 您可以检查下面列出的禁用上升边缘和下降边缘延迟的部分代码。
void setupEPWMOutputSwap(uint32_t base)
{
//
// Disable RED
//
EPWM_setDeadBandDelayMode(base, EPWM_DB_RED, false);
//
// Disable FED
//
EPWM_setDeadBandDelayMode(base, EPWM_DB_FED, false);
//
// Switch Output A with Output B
//
EPWM_setDeadBandOutputSwapMode(base, EPWM_DB_OUTPUT_A, true);
EPWM_setDeadBandOutputSwapMode(base, EPWM_DB_OUTPUT_B, true);
}
有关 ePWM 频率计算,请参阅 参考手册中的“20.4.3 Calculating PWM Period and Frequency”(20.4.3计算 PWM 周期和频率)。
死区计算也在参考手册 ePWM 一章的死区模块中讨论。
谢谢,
阿迪特亚