启明智显技术分享|HMI工业级芯片Model3(简称M3芯片)PSRAM使用指南及PSRAM溢出如何进行问题定位

 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_SEQUENCEXSPI_CS1_SEQUENCE 配置。

  • (0) XSPI CS1 data PIN remap 是针对CS1组对应的data引脚的复用配置,是32bit的16进制数字,详细查看XSPI寄存器手册的 XSPI_CS0_SEQUENCEXSPI_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仍有电压输出。

解决办法:

  1. 确认探测点是否正确。

  2. 确认是否 bootloader和rtos的defconfig配置都统一选择关闭LDO18

工程编译中,出现 PSRAM_SW 溢出: 

解决办法:

  1. 具体原因:工程代码中,全局变量或静态变量的大小超过了预设的 PSRAM_SW 大小
  2. 解决方法:在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解决方案的公司,我们致力于为用户提供创新、可靠且高效的产品和解决方案。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值