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 模块按指定的采样期间保持和延迟输入。
(6)Lamp 模块显示指示输入信号值的颜色。
(7)Scope 模块显示信号波形。

首 先 ,新 建 一 个 空 的 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的闪了

还有什么要补充的呢。。。

Matlab/Simulink代码生成到dsp系列(一)基础配置相关推荐

  1. 【更新v1.1】matlab/simulink代码生成与labview调用(DLL方式)

    文章目录 0. 补充内容:SIMULINK代码生成为DLL时封装多个函数 1. 测试范例 1.1 方法1:直接输入二维矩阵(推荐方案) 1.2 方法2:一维向量输入后转换二维矩阵(特殊情况) 2. 实 ...

  2. 使用Matlab+Simulink开发Cortex-M系列嵌入式处理器应用程序

    使用Matlab+Simulink开发Cortex-M系列嵌入式处理器应用程序 文档编号 TN_AAAA_A0 关键字 Matlab, Simulink, Cortex-M, 基于模型设计, Mode ...

  3. 永磁同步电机恒压频比(V/F)开环控制系统Matlab/Simulink仿真分析及代码生成到工程实现(二)

    文章目录 前言 一.SVPWM 二.永磁同步电机恒压频比开环控制系统Matlab/Simulink仿真分析 2.1.仿真电路分析 2.1.1.恒压频比控制算法 2.1.2.输出处理 2.1.3.主电路 ...

  4. 永磁同步电机恒压频比(V/F)开环控制系统Matlab/Simulink仿真分析及代码生成到工程实现

    文章目录 前言 一. 恒压频比(V/F)控制原理 二.永磁同步电机恒压频比开环控制系统Matlab/Simulink仿真分析 2.1.仿真电路分析 2.1.1.恒压频比控制算法 2.1.2.输出处理 ...

  5. P2 Matlab计算基础-《Matlab/Simulink与控制系统仿真》程序指令总结

    上一篇 回到目录 下一篇 <Matlab/Simulink与控制系统仿真>程序指令总结 Matlab_Simulink_BookExample 2. Matlab 计算基础 表2.1 Ma ...

  6. MathWorks官方MATLAB/Simulink基础入门视频教程 笔记(Simulink基础)

    MATLAB官方教程笔记第二篇了,上一篇主要讲的是MATLAB基础:MathWorks官方MATLAB/Simulink基础入门视频教程 笔记(matlab基础) 这一篇主要是讲simulink基础了 ...

  7. 零基础速成simulink代码生成——结合CANOE的DBC文件CAN报文代码生成 移植到硬件4

    零基础速成simulink代码生成--结合CANOE的DBC文件CAN报文代码生成 移植到硬件4 本次我们将讲解如何将代码放到嵌入式硬件上运行,本次例子将dbc文件导入simulink中,生成代码,不 ...

  8. Matlab/Simulink:动态系统模型的表示及仿真分析基础

    目录 1. 前言 2. 线性性 3. 无记忆系统 3.1 描述方式 3.2 无记忆系统例子 4. 线性时不变连续系统 4.1 基本概念 4.2 线性时不变连续系统 4.3 线性时不变连续系统的表示 4 ...

  9. simulink代码生成

    基于模型的设计概念 基于模型的设计(Design Based on Model),可简称为MBD,以MATLAB等软件为平台,让工程师在可视化开发环境中,一边进行需求分析.算法研究.模型与需求分析的双 ...

最新文章

  1. 任意角度人脸检测pcn
  2. 批量开物料账期的程序
  3. 【6】C++语法与数据结构之STL_list学生管理系统_链表外排序_函数指针
  4. swfobject.js视频播放插件
  5. OpenCV学习(二十) :分水岭算法:watershed()
  6. java clock计时_Java Clock类| offset()方法与示例
  7. firefox使用掘金插件_Mozilla发布新的附加组件来修复旧版Firefox中的扩展禁用问题...
  8. linux挂载VMFS硬盘,linux – ESX Guest中的硬件磁盘错误,在vmfs支持的驱动器上……这怎么可能?...
  9. kafka生产者API操作
  10. H264视频解码器C++工程说明
  11. 综合布线实训室解决方案(转载)
  12. 注册表删除windows开机启动项
  13. C -CPT-SS-PDI 喜树碱-双硫键-聚苝酰亚胺/PEI-g–PLO 聚乙烯亚胺-聚L-鸟氨酸
  14. VS code上如何实现一键生成代码片段
  15. express实现上传图片到七牛云
  16. 年轻人逃离算法?更懂你的时尚推荐算法,你会拒绝吗?| FashionHack 专栏
  17. windows下安装VIM
  18. Win11宽带连接错误651怎么解决?
  19. 股权控制权的五种设计策略
  20. 搜索与回溯:取石子游戏

热门文章

  1. CREO枕头模型制作
  2. Docker搭建持续集成平台jira
  3. En-Tan-Mo答社区用户问
  4. 开发零成本 :En-Tan-Mo黄皮书解读之开发者篇
  5. 【UE4从零开始 083】体积光照贴图
  6. Linux ALSA声卡驱动之五:Machine 以及ALSA声卡的注册
  7. Unity中利用动画机(Animation) 制作物体的爆炸拆解
  8. 微信公众号授权,支付,退款总结
  9. python 匿名回调函数_Python面试题之回调函数
  10. python京东购买_python大规模爬取京东