目录
SPI介绍
模型搭建
SPI介绍
SPI即Serial Peripheral Interface是高速同步串行输入/输出端口。SPI目前被广泛用于外部移位寄存器、D/A、A/D、串行EEPROM、LED显示驱动器等外部芯片的扩展。与前文介绍的SCI最大的区别是,SPI是同步串行接口。 SPI接口的通信原理简单,以主从方式进行工作。在这种模式中,必须要有一个主设备,可以有多个从设备。通过片选信号来控制通信从机,SPI时钟引脚提供串行通信同步时钟,数据从从入主出引脚输出,从出主入引脚输入。通过波特率寄存器设置数据速率。SPI向输入数据寄存器或发送缓冲器写入数据时就启动了从入主出引脚上的数据发送,先发送最高位。同时,接收数据通过从出主入引脚移入数据寄存器最低位。选定数量位发送结束,则整个数据发送完毕。收到的数据传送到SPI接收寄存器,右对齐供CPU读取。
模型搭建
【第一步】在Solver中设置定步长为0.05秒,在Hardware Implementation中配置系统时钟为90MHz,LSPCLK低速时钟外设4分频,主要设置SPI_A的Enable loopback,将SIMO pin assignment、SOMI pin assignment、CLK pin assignment、STE pin assignment四个引脚配置如图所示的I/O口。
【第二步】搭建占空比选择子系统,如图所示。
【第三步】选择SPI Transmit和SPI Receive的模块为SPI_A,其他参数默认。
【第四步】配置PWM输出,定时器周期为64000,计数方式为向上计数UP,不分频。 使能ePWM1A,当计数值等于定时器周期值PRD时置低,当计数值等于向上计数的CAU时置高,其他计数为Do nothing不动作。 使能ePWM1B,当计数值等于定时器周期值PRD时置高,当计数值等于向上计数的CBU时置低,其他计数为Do nothing不动作。 比较计数,选择Clock cycles,CMPA initial value、CMPB initial value的值由外部输入,初值为0,如图所示。
【第五步】在上述配置完成,并完成模型的搭建后,如图所示。选择占空比为75%,将模型编译下载到主控板。
【第六步】然后在CCS中打开模型生成的工程文件,先单击【编译】按钮,再单击【调试】按钮,然后将图中的两个变量添加到Expressions中,单击【运行】按钮,可以看到TBPRD、CMPA,CMPB的值。可以将主控板的PWM1A引脚和PWM1B引脚分别连接到示波器的信号线,主控板和示波器记得要共地,便能观测到两路PWM的频率是否都为1kHz,占空比是否分别为75%和25%,波形是否互补。
【第七步】在Simulink中选择占空比为50%,重新编译下载,然后在CCS中观察数据,两路PWM的占空比都为50%。
【第八步】在Simulink添加两个Scope,如图所示,选择External模式,主控板连接USB转TTL模块,选择对应的COM口,波特率115200,选择占空比为75%,单击【运行】按钮,可以观测Scope1的数据是否和Scope的数据一致,在运行状态下可以改变占空比的大小,看Scope1的数据变化,如图所示。