应用例程:通过SPI通讯控制TLC5615模块输出正弦波


基本信息

基于STM32F103RCT6核心板,通过SPI发送数据到D/A转换模块TLC5615,并在DSO138示波器中观察输出的正弦波信号。

视频下载

暂无

实验硬件

STM32F103RCT6核心板(1块)[ 购买 ]

CH340E通讯小板(1块)[ 购买 ]

Micro-USB通讯线(1根)[ 购买 ]

TLC5615模块(1块)[ 购买 ]

DSO138示波器(1块)[ 购买 ]

电路参考

  • CH340E通讯小板通过Micro-USB通讯线连接到电脑。
  • CH340E通讯小板的GND连接核心板的GND、+5V连接核心板的V5、串口TX、RX分别连接STM32F103xC核心板的RX、TX。
    CH340E通讯小板GND----GNDP4端子STM32F103xC核心板
    +5V----5V
    TXD----RX
    RXD----TX
  • TLC5615模块连接STM32F103xC核心板
    TLC5615模块VCC----5VP1端子STM32F103xC核心板
    GND----GND
    DIN----PB15
    SCLK----PB13
    CS----PB12
    DOUT----PB14
  • DSO138示波器连接TLC5615模块和STM32F103xC核心板
    DSO138示波器AIN-----GNDP3端子STM32F103xC核心板
    AIN+----OUTTLC5615模块

关键配置说明

添加Spi蓝图,在蓝图中添加SPI底层实现SPI2_SpiL。选择模块SPI2_SpiL,确认通讯使用的单片机的管脚为PB13、PB15、PB14。

选择模块Spi,在配置节点Device中,添加设备Device0,使用的底层实现为SPI2_SpiL。

选择模块Spi_Fe,在配置节点Port中,添加用户设备Port0,使用Spi模块中的Device0。

选择模块Spi,在配置节点Job中,选择系统自动创建的任务Spi_Fe_Port0_Spi,将片选管脚Cs修改为PB12,同时确认下通讯参数是否正确。

实验步骤

  • 在主循环OB中编写梯形图,首先用启动信号SM0.1将VD20赋值为0,然后用定时器T0产生1ms的信号。每过1ms,M0.0闭合一个周期。

  • 每过1ms,对VD20自加0.0981747角度(π/32)。VD20完成64次自加时,相当于自加了2π,便完成了一个周期。对VD20取正弦后,将数值线性化到0 ~ 4096的范围中。

  • 将VD32标准化为0 ~ 4095的16位整数,结果存放在AQW0中。

  • 调用Spi指令,将数据写入TLC5615模块。需要注意的是,因为数据宽度是16位,PLC变量使用的是大端存储模式,Spi驱动使用的是小端模式,因此在调用传输指令前,需要将AQW0进行一次SWAP操作。

  • 将配置上传到服务器,固件下载到STM32F103xC核心板后,将梯形图也下载到核心板;在DSO138示波器中观察正弦波信号。

指令说明

相关下载