MAL'S_BLOG

Welcome to Malossov's Personal Archieve!

0%

TI实时MCU学习-以TILaunchPad为例

C2000学习

基于TI官方板卡:LAUNCHXL-F280049C 评估板 | TI.com.cn

学习基础

  1. 拥有板卡。
  2. 芯片手册:TMS320F280049C data sheet, product information and support | TI.com

    1. 用户指南:用处不大,但是可以快速开始:SPRUII7B | 德州仪器 TI.com.cn
    2. 用户手册:虽然但是,其实MidWare里面东西更多:ZHCA981F | 德州仪器 TI.com.cn
    3. 板卡手册:盒子里面丢了可以看看:https://www.ti.com.cn/cn/lit/ug/swau114c/swau114c.pdf
  3. 拥有MyTI账号:所有下载都需要这个账号

  4. 速通TI的心:其实不比STM32难太多
  5. 准备开始

板卡导览

等我学完了做吧

软件准备

TI给人的感觉就是:==零碎==

  1. CCS: CCSTUDIO IDE、配置、编译器或调试器 | TI.com.cn

    1. 集成开发环境,安装之后装C2000就行。WEB版的下载速度也很快。
      1. 注意不要下成Theia这个给M0用的了
    2. 但是下载之后可以进行美化,详情参考大礼包。
      1. 资源管理器天天403,别用了,也没啥用,截图留念。image-20230728060355947
  2. C2000Ware: C2000WARE 软件开发套件 (SDK) | TI.com.cn

    1. 类似于CUBE给你下的支持包,有例程,而且比CUBE那个辣眼睛的HAL库不带CUBEMX配置好看点。
    2. 文件结构如下:(注意,以下目录结构来自5.0版本,升级之后酌情对照)
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    .
    └── C2000Ware_5_00_00_00 # 根目录
    ├── C2000WareUpdater.exe # 更新器,没用
    ├── C2000Ware_5.00.00.00_manifest.html # 类似于许可证,可以查看支持的板卡和库的级别
    ├── C2000Ware_v5.00.00.00_Release_Notes.pdf # 发行说明,没用
    ├── archive # 没用,存了个历史的库
    ├── boards # 给硬件看/你板子要看原理图的时候看
    ├── change_log.html # 没啥用
    ├── device_support # 军火展示+一些老的用寄存器写的例程(基本不用看)
    ├── docs # 目录导航`/docs/c2000Ware_quickstart_guide/html/index.html`
    ├── driverlib # 你滴库函数!!
    ├── examples # 重新导向你滴库函数
    ├── kernel # RTOS
    ├── libraries # 第三方库
    ├── license.txt # 法律文件
    ├── training # 类似于靶场,但是很烂
    ├── uninstallers # 卸载器
    └── utilities # 一些工具,目前没用
    1. 根据doc文档中说明如下:

    | Directory Name | Description |
    | ——————— | —————————————————————————————— |
    | .metadata | 包含 C2000Ware 资源浏览器独立 GUI 文件。请勿修改。 |
    | boards | 包含 C2000 controlCARDS的硬件设计原理图、BOM、gerber 文件和文档, |
    | device_support | 包含所有特定于设备的支持文件、位字段标头和设备开发用户指南。 |
    | docs | 包含 C2000Ware 软件包用户指南和所有软件包文档的 HTML 索引页。 |
    | driverlib | 包含特定于设备的驱动程序库和基于驱动程序的外围设备示例。 |
    | examples | 包含涉及多个设备/外设的示例,以展示不同的应用。 |
    | libraries | 包含特定于设备的库和核心库。 |
    | uninstallers | 包含 C2000Ware 卸载程序。 |
    | utilities | 包含开发实用程序应用程序,如闪存编程器、Windows 驱动程序和第三方软件 |

    4. 啊对,这么重要的东西CCS是不会给你下的。
    
  3. SysConfig:TI-CubeMX:SYSCONFIG IDE、配置、编译器或调试器 | TI.com.cn

    1. 功能没那么强大,而且需要手动添加软件包。image-20230728060521577选中<盘符>:\ti\C2000即可。
  4. ControlSuite:一个老的库支持软件,但是支持全中文。
    1. 里面有一些实用案例,结构还可以,可以拿来看。
    2. 和Ware一样,不创建启动方式,自己进去找。

迁移可以参考:https://www.ti.com.cn/cn/lit/ug/sprui45c/sprui45c.pdf

  1. 其他电机、控制包请参考大礼包 :)。

第一个工程模板

非常重要,直接面向C2000Ware编程的第一步!

创建你的英雄

