目录
一、前言
近期参与开发某款电子消费产品, 其对SoC的规格要求 一方面要求具备BLE能力,另一方面需要主控有较强的驱屏能力及较强的图形化处理能力。在对主控SoC进行选型时候, 接触选择了汇顶科技研发的 GR5526 芯片。 这块BLE SoC芯片, 同时增加了 2.5D GPU处理器和大容量的PSRAM 来提供强大的图形处理能力, 满足产品的规格需求。
在这段时间, 通过其提供的SK开发板和SDK开发包, 学习了下如何用 GR5526 开发出比较炫酷的 3D 效果, 并将其应用到产品中 (其实其SDK 已提供了多种开发好的效果, 我再跟着SDK和文档捋一下思路, 主打的就是一个学习记录 : ) )
这几篇博客, 主要用于记录整个学习和开发过程。
二、芯片的参数
下面的参数主要整理自 GR5526 的Datasheet 和 GPU开发指南 (汇顶官网(www.goodix.com)可以下载到), 可以初步根据参数评估其各方面的性能. 直接列出来参考下。亮点 有 512KB SRAM + 64MBit PSRAM + GPU + BLE + 96MHz 主频、另外有3路高速QSPI 加 2个DMA.
表1:GR5526 主要参数梳理
芯片型号 | GR5526 |
CPU 核 | 96MHz@M4F |
SRAM | 512 KB |
代码执行 | QSPI Nor Flash , 8M Bit (SIP) |
可用的存储扩展接口 | 48MHz QSPI |
扩展RAM | SIP, 64MBit & 48MHz OSPI DDR PSRAM |
DMA | 2xDMA ( 6channels, LLP, S&G) |
支持的屏幕显示接口 | 48MHz QSPI 48MHz DC (1-SPI、3/4-wire SPI、QSPI) |
Audio Unit | PDM |
GPU Feature | |
基础图元绘制 | 支持 |
BLIT绘制 | 支持 |
Anti-Aliasing(抗锯齿) | 支持 |
各种图形混合模式 | 支持 |
支持的颜色格式 | 32-bit RGBA8888/BGRA8888/ABGR8888 ; 24-bit RGB ; 16-bit RGBA5551/RGB565 ; 8-bit A8/L8/RGB332 |
边缘模糊 | 支持 |
渐变色 | 线性渐变、三角渐变 |
任意角度旋转 | 支持 |
图片拉伸 | 支持 |
镜像 | 支持 |
硬件压缩/解压缩 | 支持 |
Mask/Stencil(蒙版) | 支持 |
Color-Keying (色彩键控) | 支持 |
2.5D Perspective Correct Projections (透视校正投影) | 支持 |
空中颜色格式转换 | 支持 |
BLE | BLE 5.3 BLE Audio BLE AOA/AOD positioning |
外设 | |
1 x SPI Master @ 48MHz | |
1 x SPI Slave | |
3 x QSPI @ 48MHz | |
1 x I2S Master | |
2 x DMA @ 6ch | |
1 x I2S Slave | |
6 x I2C @ 3.4 MHz | |
6 x UART with IrDA | |
13-bit ADC | |
6 x PWM | |
4 x Hardware Timers | |
2 x WDT | |
2 x RTC | |
1 x DSPI | |
1 x OSPI (提供 OSPI DDR PSRAM) | |
1 x 2.5D GPU | |
1 x DC | |
1 x USB 2.0 FS | |
1 x PDM | |
GPIO@50 max |
三、图形化模块梳理
从上表可以看到, GR5526 提供除 BLE 能力外, 对图形化模块的支持是比较丰富的.
1. 图形化资源速览
在图形化产品中, 一般需要提供用于资源存储的外设模块、用于图形渲染的运算模块、用于刷屏的高速数据搬运模块.
表2: GR5526 显示及图形化能力配置
系统主频 | 外设QSPI频率 | SRAM | QSPI0~2 | DMA | DSPI I/F | OSPI.DDR | GPU | DC |
96MHz | 48MHz | 512KB | √ Nor-Flash(XIP-Read) √ Nand-Flash √ Q-PSRAM(XIP-RW) √ Display | √ DMA0 √ DMA1 | 48MHz | √ (48MHz) | √ (96MHz) | √ (48MHz) |
主要的图形化能力说明如下:
1. 算力提供
(1) CPU
(2) GPU(用于图形的渲染)
2. 素材/纹理数据持久化存储
(1) NOR Flash
(2) Nand Flash
(3) XQSPI Flash(代码空间剩余部分,可部分用作数据存储空间)
3. 计算及缓存空间
(1) 512 KB 片内SRAM
(2) 最大外扩 512Mbit QSPI PSRAM 存储空间
(3) 内置 64 Mbit OSPI DDR PSRAM 存储空间
4. 数据传输增强/帧率加速
(1) DMA0/DMA1
5. 显示接口(涵盖MIPI DBI Type-C 接口)
(1) QSPI 接口
(2) SPI Master 接口
(3) Display SPI 接口
(4) DC显示接口(Display Controller)
6. 图形效果增强
(1) GPU(GPU版本SoC)
(2) DMA
2. GPU 模块简要说明
图形处理器(Graphics Processing Unit,GPU),又称显示核心、视觉处理器,是一种专用于图像和图形相关运算工作的微处理器。GR5526配备的GPU模块,以极小的硅片、功耗预算,为用户界面带来高质量的图形效果,适用于具有低成本和超低功耗要求的物联网平台、可穿戴和嵌入式设备。开发人员能够以更低的成本,为功率、内存区域受限的物联网设备,创建具有超长电池寿命且引人注目的图形用户界面(Graphical User Interface,GUI)和软件应用程序
功能特点
• 硬件组件:具有可编程着色器引擎、基于DMA可减少CPU开销的命令列表、原始光栅化器、纹理映射单元、混合单元
• 绘制基元:像素/线条图、填充矩形、三角形(Gouraud Shaded)、四边形
• 颜色格式:32位RGBA8888/BGRA8888/ABGR8888、24位RGB、16位RGBA5551/RGB565、8位A8/L8/RGB332、TSC™等
• 压缩方案:提供-硬件 解压/解压缩能力,
• 图像变换:纹理映射、点采样、双线性过滤、位块传输、任意角度旋转、镜像、拉伸(独立于x和y轴)、源和/或目标颜色键控、即时格式转换、2.5D透视投影
• 文本渲染支持:位图抗锯齿A1/A2/A4/A8、字体紧缩、Unicode(UTF8)
• 混合支持:完全可编程的Alpha混合模式(源和目标)、源/目标颜色键控
• 抗锯齿:8 x MSAA(Multi-Sampling Anti-Aliasing,多重采样抗锯齿)、每条边的四边形抗锯齿、每条边的三角形抗锯齿、抗锯齿粗线、抗锯齿圆
要点: GPU相对CPU, 具备更高效强大的图形处理能力
3. 显示控制器模块简要说明
显示控制器(Display Controller)主要用于配合GPU使用,将渲染完成的帧缓冲区(FrameBuffer),送至Display进行图形显示,帧缓冲区典型格式包括RGBA8888、RGB565、TSCx 等。支持的屏幕接口规范主要为MIPI DBI(Display Bus Interface)Type-C, 涵盖的时序协议主要有:
• 3-Wire SPI
包含 SPI_CS(片选信号)、SPI_SCLK (时钟信号)、SPI_SD(数据输出)三根信号线, 其中命令字(Command Word)由9-bit构成, 包含1-bit的数据/命令指示位和8-bit的命令字(Command Word); 而数据字(Data Command)由1-bit数据/命令指示位和若干位像素数据位构成。
• 4-Wire SPI(扩展DCX信号线)
包含 SPI_CS(片选信号)、SPI_SCLK (时钟信号)、SPI_SD(数据输出)、和SPI_DC(数据/命令指示信号)4根信号线,其中命令字(Command Word)由8-bit构成,而数据字(Data Command) 由若干位像素数据位构成。
• Dual SPI
包含 SPI_CS(片选信号)、SPI_SCLK (时钟信号)、SPI_SD(数据输出)、和SPI_SD1(数据输出1)4根信号线,命令字(Command Word)一般由SPI_SD线发送而数据由 SPI_SD和SPI_SD1共同发送;其中命令字(Command Word)由9-bit构成,包含1-bit的数据/命令指示位和8-bit的命令字(Command Word);而数据字(Data Command) 由1-bit数据/命令指示位和若干位像素数据位构成。
• Quad SPI
包含 SPI_CS(片选信号)、SPI_SCLK 9时钟信号)、SPI_SD(数据输出)、SPI_SD19(数据输出1)、SPI_SD2(数据输出2)、SPI_SD3 (数据输出3)6根信号线, 命令类型可以被SPI_SD 或所有SPI_SDx 传输。时序一般由 8-bit命令头、24-bit命令字和若干像素数据组成。
显示控制器内置DMA,用于加速帧数据对送显,同时具备一次性送显一个完整帧数据对能力
- 要点 : 显示控制器模块能支持 MIPI DBI TYPE-C 的所有硬件时序
4. PSRAM 模块说明
PSRAM 在用户侧使用起来, 跟 SRAM一样, 相对SRAM, 只需要增加一次初始化. 可以理解为一种慢速SRAM, 但从GR5526的PSRAM规格判断, 其PSRAM访问带宽也应该很客观. 挖个坑, 后续有时间再补充一篇 PSRAM 访问效率的测试文章.
5. QSPI 模块说明
从 GR5526 的 Datasheet 看, QSPI 模块比目前市面SoC的QSPI, 有一些有意思的特性, 同样挖个坑, 后面有时间专门开一篇博客讲讲. 提前感兴趣的朋友, 可以去汇顶官网下载GR5526 的Datasheet 看看 : )
四、小结
这篇文章, 主要先梳理汇总了一些模块知识. 后面开始进入GPU图形化模块的学习, 同时穿插一些其他模块的知识.