Model3芯片简介:
启明智显发布的HMI工业级芯片Model3(简称M3芯片)是一款高性能的显示交互和智能控制 MCU,采用国产自主高算力 RISC-V 内核,内置片上 1MB 大容量 SRAM 以及 64Mb PSRAM,并提供丰富的互联外设接口,配备了 2D 图像加速引擎和 PNG 解码/JPEG 编 解码引擎,可以满足各类交互设计场景和多媒体互动需求,具有高可靠性、高安全性、高开放性的特点,使得它在工业自动化控制、HMI人机交互、工业HMI、智慧家居、家电、串口屏、彩屏仪表、86中控面板等众多领域都展现出了强大的应用潜力。
Model3(简称M3芯片)PSRAM使用指南及PSRAM溢出如何进行问题定位:
术语定义
概述
本篇应用XSPI模块,本模块的功能主要实现了外部并行总线Xccela、HyperBus、OPI、1/2/4/8线SPI。 本总线模块可用于与外部PSRAM、FLASH等元器件实现连接。
功能特性
-
支持Xccela协议
-
支持HyperBus协议
-
支持OPI协议
-
支持1/2/4/8线SPI
-
支持200MHz DDR/SDR采样
-
支持XIP
-
支持中断以及DMA
-
支持两片并行读写数据
-
支持单片16bit读写数据
-
具有16x32bit TXFIFO以及RXFIFO
-
具有512MB 内存映射空间
原理框图
Model3(简称M3芯片)方案
实现OPI方式与PSRAM通信,采用双边沿采样,支持parallel(两片PSRAM)/single(一片PSRAM)驱动PSRAM。
参数配置
驱动配置
使能 XSPI 相关的驱动,在 ZX-RTT 根目录下执行 source onestep.sh
并lunch相关bootloader配置文件, 再执行 scons --menuconfig
,进入menuconfig的功能配置,在 SDK 的配置界面中,进行下列的选择:
Bootloader options --->
Drivers --->
[*] PSRAM support
PSRAM Parameter --->
(0) XSPI CS0 data PIN remap
(0) XSPI CS1 data PIN remap
(198000000) XSPI CLK config, range 50MHz-200MHz
M3 PSRAM 合封在芯片的方案中,PSRAM是属于芯片封装一起的, data引脚复用已经固定,无需配置,用户可调整CLK 。
备注
198000000 XSPI CLK config, range 50MHz-200MHz
是针对XSPI控制器的时钟配置,同时也是输出到PSRAM模块的时钟配置, M3方案中使用的PSRAM最大支持200MHz。<<<<< 以下内容仅供内部使用
(0) XSPI CS0 data PIN remap
是针对CS0组对应的data引脚的复用配置,是32bit的16进制数字,详细查看XSPI寄存器手册的XSPI_CS0_SEQUENCE
,XSPI_CS1_SEQUENCE
配置。
(0) XSPI CS1 data PIN remap
是针对CS1组对应的data引脚的复用配置,是32bit的16进制数字,详细查看XSPI寄存器手册的XSPI_CS0_SEQUENCE
,XSPI_CS1_SEQUENCE
配置。
LDO使能
在 ZX-RTT 根目录下执行 source onestep.sh
, 分别依次对bootloader和rtos配置文件选中 执行 scons --menuconfig
,进入menuconfig的功能配置,在 SDK 的配置界面中,进行下列的选择:
Board options --->
[*] Using Syscfg
Syscfg Parameter --->
-*- SYSCFG LDO18 enable --->
(7) LDO18 voltage value level <0-7>
LDO18使能并配置1.92V,给PSRAM提供电源,需要根据实际硬件来决定是否使能,上述参数为芯片特性参数, 保持默认值即可。
备注
在M3方案中,使用的PSRAM使用1.92V拥有更好的性能,LDO18属于SYSCFG模块下的配置,共有8档可调电压,分别
0:LDO18_VAL_1_71V 对应 1.71V
1:LDO18_VAL_1_74V 对应 1.74V
2:LDO18_VAL_1_77V 对应 1.77V
3:LDO18_VAL_1_80V 对应 1.80V
4:LDO18_VAL_1_83V 对应 1.83V
5:LDO18_VAL_1_86V 对应 1.86V
6:LDO18_VAL_1_89V 对应 1.89V
7:LDO18_VAL_1_92V 对应 1.92V
测试指南
相关数据
备注
290MB/s,CLK 200MHz, DDR, parallel模式下XSPI有效传输数据实测带宽值,其中有协议损耗。 此测试为CPU带宽测试,转换效率取决于CPU cache line长度,传输burst越长XSPI转换效率越高。
bootloader测试开关
在 ZX-RTT 根目录下执行 source onestep.sh
并lunch相关bootloader配置文件, 再执行 scons --menuconfig
,进入menuconfig的功能配置界面,按如下选择:
Bootloader options --->
Bootloader commands --->
[*] psram memory test
使能 psram memory test
选项后:
bootloader的cmd中,会支持test_psram命令。
RTOS下测试
RTOS下memory测试
RTOS默认配置使能memory测试, 通过:
mem_test 0x100000 // 从psram中malloc 0x100000空间大小作为测试
mem_test 0x40780000 0x10000 // 指定 0x40780000起始地址, 0x10000空间大小作为测试
RTOS下带宽测试
使能 test_stream:
-> Local packages options
-> Third-party packages options
-> BenchMark Tests
[*] STREAM : a benchmark that measures the sustained memory bandwidth. --->
(262144) Stream test array size.
关闭部分APP,释放psram空间:
Board options --->
[ ] Using Display Engine (DE)
[ ] Using Graphics Engine (GE)
[ ] Using Video Engine (VE)
Application options --->
[ ] ZX lvgl demo ----
Local packages options --->
Third-party packages options --->
[ ] LVGL (official): powerful and easy-to-use embedded GUI library ----
ZX packages options --->
[ ] aic-mpp ----
在RTOS的console中输入:
// 查看psram空间情况
aic/> free
memheap pool size max used size available size
---------------- ---------- ------------- --------------
heap_cma 8388608 48 8388560
heap_sys 751264 19628 733852
// 执行测试
aic/> test_stream
常见问题
LDO电压配置失效
现象:以M3 PSRAM 合封在芯片的方案为例,配置且关闭LDO18, 探测LDO18电压,发现LDO18仍有电压输出。
解决办法:
-
确认探测点是否正确。
-
确认是否 bootloader和rtos的defconfig配置都统一选择关闭LDO18
工程编译中,出现 PSRAM_SW 溢出:
解决办法:
- 具体原因:工程代码中,全局变量或静态变量的大小超过了预设的 PSRAM_SW 大小
- 解决方法:在menuconfig中,根据所需要用到的内存大小,适当调整 PSRAM_SW 大小
Board options --->
Mem Options --->
(0x100000) Software size in PSRAM
小技巧
具体的内存配置可以查看 bsp/zx/sys/m3c/link_script/gcc_aic.ld.S ,不当分配 PSRAM_SW 大小,会导致 CMA 内存不足,无法动态分配内存。
【启明智显】,作为一家专注于HMI和AIoT解决方案的公司,我们致力于为用户提供创新、可靠且高效的产品和解决方案。