TMS320F280049C 学习指南

目录

  1. 芯片简介
  2. 与STM32对比
  3. 开发环境
  4. SysConfig工具
  5. 项目结构

芯片简介

TMS320F280049C是TI的C2000系列32位实时控制微控制器,专为电机控制、数字电源等应用设计。

核心特性

  • CPU: C28x 32位CPU,100MHz
  • Flash: 256KB
  • RAM: 100KB (M0/M1 SARAM)
  • ADC: 3个12位ADC,3.45MSPS
  • PWM: 16个ePWM通道
  • 通信接口: 2×SCI(UART), 2×SPI, 2×I2C, 2×CAN
  • 定时器: 3×CPU定时器, 多个ePWM定时器

与STM32对比

相似之处

功能 STM32 F280049C
GPIO配置 HAL_GPIO_Init() GPIO_SetupPinMux()
中断使能 HAL_NVIC_EnableIRQ() Interrupt_enable()
定时器 TIM CPU Timer / ePWM
串口 USART SCI
ADC ADC ADC

主要区别

1. 寄存器访问方式

1
2
3
4
5
6
// STM32 (通过HAL库)
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, GPIO_PIN_SET);

// F280049C (直接寄存器或DriverLib)
GPIO_writePin(0, 1); // DriverLib
GpioDataRegs.GPASET.bit.GPIO0 = 1; // 直接寄存器

2. 时钟系统

  • STM32: 使用HSE/HSI + PLL,通过RCC配置
  • F280049C: 使用内部振荡器或外部晶振,通过SysCtl配置

3. 中断系统

  • STM32: NVIC中断控制器
  • F280049C: PIE (Peripheral Interrupt Expansion) 中断系统

4. PWM特性

  • STM32: 通用定时器PWM
  • F280049C: 专用ePWM模块,支持死区、相位同步、故障保护

开发环境

必需工具

  1. Code Composer Studio (CCS) - TI官方IDE

  2. C2000Ware - 软件开发包

  3. SysConfig - 图形化配置工具

    • 集成在CCS中
    • 类似STM32CubeMX

调试器

  • XDS110 - 板载调试器
  • XDS100v2/v3 - 外部调试器

SysConfig工具

SysConfig是TI的图形化配置工具,类似STM32的CubeMX。

主要功能

  1. 引脚配置 - 可视化配置GPIO复用
  2. 外设配置 - 图形化配置ADC、PWM、UART等
  3. 时钟配置 - 配置系统时钟树
  4. 代码生成 - 自动生成初始化代码

使用流程

1. 创建SysConfig文件

1
项目右键 -> New -> SysConfig File

2. 添加外设

  • 在左侧面板选择外设(GPIO, ADC, SCI等)
  • 点击”+”添加实例
  • 配置参数

3. 配置引脚

  • 在”Pin Mux”视图中查看引脚分配
  • 解决引脚冲突

4. 生成代码

  • 保存.syscfg文件
  • 自动生成board.c和board.h

SysConfig vs 手动配置

1
2
3
4
5
6
7
// 手动配置GPIO
GPIO_setPadConfig(0, GPIO_PIN_TYPE_STD);
GPIO_setDirectionMode(0, GPIO_DIR_MODE_OUT);
GPIO_setPinConfig(GPIO_0_GPIO0);

// SysConfig生成的代码
Board_init(); // 调用一次即可完成所有配置

项目结构

典型项目目录

1
2
3
4
5
6
7
8
9
10
MyProject/
├── main.c # 主程序
├── device/ # 设备相关文件
│ ├── device.h
│ └── device.c
├── driverlib/ # 驱动库
├── board.c # SysConfig生成
├── board.h # SysConfig生成
├── MyProject.syscfg # SysConfig配置文件
└── targetConfigs/ # 调试配置

代码框架

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include "driverlib.h"
#include "device.h"
#include "board.h"

void main(void)
{
// 1. 初始化设备
Device_init();

// 2. 初始化GPIO和中断
Device_initGPIO();

// 3. 初始化PIE中断
Interrupt_initModule();
Interrupt_initVectorTable();

// 4. 使用SysConfig配置(推荐)
Board_init();

// 5. 使能全局中断
EINT; // Enable Global Interrupt
ERTM; // Enable Real-time Interrupt

// 6. 主循环
while(1)
{
// 应用代码
}
}

学习路线

建议顺序

  1. GPIO - 基础IO操作,LED控制
  2. TIMER - CPU定时器,延时和定时中断
  3. UART - 串口通信,调试输出
  4. ePWM - PWM输出,电机控制基础
  5. ADC - 模拟信号采集
  6. 高级外设 - SPI, I2C, CAN等

学习建议

  • 先用SysConfig配置,理解参数含义
  • 再学习手动配置,理解底层原理
  • 对比STM32,找到相似和不同之处
  • 多看C2000Ware的例程

常用资源

官方文档

  • Technical Reference Manual (TRM) - 详细寄存器说明
  • Datasheet - 电气特性和引脚定义
  • C2000Ware Documentation - API参考

在线资源

  • TI E2E论坛: https://e2e.ti.com/
  • C2000 Academy: 在线培训课程
  • GitHub: TI官方示例代码

下一步

请按顺序学习以下教程:

  1. 01_GPIO.md - GPIO配置和使用
  2. 02_TIMER.md - 定时器配置和使用
  3. 03_UART.md - 串口通信
  4. 04_ePWM.md - PWM输出
  5. 05_ADC.md - ADC采集
  6. 06_Advanced.md - 其他外设