SWM341系列的介绍
本文介绍了华芯微特SWM341系列主要性能,和其系列之一的SWM34SRET6-50驱动4.3寸800*480 TFTLCD显示的例程应用。
SWM341系列性能
SWM341是一款基于ARM Cortex-M33的32位微控制器,片上包含精度为 1%以内的 20MHz/40MHz 时钟,最高可 倍频到 150 MHz 时钟频率,提供多种内置 FLASH/SRAM 大小可供选择,支持 ISP(在系统编程)操作及 IAP(在应用编程)。
外设串行总线包括2路 CAN 接口,4路 UART 接口、1路USB 2.0全速(OTG)控制器、3路SPI 通信接口(支持主/从/I2S 模式选择)及 2路I2C接口(支持主/从选择),还包括1个32位看门狗定时器,5 组32位加强型定时器,12组24位基础型定时器。10路独立通道16位的 PWM 发生器。2路共计16通道12位、2.5MSPS的逐次逼近型 ADC 模块。1路 RGB888/RGB565/MPU-I8080接口的TFT-LCD 液晶驱动模块。1路SDIO 接口。一个图像硬解码器 JPEG、1路数模转换 DAC 模块、 1路RTC实时时钟以及1个外接SDRAM 接口控制模块,同时提供欠压检测及低电压复位功能。具有高性能、低功耗、代码密度大等特点,适用于家用电器、商用电器、工业控制,电机驱动等诸多应用领域。
SWM34SRET6-50秉承了SWM341系列的功能及性能,其特点是内置了8MB的SDRAM。主要面向于TFT-LCD RGB565显示驱动应用市场,分辨率最高可达1024x1024,实际应用以800x480分辨率为主,其显示效果尤为良好,性价比突出。系统主频最高可达150MHz,SDRAM时钟频率最高140MHz,SFC接口模块驱动外置Spi-NorFlash的时钟频率最高可达系统主频。除驱动TFT-LCD显示外,还有预留ADC、PWM、DAC、SDIO、USB、I2C、UART、CAN、GPIO、SWD等扩展接口,可接各种外设应用。
SWM34SRT6-50显示驱动应用
SWM34SRET6显示开发板采用12MHz外部晶振,通过改动系统时钟配置文件,设置系统主频为140MHz,如图下图所示。
UI图片的显示处理
UI图片的存储包括在Spi-Flash中的存储和在SDRAM中的缓存。
例程中Spi-Flash中存储的UI素材以文件方式进行存储,通过SDIO通讯接口读取SD-TF卡根目录下的UI素材文件,进而使用SFC接口拷贝复制写入到Spi-Flash(W25Q128JVSQ)中。其中,SD-TF卡的文件系统格式须要求为FAT/FAT32格式,如不是该格式,请进行格式化。需要注意,使用SPI四线通讯时,Spi-Flash本身须支持四线QSPI通讯方式。
显示过程中,SDRAM作为LCDC功能模块和LVGL-GUI SDK显示缓存。
在此,我们以使用LVGL图片控件显示一张UI图片素材的完整过程来举例说明:
程序中预先定义并声明 lv_img_dsc_t ‘图片变量’,其结构体类型详见下图;
从SPI-Flash中读取图片文件信息,并依此对lv_img_dsc_t “图片变量”进行赋值,再将图片的RGB像素数据拷贝至对应的SDRAM区域中,
详见load_file.c中的copy_image_from_flash_to_sdram()
实现;
此时 lv_img_dsc_t “图片变量” 的 *data 已被赋值为指向 图片实际RGB像素数据的 SDRAM区域,在未改变该区域数据的情况下,用户直接调用LVGL的API即可显示图片,
即:lv_obj_t *obj = lv_img_create(lv_scr_act(), NULL);lv_img_set_src(obj, &图片变量);
最后请注意:当lv_img_dsc_t “图片变量” 的 *data 指向SDRAM区域内的值被改变后,须重新对lv_img_dsc_t “图片变量”赋值,以保持图片源地址的正确访问。