直接放目录结构:

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
30
31
32
33
34
35
36
37
38
39
40
41
42
├── .ccsproject	# CCS创建的工程文件
├── .cproject # CCS创建的工程文件
├── .project # CCS创建的工程文件
├── App # 应用层,你编写的逻辑等
│   ├── inc # 你自己的库
│   └── src # 你的主要逻辑
├── Bsp # SysConfig生成的你自己的班级支持包
│   ├── board.c
│   ├── board.cmd.genlibs
│   ├── board.h
│   ├── board.opt
│   ├── c2000ware_libraries.c
│   ├── c2000ware_libraries.cmd.genlibs
│   ├── c2000ware_libraries.h
│   ├── c2000ware_libraries.opt
│   ├── clocktree.h
│   ├── pinmux.csv
│   └── untitled.syscfg # 双击可以进入配置界面
├── C2000Ware # \driverlib\f28004x\driverlib 全部内容
│   ├── ccs # 需要引用头文件,其中,DEBUG和RELEASE需要分开引入/排除
│   ├── inc # 寄存器层的东西
│   ├── …… # 其他DriverLib
├── Cmd # 烧写算法文件,原始地址为:\device_support\f28004x\common\cmd 按需选用
│   ├── 28004x_cla_flash_lnk.cmd
│   ├── 28004x_cla_ram_lnk.cmd
│   ├── 28004x_generic_flash_lnk.cmd
│   ├── 28004x_generic_ram_lnk.cmd
│   ├── 28004x_iqmath_flash_lnk.cmd
│   ├── 28004x_iqmath_ram_lnk.cmd
│   ├── 28004x_launchpad_demo_flash_lnk.cmd
│   ├── 28004x_launchpad_demo_ram_lnk.cmd
│   └── f28004x_headers_nonbios.cmd # \device_support\f28004x\headers\cmd
├── Debug # CCS自动生成的调试文件
├── Device # 设备描述文件,只要选用这几个即可,原始目录:\device_support\f28004x\common\include和source当中
│   ├── device.c
│   ├── device.h
│   ├── driverlib.h
│   └── f28004x_codestartbranch.asm # 板卡启动文件
├── Lib # 按需使用的C2000的库
└── targetConfigs # CCS生成的
├── TMS320F280049C.ccxml # 你的烧录器配置文件
└── readme.txt

主要构建步骤如下:

  1. 创建各个文件夹,并拖入文件:Cmd,Device,C2000Ware

  2. 使用SysConfig生成BSP,直接保存全部文件(右下角)image-20230728060700456

  3. 进入CCS之后创建工程,需要设置的地方如下:右键项目属性进入:

    1. 使用的RuntimeSupport和OutputFormat,以及使用的连接器/连接件也可以直接放在工程当中(Cmd,然后禁用其他的):image-20230728060810966
    2. 预定义设置DEBUG宏:image-20230728060905079
    3. Include(注意在引用Ware当中的2000之后,还需要引入Debug并且屏蔽Release(3个lib都需要屏蔽!):image-20230728071302694
    4. 右键禁用其他的连接文件,以免造成困扰:image-20230728061040737
      1. 推荐使用generic系列的。
    5. Main中建立主函数,构建如下,初始化顺序参考官方例程,如:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    #include "device.h"
    #include "driverlib.h"
    #include "board.h"

    /**
    * main.c
    */
    int main(void)
    {
    Device_init(); // 初始化设备
    Interrupt_initModule(); //初始化中断
    Interrupt_initVectorTable(); //初始化中断向量表


    Board_init(); //SysConfig文件引入

    Interrupt_enableMaster(); //开启中断

    while(1);


    return 0;
    }

外设

大礼包

一些“增值目录”

  1. TI官方软件板卡说明:C2000™ 软件指南 — C2000™ 软件指南 (ti.com)
  2. TI官方C2000主页:C2000 实时微控制器 | TI.com.cn

C2000的美化

CCS的汉化

  1. 众所周知,CCS是基于Eclipse的二次开发,那么,采用Eclipse的汉化方式当然可行。
  2. 帮助->安装新软件image-20230728054051651
  3. 名称随意添加,位置请添加:https://mirrors.tuna.tsinghua.edu.cn/eclipse/technology/babel/update-site/latest/
    1. 这是清华大学的babel镜像源,根据地理位置选择,搜一个。
  4. 然后在babel列表Fetch出来之后选择:image-20230728054225650
  5. 下一步下一步。

主题选择和美化

我这里安装我喜欢的暗色主题

  1. 帮助-->Eclipse市场,等待载入之后选择Poular,很快找到:image-20230728054402100
  2. Icon挺好看的,但是第三个安装不了(CCS缺JAVA包),点完了就点下一个吧。image-20230728054442741
  3. 安装完后如果不满意的后续更改:
    1. 窗口-->首选项-->常规-->外观:使用主题:image-20230728054546999
    2. 随后点击Open Color Themes Page进入主题的修改页,可以快速搭配,Enjoy!image-20230728054659114我的:Af7-Qw
    3. 如果有其他好看的主题请分享给我捏。

CCS使用小技巧

  1. CCS是默认开启代码补全的,只是需要快捷键触发,默认快捷键为:Alt+/

    1. 需要修改可以在首选项-->键当中搜索内容辅助进行修改:image-20230728054931246
  2. CCS恢复默认窗口:窗口-->透视图-->复位透视图根据需求恢复吧。image-20230728055002376

  3. Eclipse没有Copilot,但是应用商店里面有这个叫做Tabnine的插件,可以提供代码自动补齐,虽然反应不是很快;image-20230728064333468

    1. 在和我一起建立软件包之后,可以直接在code进行代码查找和开发哦w
    2. 白嫖Copilot的劳动力