作者:Chapter 1
链接:https://zhuanlan.zhihu.com/p/32740891
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
德州仪器的TMS320F28027具有4个EPWM模块,可以有8路PWM输出,主频60MHz,LQFP48封装,成本低,国内外有很多电源产品拿F28027做控制器。通过联合仿真可以实现Simulink模型到F28027硬件程序的一步转换。本期笔者测试了F28027与Simulink联合仿真的功能,把过程和结果分享给大家。
软件环境:MatlabR2017b,CCS 6.0.1.00040 ,controlSUITE 3.4.7,Texas Instruments C2000 Ware 1_00_03_00。
硬件环境:TMS320F28027 LaunchPad
步骤:
STEP1,打开matlab2017b,点击获取硬件支持包,如图1。安装“Embedded Coder Support Package for Texas Instruments C2000 Processors“,如图2。
图1
图2
STEP2,选择要联合仿真的硬件并点击Next,如图3。按照要求安装CCS,controlSUITE,C2000WARE,MATLAB会自动检测有没有安装相应的软件,如果软件都已安装完成,提示如图4(版本可能略微不同)。然后一直点击Next直到安装完成。
图3
图4
STEP3,进行Simlink与F28027联合仿真。打开MATLAB R2017b,选择附加功能管理,如图5。右键“Embedded Coder Support Package for Texas Instruments C2000 Processors”点击打开文档,如图6。点击图7红框“串行外部模式下参数整定与信号记录”中的Open Model。貌似只有这一个示例模型可以使Simulink与F28027联合仿真。
图5
图6
图7
STEP4,设置simulink模型,点击OpenModel,Simulink界面如图8。选择仿真参数设定(simulink窗口上方的齿轮,模型参数配置)并按图9所示设定参数,Hardwareboard选择F2802x(boost from flash),串口波特率设定合适值(经笔者测试F28027launchpad可以工作在波特率支持上限921600),注意SCI_A中波特率需和设备管理器中波特率一致。
图8
图9
STEP5,硬件设置,F28027lauchpad连接电脑后,在设备管理器中找到lauchpad对应的串口号,如图10,笔者串口号为COM2。回到模型参数设置,选择与设备管理器相对应的COM口,如图11。Lauchpad上的拨码开关位置如图12所示.
图10
图11
图12,LunchPad拨码开关位置
STEP6,点击运行,仿真结果和用户界面如图13所示。我自己写的ADC测试程序及仿真结果如图14图15所示,仿真结果中上部分波形为计算输出信号波形,下部分波形为ADC开路测试到的工频信号波形。
图13
图14
图15
总结
串口波特率921600情况下ADC1kHz的采样数据可以正常上传,波特率太低,可能无法实时上传完所有数据而出现数据丢失,表现为SCOPE显示波形不连续。
Simulink可以实现一键编译并下载到F28027 FLASH,但是编译时间较长,上图简单的模型的编译加下载仿真大概需要1分钟。
Simulink对F28027的支持还有PWM模块、DI、DO、SCI、SPI、IIC、IQmath等模块,应该可以实现大部分以往需要CCS编程可以完成的功能。
联合仿真中的模型貌似只支持Simulink Library 中的Discrete Block。
笔者第一次写专栏,有错误还请指正。转载请注明出处,谢谢合作。