TMS320F28377D的外设应用笔记(1)——Epwm配置

xi0 简述

        pwm作为DSP主要外设,对于新接触Ti DSP的新手来说,学习门槛还是高的,但是其配置方法基本是C2000的特点,学会一个基本可以很快上手其他C2000芯片。下面就上相关驱动程序,再对其设置寄存器的关键点进行简述。

1 例程代码

下面的代码是基于C2000 ware里的 "driverlib.h" 库文件,这是个人比较推荐的配置方式,再TI 不同芯片 程序移植时,基本可以做到通用。

#define _SET_PWM_PIN(PIN,PWM)    GPIO_setPadConfig(PIN, GPIO_PIN_TYPE_STD);GPIO_setPinConfig(GPIO_##PIN##_EPWM##PWM);
#define _EPWM_SET(NUM,CPUNUM)    DevCfgRegs.CPUSEL0.bit.EPWM##NUM = CPUNUM

void PwmUserDef_Init(Uint16 PwmDutyC1,Uint16 DeadBandC1, Uint16 PwmDutyC2, Uint16 DeadBandC2)
{
    SysCtl_setEPWMClockDivider(SYSCTL_EPWMCLK_DIV_1);
#ifdef CPU1
    EALLOW;
    _EPWM_SET(1,CPU2_PWM);
    _EPWM_SET(2,CPU2_PWM);
    _EPWM_SET(3,CPU2_PWM);
    _EPWM_SET(4,CPU1_PWM);
    _EPWM_SET(5,CPU1_PWM);
    _EPWM_SET(6,CPU1_PWM);

    _EPWM_SET(7,CPU1_PWM);
    _EPWM_SET(8,CPU1_PWM);
    _EPWM_SET(9,CPU1_PWM);
    _EPWM_SET(10,CPU1_PWM);
    _EPWM_SET(11,CPU1_PWM);
    _EPWM_SET(12,CPU1_PWM);
    EDIS;

    SysCtl_disablePeripheral(SYSCTL_PERIPH_CLK_TBCLKSYNC);

    InitEpwmx(&EPwm4Regs,PwmDutyC1,DeadBandC1);
    InitEpwmx(&EPwm5Regs,PwmDutyC1,DeadBandC1);
    InitEpwmx(&EPwm6Regs,PwmDutyC1,DeadBandC1);

    SysCtl_enablePeripheral(SYSCTL_PERIPH_CLK_TBCLKSYNC);
#endif
#ifdef CPU2

    SysCtl_disablePeripheral(SYSCTL_PERIPH_CLK_TBCLKSYNC);

    InitEpwm1(&EPwm1Regs,PwmDutyC2,DeadBandC2);
    InitEpwmx(&EPwm2Regs,PwmDutyC2,DeadBandC2);
    InitEpwmx(&EPwm3Regs,PwmDutyC2,DeadBandC2);

    SysCtl_enablePeripheral(SYSCTL_PERIPH_CLK_TBCLKSYNC);
#endif
}
#include "F2837xD_device.h"
#include "F2837xD_EPwm_defines.h"

#include "driverlib.h"

void initEPWM(uint32_t base,uint32_t EPWM_TIMER_TBPRD,uint32_t EPWM_CMPA,uint32_t DEAD_BANG)
{
    //
    // Set-up TBCLK
    //
    EPWM_setTimeBasePeriod(base, EPWM_TIMER_TBPRD);
    EPWM_setPhaseShift(base, 0U);
    EPWM_setTimeBaseCounter(base, 0U);

    //
    // Set Compare values
    //
    EPWM_setCounterCompareValue(base,
                                EPWM_COUNTER_COMPARE_A,
                                EPWM_CMPA);

    //
    // Set up counter mode
    //
    EPWM_setTimeBaseCounterMode(base, 
TMS320F28035是德州仪器(Texas Instruments)推出的一款数字信号控制器(Digital Signal Controller,DSC),它具有高性能的计算能力和丰富的外设接口。EPWM(Enhanced Pulse Width Modulation)是TMS320F28035中的一个模块,用于产生PWM信号。根据引用\[1\],在EPWM1模块中,ePWMA和ePWMB被设置为影子模式,并且在计数器为0时重载。这意味着在每个周期的计数器为0时,ePWMA和ePWMB的值会被重新加载。根据引用\[2\],如果要配置EPWM1的中断频率为300KHZ,则单个周期为3.333333333333333us,因此需要200个中断周期。根据引用\[3\],DCAH连接到比较器1的输出,DCAL连接到TZ2。其中,TZ2是一种功能,但在这个引用中没有具体使用到。 #### 引用[.reference_title] - *1* *3* [TMS320F28035学习笔记1_模拟比较器程序_Example_2803xEPwmDCEventTripComp](https://blog.csdn.net/weixin_44618926/article/details/120554126)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [TMS320F28035 的EPWM触发ADC采样笔记](https://blog.csdn.net/tiantangmoke/article/details/109056661)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值