聚丰项目 > 基于AB32VG1开发板的电子阅读器

基于AB32VG1开发板的电子阅读器

本阅读器使用中科蓝讯RISC-V内核MCU AB32VG1作为主控芯片实现对SD卡里的txt格式的文件的读取并显示。主要特点如下: 1、 采用一块2.8寸的TFT作为人机交互,利用触摸屏实现电子图书的导入,显示,上翻页,下翻页等功能。其中,为了减少IO资源的占用,本设计没有采用传统的8080并口TFT方案,而是采用了四线SPI接口显示方案,缺点是刷新率太低,软件模拟的SPI方案更加凸显了这种缺点(前期该芯片的硬件SPI并没有对外开放)。 2、 为了能够显示中文汉字,本设计中加入了GBK中文字库,使得本系统能够显示几乎所有的中文汉字。GBK中文字库文件的大小为几百k,显然直接存放在mcu内部flash并不可能实现,然而,AB32VG1开发板并没有外扩flash,那如何才能实现字库文件的存放呢?最终,我们使用的方法是,将字库文件存放在SD卡里面,需要显示中文汉字的时候,从SD卡里面读取对应汉字的中文码就可以了。通过这种巧妙的方法实现中文汉字的友好显示。 3、 本设计使用RT-Thread实时操作系统作为载体,提高了MCU的资源利用率,使开发更简单。

vala vala

分享
1 喜欢这个项目
团队介绍

vala vala

团队成员

vala 嵌入式软件

分享
项目简介
本阅读器使用中科蓝讯RISC-V内核MCU AB32VG1作为主控芯片实现对SD卡里的txt格式的文件的读取并显示。主要特点如下: 1、 采用一块2.8寸的TFT作为人机交互,利用触摸屏实现电子图书的导入,显示,上翻页,下翻页等功能。其中,为了减少IO资源的占用,本设计没有采用传统的8080并口TFT方案,而是采用了四线SPI接口显示方案,缺点是刷新率太低,软件模拟的SPI方案更加凸显了这种缺点(前期该芯片的硬件SPI并没有对外开放)。 2、 为了能够显示中文汉字,本设计中加入了GBK中文字库,使得本系统能够显示几乎所有的中文汉字。GBK中文字库文件的大小为几百k,显然直接存放在mcu内部flash并不可能实现,然而,AB32VG1开发板并没有外扩flash,那如何才能实现字库文件的存放呢?最终,我们使用的方法是,将字库文件存放在SD卡里面,需要显示中文汉字的时候,从SD卡里面读取对应汉字的中文码就可以了。通过这种巧妙的方法实现中文汉字的友好显示。 3、 本设计使用RT-Thread实时操作系统作为载体,提高了MCU的资源利用率,使开发更简单。
硬件说明

1.png



1.    主控采用中科蓝讯开发板AB32VG1,AB32VG1是基于RISC-V内核的MCU,最高120MHz系统主频,8Mbit的flash和192KB的RAM,对于这样一个配置,跑rt-thread和一些简单的GUI库都毫无压力。

2.    对于LCD的显示,为了节省IO引脚资源,本方案采用SPI方式进行通讯。

3.    LCD屏已经集成了触摸芯片,也是通过SPI的方式与MCU通讯。

4.    LED则使用板载的LED灯,主要功能是指示程序的运行状态。

 

接口定义

 

模块

名称

功能

MCU引脚

备注

LCD

CLK

SPI时钟信号

PE6


MOSI

SPI主机输出引脚

PE1


RESET

LCD复位引脚

PA1


DC

数据/命令控制信号

PE7


MISO

SPI主机输入引脚

PA0


CS1

LCD片选

PE0


触摸

CS2

触摸芯片片选

PE3


PEN

触摸中断信号

PE2


LED

LED

指示灯

PE4


PC

TX

PC发送

PA7

USART1

RX

PC接收

PA6


软件说明

软件部分主要分为4个TASK,分别为main,sd_mount,task_display,task_touch_scan。功能如下:

Main :功能初始化,邮箱初始化

sd_mount:实现SD卡的挂载

task_display:实现LCD的显示

task_touch_scan:实现触摸屏的检测

 

上电首先进行相关外设的初始化,然后是sd卡的挂载,挂载成功后进行LCD的显示和触摸屏扫描,显示和触摸是在不同的任务里进行的,任务之间通过邮箱进行通讯。


源代码如下:

AB32_txt_reader.zip


演示效果

由于视频比较大,无法上传。已经上传到哔哩哔哩了,地址:https://www.bilibili.com/video/BV1bM4y1A7aJ/


如下,是拍的两张照片:



评论区(0 )