C2000开发笔记-为什么选择C2000?

为什么选择C2000?当然是因为项目需要啦,目前水平不足以影响硬件选型。在接触C2000之前一直用STM32、HC32这类通用MCU。说到底只是工具罢了,用好芯片解决问题是我的目标。

1. 通用MCU vs C2000

花了些时间搞清楚后,也试着整理了一下。这里与其说是C2000与MCU的区别,不如说是DSP(Digital Signal Processing)与MCU的区别。

一句话来说,就是DSP是专门为实时控制设计的专用控制器,而MCU是通用控制器。

维度 MCU(如STM32F103x) DSP(如TMS320F280x)
主频 72MHz 60MHz
内核 ARM Cortex-M TI自研C28x DSP内核
指令集 通用 针对控制算法优化(单周期MAC、并行指令)
浮点能力 部分型号有FPU 全系列标配硬件FPU(2837x以上)
三角函数 软件库实现(慢) 硬件指令(TMU,单周期sin/cos)
可编程控制律加速器(CLA) 独立并行协处理器,可单独跑控制算法
PWM 通用定时器 ePWM
ADC 12位, 支持1Msps 12/16位, 能支持4.6Msps
   

Q: DSP主频低,为什么会计算更快呢?有MCU主频能到200MHz,甚至更高
A: 内部集成了多个硬件加速器,像CAL(完全独立的32位浮点处理器,可以和主CPU并行工作)、TMU(三角函数加速器)、FPU(浮点单元)。并且采用多总线结构(哈弗总线架构)实现在一个单周期内取一个指令、读取一个数据值和写入一个数据值1

2. 常见应用场景

光伏逆变、电机控制、数字电源等等。偏向于工业场景,高精度、对成本不敏感、实时性要求高的场景。

3. 选型

C2000系列产品众多,不同型号的特性差异不小。但作为软件开发者,咱们的选型关注点其实很简单:

  • 库齐不齐?
  • 调试好不好用?
  • 文档清晰吗?
  • 遇到问题能搜到答案吗?
  • 芯片技术支持怎么样?

说实话,这些对选型的影响通常比性能/成本小。因为很多时候芯片是硬件定的,软件只能“硬着头皮上”。选到小众芯片,苦哈哈也得干。

一个现实:只有量大的客户,原厂才会提供贴身支持(甚至帮你开发)。普通玩家主要只能靠文档和论坛摸索。现在有AI,处境似乎好了一点点。

3.1 C2000的定位

C2000、C5000、C6000是TI的三大DSP分支:

系列 定位
C2000 实时控制MCU(缝合怪:MCU外设 + DSP算力)
C5000 低功耗DSP
C6000 高性能DSP

C2000的独特之处在于:它既集成了MCU的各类外设(PWM、ADC、通信),又保留了DSP的高速计算能力(FPU、TMU、CLA)。所以有人说它是“缝合怪”——我觉得这个评价很精准。

3.2 怎么选?

去TI官网看产品,几百个型号,各种参数、各种领域,根本不知道怎么选。

后来我想通了:抄就完了。

  • 选资料多的型号,别选小众的
  • 选社区活跃的型号,别选没人讨论的
  • 选大厂量大的型号,别选“参数完美但没人用”的

怎么抄还得向友商们取取经。

相关笔记

C2000开发笔记

C2000开发笔记-环境搭建与仿真器驱动

参考资料

  1. TI. (2024). C28x 架构和加速器概述. https://dev.ti.com/tirex4-desktop/content/c28x_academy_%E4%B8%AD%E6%96%871_00_00_00/_build_c28x_academy%E4%B8%AD%E6%96%87_1_00_00_00/source/c2000_overview/c2000_device_overview.html 

results matching ""

    No results matching ""