主要内容

接口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.观察液晶屏上的图像。