0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

TFT-LCD控制器RA8889ML3N的显示控制功能如何移植到emWin中-教程

MCU+LCD显示控制技术介绍 来源:MCU+LCD显示控制技术介绍 作者:MCU+LCD显示控制技术 2023-06-20 15:34 次阅读

前言
瑞佑科技RA8889ML3N是一款功能强大的彩色液晶显示控制器,内置128Mb SDRAM, 支持1366x2048高分辨率液晶显示屏,单片机MCU端支持8080/6800 8/16-bit接口,以及¾线SPI 或IIC接口。 RA8889支持多图层应用、画几何图形引擎、2D图形加速引擎(BTE)、画中画(PIP 实现弹窗利器)、支持BMP、JPEG格式图片显示,并内置了视频解码功能。

如何将RA8889强大的显示控制功能移植到emWin平台,以求做出流畅、炫酷的UI操作界面,接下来就说明我们如何将RA8889的应用驱动移植到emWin GUI Library里,实现在emWin平台上使用RA8889内置的液晶显示控制功能。

以下范例是基于使用瑞福科技的RA8889 EV Board开发板,使用STM32F103VET6 MCU,和使用Keil MDK 编译。

pYYBAGSIJE2AcfvcAAbZj9plRw4528.png

详细步骤如下:

一、 获得 emWin Graphic Library
1. 安装 Keil MDK,在 C:Keil_v5ARMSeggeremWin 路径下获得 emWin library

pYYBAGSIJ3CAPjb_AAAgk1iXmKc385.png


2. 在 C:Keil_v5ARMSeggeremWinDoc 获得 emWin User&Reference Guide

pYYBAGSIKTSAIMejAAAk8fq6RTc121.png

3. 与瑞佑科技的深圳分公司(深圳瑞福科技-Q2851189731)联络,以获得最新版的RA8889_API_Demo_Vxx范例。
二、开始移植

RA8889_API_emwin546_stm32f103_8080IF 范例是由 RA8889_API_Demo_Vxx 加入emWin Library 产生的,以下修改说明请参考范例程序项目。
1. 首先新增 3 个文件夹 emwin_config, emwin_inc, emwin_lib

pYYBAGSIKsCAIFc-AAArmys2Pg8177.png

1) 在 C:Keil_v5ARMSeggeremWinSampleConfig,复制 GUIConf.c 、GUIConf.h 、 LCDConf.c 、 LCDConf.h 4 个文件到emwin_config 文件夹内。
(2) 在 C:Keil_v5ARMSeggeremWinSampleDisplayDriver,复制GUIDRV_Template.c 文件到 emwin_config 文件夹内。
(3) 在 C:Keil_v5ARMSeggeremWinSampleGUI_X,复制 GUI_X.c 文件到emwin_config 文件夹内。
(4) 在 C:Keil_v5ARMSeggeremWinInclude,复制所有的.h 文件到 emwin_inc 文件夹内。
(5) 在 C:Keil_v5ARMSeggeremWinLib,复制 GUI_CM3.lib 文件到 emwin_lib 文件夹内。 (由于我们的 STM32F103 是 CM3核心,所以选用 CM3)。
(6) 在 C:Keil_v5ARMSeggeremWinSampleApplicationGUIDemo 内,复制全部的文件夹到 emwin_demo 文件夹内。

2. 打开 Keil 项目,在 Manage Project Items 内建立 emwin_config 、 emwin_lib 、emwin_demo 3 个 Groups 并加入文件,如下图。

pYYBAGSIK7-AIQSvAADVtLQcs2c916.png

在 Option for Target 里面的 Include Paths 新增 3 个 include paths 如下图。

pYYBAGSILmaAH2YwAABy55NdajU943.png

3. 以上设定完后,我们编译时应该会产生以下错误:
Error: L6218E: Undefined symbol GUI_X_GetTaskId (referred from gui_task.o).
Error: L6218E: Undefined symbol GUI_X_InitOS (referred from gui_task.o).
Error: L6218E: Undefined symbol GUI_X_Lock (referred from gui_task.o).
Error: L6218E: Undefined symbol GUI_X_Unlock (referred from gui_task.o).
由于本范例没使用 OS 操作系统,所以我们先忽略这个问题,为了让编译可以正常进行,我们在 GUI_X.c 内加入这几个函数,如下图。

poYBAGSILyWAGAzxAABove29h4Y418.png

