DSP2833x自动代码生成 Simulik自动生成代码 其中包括22页的代码生成笔记,随书仿...
DSP2833x自动代码生成 Simulik自动生成代码 其中包括22页的代码生成笔记随书仿真模型环境搭建视频教程视频等等「搞DSP2833x开发还在手搓寄存器这玩意儿配置起来简直反人类」去年第一次接触C2000系列时我对着数据手册上密密麻麻的寄存器描述差点摔键盘。直到发现Simulink自动生成代码这柄瑞士军刀开发效率直接原地起飞——今天咱们就手把手盘它装环境这事儿绝对是个技术活。别急着打开CCS先把MATLAB的C2000硬件支持包安排上记得选对应2833x型号。重点来了Target Preferences里的CPU频率必须和你的开发板晶振一致我见过三个哥们栽在这个坑里对着黑屏的板子怀疑人生。随书的环境搭建视频第7分23秒有个骚操作——直接把仿真模型的系统时钟模块参数复制到配置界面实测能避免99%的时钟配置错误。来看这个PWM波生成的示例模型模型文件在随附资料/SIMULINKMODEL/PWMGeneration.slx。关键配置藏在Hardware Implementation标签页把PWM1A的CMPA寄存器绑定到Compare模块输出注意死区时间参数得用DBCTL[INMODE] 0x3这种位操作表达式。生成的代码里你会看到EPwm1Regs.CMPA.half.CMPA pwmcompare;这种直接怼寄存器的骚操作比手动写省了至少两小时调试时间。DSP2833x自动代码生成 Simulik自动生成代码 其中包括22页的代码生成笔记随书仿真模型环境搭建视频教程视频等等烧录环节有个隐藏技巧用CCS导入生成的.out文件后先在Memory Browser里搜索关键字Init_EPwm这里能看到所有PWM模块的初始化代码段。我习惯在这里打断点验证配置是否生效比在茫茫代码里找寄存器直观十倍。上周帮学弟debug时发现他生成的ADC采样代码里居然缺少SOC触发配置——后来发现是Simulink模型里ADC模块的Start Conversion信号没接触发源这种错误在仿真里完全看不出来必须结合代码反查模型。代码生成笔记第15页那个红色警告框千万别忽略当模型里用了DSP2833x_Device.h未定义的GPIO功能时生成的代码会偷偷用GpioDataRegs.GPxSET这种暴力写法。有次我的板子烧了三个MOS管才明白这种操作会引发总线冲突正确做法是在模型里勾选Enable bit-banded access选项让编译器自动生成带保护机制的位操作代码。最后安利下随附的教程视频彩蛋在PWM中断服务函数里插入asm( NOP);指令用示波器抓取中断响应时间。对比手写汇编和自动生成的代码时间差竟然在5个时钟周期以内——这精度做电机FOC控制完全够用。下次谁再说自动生成代码效率低直接把逻辑分析仪截图甩他脸上
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2413887.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!