单片机技术网|技术阅读
登录|注册

您现在的位置是:单片机技术网 > 技术阅读 > 这样开发PWM,保证你准时下班

这样开发PWM,保证你准时下班

摘要

本篇笔记主要记录基于MBD模型设计的PWM输出步骤和方法。前期工具箱的安装不在本文档讨论范围内。

准备工作

  • 安装好MPC5744基于模型的工具箱和支持包,这个可以在NXP官网下载

  • 2,按照文档配置编译器和设置路径以及license激活,QSG里面写的很清楚,这里不在赘述。

    模型设计

    正确安装MBD工具箱后,在simulink里面可以看到到MPC5744的外设和例程,这里我们设计三相PWM输出来建立名字为PWM的模型,为后续电机控制打下基础,因为三相PWM互补输出可以用来控制电机运转。


    建立的模型如下,根据自己的实际修改管脚和参数,这里使用PWM0,

    PWM 配置

    因为要控制电机,所以一般我们需要同步输出,使用subsystem 0 同步通道1和通道2. 保证管脚和频率,以及死区配置正确,就可以编译,如果没有错误,就可以生成代码。

    编译

    建立好模型后,编译如果没有错误就可以生成代码,也可以调整代码生成的配置选项。


    生成的代码


    烧录bootloader

    先将rbf文件bootloader烧进板子,这样就可以直接从simulink里面直接下载了。bootloader可以是串口,也可以是CAN口引导,如果之前已经烧录过bootloader,则这一步可以省略,如果不想使用bootloader也可以直接使用仿真器下载elf文件到你自己的板子中,或者将xml文件导入S32DS,使用仿真器可以在S32DS里面在线仿真。后面我们可以抽时间给大家介绍下怎么导入XML文件在S32DS里调试SIMULINK生成的工程。



    下载代码

    然后就可以重新编译并生成代码下载,





    测试

    使用示波器观察PWM输出是否符合预期输出,也可以使用freemaster软件上位机观测,这里使用示波器观测三相PWM输出。通过下图可以看到 PWM A0和PWMB0 输出互补, 10k频率,死区时间也符合设计。


    可以看到通过模型很好的控制了PWM输出频率和占空比,可以动态调整模型参数观测输出结果。

    总结

    至此基于MBD模型设计的PWM输出满足要求,符合设计需求,为后续电机控制模型打下基础,有兴趣的可以研究更多基于模型的PWM功能设计。