接口LCD助推器包与德州仪器C2000处理器
本示例展示如何配置和使用Kentec QVGA显示增强包,使用德州仪器C2000处理器的C28x™外设显示图像。
使用这个例子,你可以:
通过串行外设接口(SPI)配置Kentec QVGA显示
使用直接内存访问(DMA)通过SPI显示图像
所需的硬件
F28379D发射台
Kentec QVGA显示增强包
硬件连接
在F28379D发射台上安装Kentec QVGA显示增强包。显示器使用以下引脚映射与F28379D Launchpad。
通过SPI配置Kentec QVGA显示
在图像从主机传输到F28379D Launchpad之前:
禁用串行通信接口(SCI)中断,确保DMA通道处于暂停状态。
初始化显示。
open_system (“c2837xD_lcd_display.slx”);
初始化Kentec QVGA显示器
1.重置LCD,打开背光,选择SCS引脚并等待1毫秒。
2.配置以下寄存器:功率参数、像素格式、显示方向、MCU接口参数、显示控制、Gamma校正和功率控制。若要配置Pixel格式-退出睡眠模式,请等待30毫秒,然后配置寄存器。
3.显示一个绿色液晶屏上的彩色图像显示初始化结束。
4.启用SCI中断和DMA通道。
使用DMA通过SPI显示图像
为了在LCD上显示图像,图像数据必须通过SCI从主机传输到目标F28379D Launchpad。
由于目标F28379D发射台上的低内存限制,不可能将整个图像数据从主机发送到目标F28379D。相反,图像数据通过SCI从主机传输到目标F28379D。这些块存储在一个小的内存部分中Image_Array
在目标上。双缓冲用在Image_Array
通过SCI从主机读取的数据和通过SPI接口传输到LCD显示的数据之间的数据完整性。缓冲区被称为ping缓冲区和pong缓冲区。
在主机上运行该函数
这个函数c2837xD_serial_send.m执行如下操作:
在主机上运行,读取映像,并设置SCI参数。
通过SCI将整个缓冲区的16位图像数据以小块形式发送到目标F28379D。
为每个缓冲区添加与块大小相同的常量分隔符,以指示新缓冲区的开始。
下表解释了使用的参数及其大小。
要发送整个图像,缓冲区传输必须发生20次,即图像大小/缓冲区大小。图像大小
= 20 x缓冲区大小= 20 x(区块大小x SCI传输数量)
在目标上运行模型
在目标的模型端,发生以下事件序列:
1.目标等待SCI中断。当串行接收缓冲区接收到块大小的数据时,SCI中断被触发。
2.在串行中断服务例程(ISR)中,数据被复制到的ping/pong缓冲区中Image_Array
.该模型使用串行分隔符来标识目标中数据的开头。这个过程一直持续到缓冲区传输完成为止。
3.串行现在切换到ping/pong之间的备用缓冲区,以填充数据并启用用于DMA传输的SPI事件触发器。
4.DMA开始将数据从第一个填充的缓冲区推送到SPI传输FIFO缓冲区。数据通过SPI传输到显示器,当缓冲区为空时,SPI Transmit触发DMA事件。这个过程继续进行,直到第一个填充的缓冲区数据完全传输到显示器。
5.一旦转移完成:
DMA被暂停,DMA的起始地址被更改为备用缓冲区
一个确认被发送到主机计算机,显示第一个缓冲区为空,以接收新的串行数据
上述顺序继续进行,直到整个图像数据被传输到显示器。
配置并运行模型
1.打开液晶显示器模型。
2.去建模按下TAB键Ctrl + E打开“配置参数”对话框。
3.去硬件实现并选择硬件板.
4.去硬件实现>目标硬件资源>构建选项并选择允许DMA访问外设帧2 (SPI和McBSP)而不是CLA.
5.去硬件实现>目标硬件资源>SPI_A并设置期望波特率(比特/秒)来16000000
而且STE销来没有一个
.
6.去硬件实现>目标硬件资源>DMA_ch1并按所示更新参数值。
7.导航到硬件按下TAB键Ctrl + B.LCD变为绿色,表示Kentec QVGA显示初始化成功。
8.在主机上运行该函数c2837xD_serial_send
.函数有两个参数:
串行通讯端口-浏览至设备管理器>端口(COM & LPT)找到COM口。
图片的名字-要显示的镜像文件的文件名。
在MATLAB®命令提示符下执行以下命令:
c2837xD_serial_send(“COM2”、“mathworks.jpg”);
9.观察液晶屏上的图像。