首页 > 技术支持 > 应用与案例 > 正文
第三讲 单片机驱动彩色液晶屏 控制RA8889软件:如何初始化 作者:BW.SU   发表日期:2023-12-30   来源:菱致电子   浏览:
目录
第三讲 单片机驱动彩色液晶屏 控制RA8889软件:如何初始化 第七讲 单片机驱动彩色液晶屏 控制RA8889软件:显示文字:Part3.自建字库
第八讲 单片机驱动彩色液晶屏 控制RA8889软件:显示图片
第九讲 单片机驱动彩色液晶屏 控制RA8889软件:认识显存并进行读、写、复制
第十讲 单片机驱动彩色液晶屏 控制RA8889软件:图像运算
第十一讲 单片机驱动彩色液晶屏 控制RA8889软件:播放avi视频
第十二讲 单片机驱动彩色液晶屏 如何打包bin档
第十三讲 单片机驱动彩色液晶屏 bin档的烧录方法

 

先来了解一下RA8889的软件框架:



液晶屏参数、频率、通信接口等配置均放在userdef.h中用宏定义设置:

一、初始化配置硬件部份:


(1)MCU接口通信
若是并口,请选择Parallel_8080;这里是采用SPI-4,其它类推:

// #define Parallel_8080
// #define Parallel_6800
// #define Serial_3
 #define Serial_4
// #define Serial_I2C
 


(2)液晶屏参数

 #define AT070TN92  //##INNOLUX_800x480
 

该宏定义实际参数在RA8889.c里面,不同的屏,不同的分辨率,只需要在此模板进行微调即可,最后六个参数调整水平和垂直方向的偏移:

 #ifdef AT070TN92

  //**[10h]**//
  Select_LCD_Sync_Mode();  // Enable XVSYNC, XHSYNC, XDE.
  // Select_LCD_DE_Mode(); // XVSYNC & XHSYNC in idle state.
  
  PCLK_Falling();
  //PCLK_Rising();

  VSCAN_T_to_B();
  PDATA_Set_RGB();

  HSYNC_Low_Active();
  VSYNC_Low_Active();
  DE_High_Active();
  //DE_Low_Active();

  LCD_HorizontalWidth_VerticalHeight(800,480);

  /* [16h][17h] : Figure 19-3 [HND] Non Display or Back porch (pixels)  = (HNDR + 1) * 8 + HNDFTR 
   [18h] :   Figure 19-3 [HST] Start Position or Front porch (pixels) = (HSTR + 1)x8
   [19h] :   Figure 19-3 [HPW] Pulse Width(pixels)      = (HPW + 1)x8
  */
  LCD_Horizontal_Non_Display(38);
  LCD_HSYNC_Start_Position(208);
  LCD_HSYNC_Pulse_Width(8);
    
  /* [1Ch][1Dh] : Figure 19-3 [VND] Non-Display Period(Line) = (VNDR + 1)
   [1Eh] :   Figure 19-3 [VST] Start Position(Line)  = (VSTR + 1)
   [1Fh] :   Figure 19-3 [VPW] Pulse Width(Line)   = (VPWR + 1)
  */
  LCD_Vertical_Non_Display(8);
  LCD_VSYNC_Start_Position(22);
  LCD_VSYNC_Pulse_Width(15);

 #endif

 


(3)FLASH型号:
已经做好配置,直接选择,主流FLASH均支持,一般选用NOR FLASH即可。

// #define MX25L25635E
 #define W25Q256FV
 


(4)外接集通字库型号:
可支持的字库芯片型号以及字形码请参考RA8889的规格书说明。

// #define GT21L16T1W
// #define GT30L16U2W
 #define GT30L24T3Y
// #define GT30L24M1Z
// #define GT30L32S4W
// #define GT20L24F6Y
// #define GT21L24S1W
 


二、初始化配置 软件部分

(1)频率

分别是晶振频率、SDRAM频率、主频和液晶扫描频率(即PCLK)。晶振要求使用10MHz,SDRAM最高可支持到166MH,CORE最高支持到133MHz,实际可依据显示效果适当微调。

#define OSC_FREQ 10 // OSC clock frequency, unit: MHz.
#define DRAM_FREQ 120 // SDRAM clock frequency, unit: MHz.
#define CORE_FREQ 120 // Core (system) clock frequency, unit: MHz.
#define SCAN_FREQ 30 // Panel Scan clock frequency, unit: MHz.



(2)MCU通信接口和色深
RA8889可支持如下几种方式,MCU可采用8bit或者16bit通信标准;色深可定义为8bpp、16bpp或者24bpp,其中24bpp在16bit通信标准下衍生两种模式,具体可以参考RA8889的规格书,显示效果差别不大。

// #define MCU_8bit_ColorDepth_8bpp    
 #define MCU_8bit_ColorDepth_16bpp  
// #define MCU_8bit_ColorDepth_24bpp
// #define MCU_16bit_ColorDepth_16bpp  
// #define MCU_16bit_ColorDepth_24bpp_Mode_1
// #define MCU_16bit_ColorDepth_24bpp_Mode_2





(3)图像、画布宽度,屏的宽度和高度
画布和图像宽度一般是相同,这个参数一般是设定为屏宽的n倍。

#define canvas_image_width  1600 //画布宽度
#define main_image_width  1600 //图像宽度
#define LCD_width  800   //屏宽
#define LCD_height  480  //屏高
 



三、主程序的初始化部份

(1)GPIO配置及延时函数

 /* System Clocks Configuration */
 RCC_Configuration();
 delay_init(72); 
 GPIO_Configuration();
 SPI_Peripheral_Init();




(2)配置FSMC

 /* Enable the FSMC Clock */
 RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);
 FSMC_LCD_Init_H();
 


(3)RA8889初始化
该初始化会调用userdef.h中的宏定义参数,再将参数写入相关寄存器。

 RA8889_Initial();
 


(4)测试显示
初始化做完之后,再打开显示。彩虹条是用于液晶屏显示测试的,若正常显示,则说明屏的初始化已基本做完。

 Display_ON();  //打开显示
 Color_Bar_ON();  //显示彩虹条
 delay_seconds(1);
 Color_Bar_OFF(); //关闭彩虹条
 


彩虹条如下图,注意颜色排列顺序由黑、蓝、绿…白色排列,循环下去。若颜色不一致 或者有偏移,再检查接线以及微调屏参。





第三讲 THE END

分享到:

相关热词搜索:RA8889 液晶控制芯片 初始化

上一篇:一招教你判断TFT接口连接是否正常(RA8889,RA8876的应用)
下一篇:第四讲 单片机驱动彩色液晶屏 控制RA8889软件:绘图

>>延伸阅读:0

  • · 如何解决MCU与RA8889等液晶控制芯片的SPI通信问题 [2020-03-04]
  • · RA8889配套上位机使用简介 [2020-09-01]
  • · 介绍一颗51单片机就可以进行视频解码的芯片方案1366x768 [2020-09-07]
  • · RA88xx系列对显存直接读写点的方法 [2020-09-10]
  • · NAND FLASH的调用 [2020-09-14]