0 引言
TI 公司 C2000 系列的 DSP 芯片主要面向数字控制、运动控制领域。在电机控制领域占有主导的地位。但是传统的代码开发方法周期较长,效率不高,有时可读性较差,难以修改、维护。随着工业技术的发展,控制系统的开发流程要求更低的成本和更短的周期,而 MATLAB/Simulink 配合 TI 公司的 DSP 正好为此提供一个很好的代码自动生成开发平台。缩短开发周期,提高可靠性,简化在调试过程中对参数的修改。用户可以在 Simulink 环境中将代码直接下载 到目标板并运行代码,简化代码开发过程,提高开发效率。
1 环境搭建
1.1 安装Matlab/simulink 2018b以上版本
1.2 安装CCS9
1.3 安装C2000 Simulink工具箱
打开 MATLAB 2018b, 在“”下,选择 Get Hardware Support Packages, 打开会出现下图所示
界面,点击 Embedded Coder Support Package For Texa instruments C2000 。
打开硬件支持包后,点击 “ 安装 ”
等待一会,出现如下图所示界面,点击“我接受”,然后点击“下一步”。
等待支持包下载安装
安装完毕后,点击“立即设置”
进入到下图的页面后,选择对应的芯片,点击“Next”。
进入到下图的页面,会自动绑定 controlSUITE 的安装路径,点击“Ne'x't”。
进入到下图所示的页面后,指定 CCS 的安装路径,点击“ Browse ” , 按照如图所示的文件
夹路径,点击“选择文件夹”,最后点击“ Validate ”校验即可进入到下一页面。
在这个界面下需要注意的是 Code Generation Tools 工具的选择,点击“ Browse ” , 安装的
CGT 工具可以在 C:\ti\ccs901\ccs\tools\compiler\ti-cgt-c2000_18.12.1.LTS 目录下寻找,配置完成
之后,点击“ Validate ”进行工具链的验证。
点击“ Validate ”验证 controlSUITE ,会自动跳转到下一个界面,最后点击“ Next ”安装成
功。
1.4 安装 MinGW-w64 C/C++
MATLAB 固然强大,其中的 Simulink 更是理工科仿真、建模研究中不可缺少的工具,一
般而言 MATLAB/Simulink 能满足多数使用要求,但是往往在研究中会使用 User-difinition
S-Function 或者调用 C , C++ 的库函数,这时候就需要 MATLAB 能进行 C , C++ 以及 Fortran
语言的编译。 但是 MATLAB 本身是没有包含上述语言的编译器,因此通常需要安装 MinGW ,要求 Windows 系统为 64 位。
第一步:单击工具栏上的“附加功能”图标,在弹出的下拉菜单中选择“获取附加功能”
选项,如图所示。
第二步:单击“获取附加功能”选项,在弹出的下拉菜单中单击“安装”按钮,如图所示。
第三步:在弹出的安装页面单击“我接受”按钮,然后在安装结束后,在 MATLAB 命令
窗口中键入: mex-setup 。
第四步:点击如上所示安装 C++语言编译,会得到如下图的提示。
1.5 安装 Control SUIT
安装 ControlSuite 是为了后期生成代码时, MATLAB 能够直接从中找到需要的库文件、头
文件和支持代码。进行解压,下图所示,打开 “controlSUITE3.4.5setup”.
选择和 CCS 同样的安装路径
2 simulink基础配置
2.1模型搭建步骤
还是拿LED点灯为例,一个简单的GPIO控制
模块说明:
(1)For Iterator Subsystem 模块是一个预先配置的 Subsystem 模块,可以作为一个起点,用于创建在仿真 时间步期间重复执行指定的迭代次数的子系统。
(2) Terminator ,使用 Terminator 模块终止输出端口
未连接其他模块的模块。
(3)Constant 模块生成实数或复数常量值。
(4)
Logical Operator 模块对其输入执行指定的逻 辑运算。
(5) Unit Delay 模块按指定的采样期间保持和延迟输入。
首 先 ,新 建 一 个 空 的 Simulink 模 型 ,命 名 为 28335_led 并保存,在模块浏览器中找到 Constant 、 Logi⁃ cal Operator、 Unit Delay 、 For Iterator Subsystem 、 Out1 模 块。其中,Constant 模块中的参数可以设置为任意整 数,在这里取 50 ;将 Logical Operator 中的 AND 改为
XOR ;双 击 进 入 For Iterator Subsystem 中 ,将 In1 和 Out1 删除,在加入一个 Terminator 并与 For Iterator 连 接,如图 1 所示。 For Iterator 中的 Iteration limit 参数控 制 LED 闪烁的频率,这里取 3000000 。
将所有模块连接,如图 2 所示。至此, LED 闪烁的控制模块搭建完成。
2.2 LED闪烁测试
在搭建完闪烁模型之后,现在 Simulink 中仿真一 下模型是否可以正常工作。加入 Lamp 和 Scope 模块。双击进入 Lamp 模块,设置如图 3 所示。
连接各模块如图 4 所示。运行之后, Lamp 模块会进行红绿色的交替闪烁。
验证完模型功能之后,将 Lamp 和 Scope 模块删 掉,加入 Digital Output (C2833x)模块,与 Logical Opera⁃ tor 模块连接,如图 5 所示。
3 自动代码生成配置
打 开 Model Configuration Parameters ,选 择 Hard⁃ ware Implementation,在 Hardware board 中选择 TI Del⁃ fino F28335。(我的是28377,原理都一样)
采样时间也设置一下,以led反转为0.5s吧
后面要设置和芯片匹配的文件了
作者:文采大力立诚00
链接:https://wenku.baidu.com/view/6265af4dac1ffc4ffe4733687e21af45b307fed5.html
Groups⾥⾯是⼀些资源的声明,类似ccs⼯程中的寄存器地址分配的⽂件。⾸先Build options设置为Build、load、run。
use custom linker command file勾选上,然后在Linker command file中可以点击Browse选择FLASH还是RAM。(这⾥说⼀下既然ccxml可以写修改,那么cmd⽂件应该也是能够修改的)
CCS hardware configuration file:选择默认路径的⽂件,但是需要⾃⼰去ccs中修改你的烧写器版本(100v1、100v2、100v3等等)。点击Browse复制下当前的地址,然后在CCS中File……Open File:然后输⼊相关路径点击转到,然后找到那个f28377/f28335.ccxml⽂件,修改对⽤的烧写器的版本(100v1、100v2、100v3等等)。然后保存,可以连接上板⼦进⾏测试⼀下(点击Test Connection),成功是弹出的对话框最后⾯会有success。
CCS内的配置,不熟悉可以看一下CCS的教程
设置好了之后再把文件选上
在Code Generation中选择执⾏优先、ROM优先、RAM优先。
Report中勾选如下:
然后点击Apply以及OK完成设置直接点击进⾏模型构建。这是可能会报错,当前⽬录在Matlab根⽬录的错误,直接在命令窗⼝进⾏相应的修改就可(最好定位到本Simulink⽂件存储的位置)。
按照上述步骤设置完成之后,将开发板连接到主 机上,然后点击编译按钮,生成代码的报告如图 6
所示。 代码生成完成之后,再用 CCS 对其建立工程并编 译,如图 所示。
另外强调的一点是,所有目录下只能是英文字母,不然会报错,包括Simulink下的目录,
报错如下
然后开发板上的LED就bulinbulin的闪了
还有什么要补充的呢。。。