4. emWin GUI 时基源
emWin GUI 需要一个时基源并须1ms递增,即OS_TimeMS变数在GUI_X.c文件内声明,MCU必须先提供一个1ms的timer tick,通常在Cortex-M由SysTick的设定由SysTick_Handler{}中断函数去递增变量来实现,而本文范例采用MCU TIMER中断来提供1ms的tick,在stm32f10x_it.c内TIM3_IRQHandler()中断函数实现tick递增。
5 分配内存给emWin系统

在GUIConf.c文件内设定,内存大小会影响效能,须根据MCU的内存大小去配置。

pYYBAGSIMyuAf7KoAABlgKPxVJg593.png

6. GUIDRV_Template.c修改

使用GUIDRV_Template.c 作为新增一个GUI设备的驱动文件,emWin实现屏幕的驱动主要在于写一个点与读一个点,我们必须修改static void _SetPixelIndex(GUI_DEVICE * pDevice, int x, int y, LCD_PIXELINDEX PixelIndex)与static LCD_PIXELINDEX_GetPixelIndex(GUI_DEVICE * pDevice, int x, int y)两个主要函数,如下图。

poYBAGSIM3KAN_96AABtZsIZGT0066.pngpYYBAGSIM6uAaOS5AAByC81hfcY658.png

引入的 putPixel()与 getPixel()函数来自 RA8889_API.h,在这个范例选用 16bit RGB565 或24bit RGB888 数据格式,参考 UserDef.h 选用如下设定:
支持 16bit RGB565 (使用 emWin GUICC_M565)
#define Parallel_8080
#define MCU_16bit_ColorDepth_16bpp
支持 24bit RGB888 (使用 emWin GUICC_M888)
#define Parallel_8080
#define MCU_16bit_ColorDepth_24bpp_Mode_2
另外为了优化填充效率, 在 GUIDRV_Template.c 文件新增定义 Add2D_Optimize, 使用 RA8889 内建 2D 绘图加速功能并增加到_FillRect()、 _DrawHLine()、 _DrawVLine()函数内, 如下图:

poYBAGSINDmATDVxAABTjoPsGLU011.pngpYYBAGSINF-AMRTxAAA9Zmfy1sk605.png

7. 修改LCDconf.c 如下图:

poYBAGSINMmAKcDUAACCjxtLFjY015.png

上述设定完成后,在 main.c 加入以下内容,开始运行 GUIDEMO。

pYYBAGSINQuAVPe5AAAtGtXVb2E160.png

运行效果图如下:

poYBAGSINZqAPY8fAAiDOb51AY0622.png

三、在emWin平台上移植RA8889显示控制功能的优势

1)显示效果优化

利用RA8889内建DRAM与BTE功能取代emWin Memory Device功能,可实现刷新显示时不闪屏,具体如何应用,可与瑞福科技联系-Q2851189731;

2) 多缓存应用

利用RA8889内建的128Mbit DRAM ,分配内存给emWin在RA8889的显存上操作,即可实现:缓存1用于液晶屏的显示(即显示区)、缓存2 用于emWin的读写操作内存、另外可分配缓存3、缓存4…等等,比如缓存3可用于显示挂在RA8889上的Flash的图片,当需要显示时,即可用BTE的复制粘贴到显示区显示,比如缓存4用作视频的缓存纽带,可完美实现emWin窗口+视频播放的显示搭配效果;以上实现具体原理,以及代码例程,可与瑞福科技联系Q2851189731技术交流

总结:在emWin平台上配合使用瑞佑科技的液晶显示控制器芯片RA8889ML3N,即使低端的MCU,也可驱动高分辨率(1366*2048)液晶显示屏, 可做出流畅、炫酷的UI操作界面。

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    112

    文章

    16361

    浏览量

    178014
  • lcd
    lcd
    +关注

    关注

    34

    文章

    4426

    浏览量

    167470
  • TFT
    TFT
    +关注

    关注

    10

    文章

    385

    浏览量

    111086
  • 单片机
    +关注

    关注

    0

    文章

    216

    浏览量

    16658
