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, 
<think>好的,我现在需要帮用户比较TMS320F28377和FT2232这两款芯片的特性、功能区别以及开发资料。首先,我得先确认这两个芯片的类别和用途,可能用户有些混淆,因为从名字上看,TMS320F28377应该是德州仪器的DSP芯片,而FT2232是FTDI的USB接口芯片,两者的应用领域可能差异较大。 首先,查证TMS320F28377的信息。根据德州仪器的资料,这个型号属于C2000系列的双核DSP,主要用于实时控制应用,比如电机控制、数字电源等。它应该有高性能的浮点处理单元,支持多种外设PWM、ADC等,开发工具可能包括CCS(Code Composer Studio)和相关的评估板。 接下来是FT2232,这是FTDI公司的USB转串口/UART/JTAG的桥接芯片。常用于设备通信、编程和调试,比如在嵌入式系统中作为USB转JTAG接口来烧录程序。开发资料可能包括驱动程序、库函数以及参考设计,用户可能需要使用FTDI提供的软件工具如FT_PROG或者D2XX驱动。 接下来需要对比两者的特性和功能区别。TMS320F28377作为DSP,核心是处理复杂算法和实时控制,而FT2232是接口芯片,负责协议转换。两者的应用场景不同,一个是主控制器,一个是通信接口。开发资料方面,TI和FTDI各自提供详细的数据手册、应用笔记和示例代码,但方向不同,TI侧重控制算法开发,FTDI侧重接口配置和通信。 用户可能想了解如何将两者结合使用,比如用FT2232作为TMS320F28377的编程调试接口。这时候需要确认FT2232是否支持JTAG或SPI接口,以及如何配置。此外,用户可能对开发环境的兼容性有疑问,比如是否需要在CCS中使用FT2232作为调试探针。 另外,用户提到的参考引用中提到了Keil和IAR,但这两个芯片的开发可能用不同的工具。例如,TMS320F28377可能主要用CCS,而FT2232的配置可能用FTDI的工具。需要指出这些差异,避免用户混淆。 最后,确保回答结构清晰,分点对比,并生成相关问题帮助用户深入理解两者的不同应用场景和开发需求。</think>### TMS320F28377 vs FT2232 特性对比 #### 1. **芯片类型与核心功能** - **TMS320F28377** 属于德州仪器(TI)C2000™系列 **双核DSP控制器**,面向实时控制应用(如电机控制、数字电源)。其特性包括: - 双核架构:主频高达200MHz的32位浮点DSP(C28x内核 + CLA协处理器) - 丰富外设12位ADC、PWM模块、CAN/CAN FD、以太网等 - 存储资源:1MB Flash、204KB RAM - 开发工具:Code Composer Studio (CCS)、ControlSUITE软件库[^3] - **FT2232** 属于FTDI公司的 **USB接口芯片**,核心功能为协议转换与通信接口扩展,特性包括: - 双通道USB转UART/SPI/I2C/JTAG等接口 - 支持高速模式(12Mbps)和全速模式(480Mbps) - 无需外部固件开发,通过配置工具即可实现功能定制 - 开发工具:FTDI官方驱动(D2XX、VCP)、FT_PROG配置工具[^1] --- #### 2. **功能区别** | **特性** | **TMS320F28377** | **FT2232** | |----------------|----------------------------------|--------------------------------| | **核心用途** | 实时控制与信号处理 | 通信协议转换与接口扩展 | | **处理能力** | 高性能浮点运算,支持复杂算法 | 无处理能力,仅实现接口转换 | | **外设接口** | PWM、ADC、CAN、以太网等 | UART、SPI、I2C、JTAG等 | | **开发复杂度** | 需编写控制算法,配置外设 | 通过GUI工具配置接口模式 | | **典型应用** | 电机驱动、逆变器、工业自动化 | 设备调试、编程器、通信适配器 | --- #### 3. **开发资料对比** - **TMS320F28377** - 官方文档: - *TMS320F2837xD技术参考手册*(寄存器配置外设说明) - *C2000实时控制软件开发指南*(算法设计与优化) - 开发资源: - TI官网提供示例代码(如PWM控制、ADC采样) - ControlSUITE库包含电机控制、数字电源参考设计 - **FT2232** - 官方文档: - *FT2232H数据手册*(引脚定义与电气特性) - *AN_xxx应用笔记*(配置UART/JTAG模式的步骤) - 开发资源: - FTDI提供D2XX驱动API(支持C/C++、Python等语言) - 开源工具(如OpenOCD)支持FT2232作为JTAG调试器 --- #### 4. **典型应用场景** - **TMS320F28377** - 电机驱动:通过PWM和ADC实现磁场定向控制(FOC) - 数字电源:实时调整开关频率与占空比 - 示例代码: ```c // 初始化PWM模块 EPwm1Regs.TBPRD = 1000; // 设置周期 EPwm1Regs.CMPA.half.CMPA = 500; // 设置占空比 ``` - **FT2232** - 设备调试:通过JTAG接口烧录STM32程序 - 多协议通信:同时连接UART和SPI设备 - 配置示例(FT_PROG工具): ![FT2232 Channel配置](https://example.com/ft2232_config.png) ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值