前言:
本文为4寸 480*480 RGB接口IPS全面触屏的86中控面板(RT-Thread+LVGL)软硬件开源干货内容,该项目是综合性非常强的RTOS系列项目!项目主控芯片使用 Model 3c,整体实现了简化版本的86中控面板的功能需求。项目可以学习的点非常多,包含:Model 3c 的硬件驱动,LVGL 的移植与RT-Thread 操作等。该项目的源代码适用于启明智显的出厂镜像,只学习应用层开发的也可以尝试学习该项目!
Model 3c芯片介绍:
Model3C 是一款基于 RISC-V 的高性能、国产自主、工业级高清显示与智能控制 MCU,配备强大的 2D 图形加速处理器、PNG/JPEG 解码引擎、丰富的接口,支持-40 至 +105℃工业宽温,封装采用QFN68,7x7x0.85mm,0.35mm 间距,Model3C 具有高可靠性、高开放性,可广泛应用于工业自动化控制、 串口屏等智慧工业和智慧家居领域。
Model 3c功能特性:
- CPU 内核
- 单核 E907,RV32IMAFC 指令架构,400MHz@1.1V
- 系统启动
- 默认按 SD Card(SDMC1)→ SPI NOR → SPI NAND → eMMC(SDMC0)顺序扫描启动
- 可通过烧写 eFuse 改变并固定启动介质
- 系统安全
- SPI 总线加密模块(SPI Crypto,SPI ENC),支持 SPI NAND/SPI NOR 在线 加解密
- 数据校验引擎(DCE),支持 CRC-32 多项式和累加和两种方式
- 内置 eFuse 512bits ,其中 128bits 供 用户 自定义使用
- 片内存储
- BROM 32KB
- SRAM 32KB
- PSRAM 两种规格可选:
32Mb,8-bit 位宽,最高频率 200MHz DDR
- 存储接口
- QSPI 支持 SPI NOR Flash / SPI NAND Flash
- eMMC 4.41/SD 3.01/SDIO 3.0
- 图像引擎
- DE 显示引擎:
支持一个 UI 图层,最高性能 1024x768@60fps
支持抖动、伽马及色彩矩阵调整 - GE 图像引擎:
支持 2D 图形加速,最大性能 1080P@60fps
支持水平和垂直翻转,90/180/270 度旋转 - VE 视频编解码:
JPEG 解码器,最高性能 720P@60fps
PNG 解码器,最高性能 720P@60fps
- 显示接口
- 支持 24-bit 并口 RGB,最高性能 1024x768@60fps
- 支持 SRGB/I8080/QSPI 屏接口
- 音频接口
- 左右声道数字 PWM 输出(DSPK)
- 通用接口
- 两路 SPI,支持 3 线/4 线接口,可配置为 Master/Slave
- 四路 UART,支持 2 线/3 线/4 线接口,兼容工业标准 16550,波特率偏差 <2%
- 两路 I2C,支持 7 bits 和 10 bits 寻址,最高速率 400Kb/s
- 两路 CAN,支持 CAN2.0A 和 CAN2.0B,可编程通信速率最高 1Mbps
- 一组 CIR,支持红外输入和红外输出
- 五组 GPIO 总共 60 个 IO,支持每个 IO 独立配置:
- 计数器
- GTC 通用计时器
- WDOG 看门狗
- PWM
- 模拟
- 内置 6 通道 12-bit GPADC,采样速率为 1MSPS
- 集成 RTP 电阻触摸屏接口
- 时钟和电源管理
- 芯片时钟源
支持无晶体方案,使用内置 OSC24M,精度±1%
支持外挂 24MHz 晶体,精度取决于晶体 - CMU 内置四个 PLL
- SYSCFG 内置三个 LDO
- 内置 THS 温度传感器,支持高低温中断报警和过温复位芯片
ZX3D95CM20S-V11开源硬件实物图:
ZX3D95CM20S-V1186中控面板PCBA原理图:
备注:ZX3D95CM20S-V1186中控面板原理图设计,搭载了驱屏MCU--Model 3c芯片、SPK喇叭、LCD屏+触摸、电源、RS485接口、DEBUG以及ESP32-C2模组;
ZX3D95CM20S-V1186中控面板软件开源:
备注:支持的UI驱动, 默认为 LVGL-8.3.10
备注:SDK 基于 RT-Thread 深度定制的 RTOS 系统,支持 RT-Thread 生态file:///C:/Users/Lenovo/Desktop/m3-doc/quick-start/sdk-brief.html#rtos
代码托管于 Gitee 服务器中,可直接克隆:
sudo apt-get install git-lfs
git lfs clone https://gitee.com/qiming-zhixian/zx-rtt-sdk.git
环境安装:
Linux环境准备
file:///C:/Users/Lenovo/Desktop/m3-doc/quick-start/sdk-brief.html#linux
资源库更新
在国内使用 apt 进行软件安装,会经常碰到 Index of /ubuntu/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 无法访问或者访问速度非常慢,最简单的办法是替换成国内比较快的镜像网站,测试中 mirrors.aliyun.com 的效果很好
sudo gedit /etc/apt/sources.list 中 cn.archive.ubuntu.com 全部更换为 mirrors.aliyun.com
sudo apt-get update
安装 scons
scons 是一个开发源码,以 python 语言编码的自动化构建工具,它是 Make 的改进的、跨平台的替代品,因此 Luban lite 选择 scons 作为构建工具, 但同时支持对 Makefile 的调用
sudo apt install scons
安装 pycryptodomex
pycryptodomex 是 python 的一个加密库,可以通过用 pip 安装 whl 文件, 也可以通过源码进行编译安装, SDK tools/env/local_pkgs/ 中内置了 pycryptodomex 源码
两种安装都需要安装 pip 来提供相应的组件, 并且 ubuntu20.04 中默认安装的 python3-pip
sudo apt install pip
cd tools/env/local_pkgs/
tar xvf pycryptodomex-3.11.0.tar.gz
cd pycryptodomex-3.11.0
sudo python3 setup.py install
Windows 环境准备:
http://file:///C:/Users/Lenovo/Desktop/m3-doc/quick-start/sdk-brief.html#windows
Windows 下的对应的各种工具已经存放在 tools/env/tools 目录当中,不需要安装
在 SDK 根目录下有两个批处理文件来实现命令行的使用方法。
ENV 运行环境
直接双击 zx-rtt/win_env.bat 打开专有的 Windows 的 env 命令行工具,后面所有命令都在该命令行工具中进行操作
ENV 是 RT-Thread 的原生工具,是 SDK 包中集成了编译所需要使用的所有的工具的一种使用方式
CMD 运行环境
http://file:///C:/Users/Lenovo/Desktop/m3-doc/quick-start/sdk-brief.html#cmd
直接双击 zx-rtt/win_cmd.bat 打开 Windows 的 CMD 命令行工具,后面所有命令的使用和 ENV 相同
CMD 是 windows 的使用环境,除了 SDK 的命令外,还可以使用系统自己安装的工具的命令,因此功能更强大
编译 ZX-RTT
http://file:///C:/Users/Lenovo/Desktop/m3-doc/quick-start/sdk-brief.html#zx-rtt
scons --list-def //查看有多少配置
scons --apply-def=0 //选择 0 号配置
scons //编译
......
Image file is generated: output/ZX7D0N_rt-thread/images/m3_ZX7D0N_page_2k_block_128k_v1.0.0.img
编译后的镜像名称为 m3_ZX7D0N_page_2k_block_128k_v1.0.0.img
烧录:
ZX-RTT 提供一组工具:
-
PanelLanDownloader:单机刷机软件
-
调试烧录工具:
下载
相关工具使用 gitee 存储和管理,位于 ZX-RTT SDK的tools/downloader目录下
ls zx-rtt-sdk/tools/downloader
PanelLanDownloader.zip
驱动安装
WINDOW 环境下解压 PanelLanDownloader.zip 后, 进入 PanelLan_Device_drive 目录, 双击 InstallDriver.exe 根据向导指引即可完成安装
刷机
PanelLan的使用非常简单,选择编译好的镜像,在开发板进入烧写模式后点击"开始"按钮即可自动进行烧写,进入烧写模式,主要以串口烧录;
烧写镜像完成后可以通过串口进行信息的查看,默认的调试串口配置信息为
-
BaudRate:115200
-
Data bits:8
-
Stop bits:1
-
Parity:None
-
Flow control:None
RTOS SDK开源内容清单:
开源地址:https://gitee.com/qiming-zhixian/zx-rtt-sdk.git
敬请期待M3 7寸1024*600 IPS全面触摸开发板开源