收藏 人收藏

    评论

    相关推荐

    彩色液晶TFT-LCD显示控制芯片RA8889ML3N功能演示#寻找100+国产半导体厂家

    lcd液晶控制芯片TFT显示技术TFT-LCDLCD
    MTCN2013
    发布于 :2022年09月16日 10:43:53

    模仿RA8875/RA8876做个图形LCD控制器,STM32跑emWin接VGA显示器测试OK

    RA8875/RA8876上实现,但在emWin应用如果没有文字剪切显示的话就没法做移动窗口了! 做个列表对
    发表于 06-04 21:32

    TFT-LCD液晶显示控制器RA887X系列_工业级_抗干扰能力强

    系统,办公设备控制系统,语言翻译机,各类RFID设备等)开发板图片。TFT-LCD液晶显示控制器RA887X系列选型列表:深圳市瑞福科技有限
    发表于 06-16 16:39

    RA8889ML3N-电路参考,一款带AVI视频硬解的TFT-LCD显示控制芯片

    RA8889ML3N是一款低功耗及显示功能强大的彩色TFT-LCD显示控制芯片,内带记忆体SDR
    发表于 02-17 13:05

    基于CPLD的TFT-LCD控制器的设计

    文章介绍了一种基于CPLD的TFT-LCD控制器的设计和实现方法。增加片外SRAM,以提供显示缓存。并使用CPLD实现两大主要功能,一是产生TFT-
    发表于 12-27 15:11 75次下载
    基于CPLD的<b class='flag-5'>TFT-LCD</b><b class='flag-5'>控制器</b>的设计

    基于Xilinx FPGA SOPC的TFT-LCD 控制器设计与实现

    根据TFT-LCD的工作原理,采用Xilinx公司的Microblaze微处理软核,提出了一种基于嵌入式FPGA SOPC平台的TFT-LCD控制器方案.并验证了该方案的可行性。该
    发表于 11-22 07:23 2473次阅读
    基于Xilinx FPGA SOPC的<b class='flag-5'>TFT-LCD</b> <b class='flag-5'>控制器</b>设计与实现

    彩图TFT-LCD单芯片控制器ST7789V数据手册

    彩图TFT-LCD单芯片控制器ST7789V数据手册
    发表于 07-16 14:20 160次下载

    RA8889ML3N TFT LCD文字图形控制器规格书

    RA8889ML3N TFT LCD文字图形控制器规格书
    发表于 02-17 11:42 5次下载

    TFT LCD文字图形控制器RA8873ML4N规格书

    RA887ML4N是一款功能强大的彩色液晶显示控制芯片,内置64Mb SDRAM,支持800x480分辨率的TFT
    发表于 09-16 11:12 9次下载

    基于单片机的TFT-LCD控制芯片RA8889ML3N功能介绍

    RA8889ML3N是一款功能强大的彩色液晶显示控制芯片,内置128Mb SDRAM ,内置视频解码单元,支持JPEG/AVI硬解码播放
    的头像 发表于 09-26 15:34 2629次阅读
    基于单片机的<b class='flag-5'>TFT-LCD</b><b class='flag-5'>控制</b>芯片<b class='flag-5'>RA8889ML3N</b><b class='flag-5'>功能</b>介绍

    RA8889彩色TFT控制器规格书

    RA8889ML3N是一款功能强大的彩色液晶显示控制芯片,内置128Mb SDRAM,内置视频解码单元,支持JPEG/AVI硬解码播放为普通单片机实现视频播放提供可能.最大驱动 136
    发表于 02-02 16:01 4次下载

    emWin平台上应用RA8889显示控制的UI界面的优化

    本文在说明如何将瑞佑科技的RA8889(液晶屏控制器TFT LCD Controller)的驱动移植
    的头像 发表于 07-20 14:39 852次阅读

    TFT-LCD显示控制芯片选型表

    电子发烧友网站提供《TFT-LCD显示控制芯片选型表.pdf》资料免费下载
    发表于 11-03 15:26 7次下载

    TFT-LCD显示控制器RA8889ML3N原理图免费下载

    TFT-LCD液晶显示控制方案参考电路-原理图,适合1366*1024以下分辨率
    发表于 11-06 18:19 6次下载

    开发工具AP-Tool的MPU写图功能介绍-在RA8889ML3N的应用

    液晶显示控制芯片RA8889ML3N的图片写入功能介绍
    的头像 发表于 11-09 13:16 453次阅读
    开发工具AP-Tool的MPU写图<b class='flag-5'>功能</b>介绍-在<b class='flag-5'>RA8889ML3N</b><b class='flag-5'>中</b>的应用