你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【STM32H7S78-DK评测】板载资源初识及工程模块创建

[复制链接]
ytwo 发布时间:2024-8-22 00:42

致谢

感谢ST官方给予我这个机会评测STM32H7S78-DK开发版,也感谢论坛管理员Seven认真负责,百忙之中提醒参加活动,否则我就错过这次机会了,非常感谢!

开发板包含内容

目前开发板已经到手一段时间了,这段时间也查阅了相关资料,学习了很多关于这部分开发板的新特性以及相关知识。由于我少了一些时间,计划增加每次评测的内容,调整整体进度。STM32H7S78-DK开发套件包含主控板(MB1736),显示屏(MB1860),WiFi模块(MB1400),扩展模块(MB1280)。

屏幕截图2024-08-21204447.png

开发板正面照片,显示屏已与开发板安装好

屏幕截图2024-08-21210249.png

开发板背面照片,可以看到一些常用的资源外设

屏幕截图2024-08-21210143.png

WIFI模块,正面照片

屏幕截图2024-08-21210454.png

扩展模块,正面照片

屏幕截图2024-08-21212000.png

闪迪的高速TF卡,用于存放视频图片等相关资源文件

STM32H7S78新特性

STM32H7S78相较于普通的STM32H743,或者STM32H757等,最大的亮点是针对图形处理这部分的优化,做了很多工作。STM32H743在处理分辨率达到1280x720时,已经比较吃力了,这里之前有一块这个分辨率的显示屏,目前两块屏幕接口不太匹配,后续有时间测试一下STM32H7S78高分辨率下的图像显示性能。

NeoChrom GPU: Accelerating 2.5D GUIs, making it easier to reach 60FPS GUIs with lowMCU load.

加速2.5D图像界面,在MCU低负载下也可以轻松达到60FPS刷新率的界面显示效果。

Advanced security: Debug authentication, secure application & silicon life-cycle, secure key-storage, immutable root of Trust (ST-IRoT), target SESIP3 and PSA certified level 3 certifications.

高级安全设置

调试认证,安全应用程序与芯片生命周期,安全密钥存储,不可变信任根(ST-IRoT:"ST immutable root of trust"的缩写,系统内存中的代码,不可更改),目标SESIP3(物联网安全标准,满足定义的物联网平台安全评估标准 (SESIP)五个保证级别的第三级。SESIP3 提供了实质的保证。),PSA认证3级认证(Platform Security Architecture缩写,PSA 认证分为 Level 1 、Level 2 和 Level 3 三个安全等级,分别包括:安全方案审查、实验室问卷评估、软硬件攻击等渗透性测试内容)

200 MHz xSPI: High speed, real-time capabilities from int./ext. Memories with on-thefly decrypt/encrypt.

200MHz XSPI通信

内部外部内存实时加解密具有高速,实时性。(这一点确实领先,采用的外部内存是PSRAM,外部存储也是目前最新的MXIC芯片,FLASH相关的最新手册尚未找到)

USB HS/FS PHY, I3C: For USB power delivery support, 2 type-C connectors, dedicated DMA & dual USB FS/HS with PHY. I3C comm, enabling lower cost implementation with DMA for zero CPU interventions.

USB 高速/全速 物理层,I3C通信协议

支持USB供电,两个type-C接口,专用DMA以及双USB高速/全速 物理层 ,I3C通信,支持DMA更低成本实现零CPU干预。(这部分内容厉害了,MCU集成了两个USB phy,可以通过USB实现更多有趣的功能了,加上CPU的运行速度可以到达600MHz,在处理数据这块,游刃有余。)

当然实际优点远远不止这些,最亮眼的优点便是以上内容,其他的一些特性,可以参考以下的图片说明

屏幕截图2024-08-21221957.png

STM32H7S78模块示意图

工程模板创建

STM32H7S78采用的是boot+application的方式来编写相关程序,目前项目涉及到的内容一个是神经网络部分内容,一个是电机控制部分内容,以及视频播放部分,涉及的程序内容比较多,当然这种方式编程也不一定是最优解,时间比较紧张,后续空出时间继续优化这部分内容。参考官方提供模板,分为两个部分,一个是Templates文件夹,该文件夹下的模板文件使用的是HAL库文件,一个是Templates_LL文件夹,该文件夹下模板文件使用的是LL库,整体架构组成可以参考以下图片

屏幕截图2024-08-21233554.png

STM32CubeH7RS firmware components

Template文件夹下有以下几个文件夹,Template,Template_LRUN,Template_ROT,Template_XIP(相关程序代码,请参看STM32Cube文件夹下内容,相关源码,部分备份在下文的项目源码地址中)

Template:常规模板文件,提供BSP相关文件,在系统内存(RAM)与系统存储(FLASH)中运行。由于STM32H7S78的系统存储比较小,不是很推荐这种方式编写程序。

Template_LRUN:(LRUN是load and run的缩写)分为两个部分,Boot和Appli。运行方式是将外部存储的程序复制到内存中,并在内存中运行相关程序。 Template_ROT:(root-of-trust),分为两种信任根,STiROT和OMEiROT,这部分运行方式参考下面图片

屏幕截图2024-08-21235646.png

image.png

几种信任根运行方式

Template_XIP:有3部分内容,Boot,Appli,ExtMemLoader。工作方式从内部FLASH启动,然后跳转到外部FLASH程序。

参考开发板原理图以及Template_XIP模板

1,晶振与供电部分设置

image.png

各部分接口供电电流大小

image.png

外部晶振设置,查阅手册是24Mhz晶振

image.png

根据原理图,供电模式设定SMPS模式

image.png

时钟配置

1,FLASH及PSRAM相关设置

这部分完全参考的例程模板的配置文件进行设置

image.png

相关内容信息

外部FLASH的相关资料,目前官网尚未给出相关资料,查到的信息如下:

image.png

官网资料

主要是对XSPI,SBS进行设置,以及EXTMENM设置

image.png

XSPI1设置,可能出错的原因是MemoryMode这部分存在问题,没有按照模板的设置来。

image.png

XSPI2设置

image.png

EXTMEM_LOADER设置,后续内容,这里便步截图了,参考源码中的ioc文件设置内容

image.png

3,需要的功能组件引脚配置,这部分引脚配置需要根据原理图来修改,相关配置信息请参考源码中的ioc文件

image.png

LCD原理图

image.png

摄像头原理图

image.png

SD卡插槽原理图

image.png

STmod+接口原理图

image.png

PSRAM原理图

image.png

FLASH原理图

4,编译与验证,在生成代码的过程中,产生一个错误提示,如下图:

image.png

字面意识是程序存储地址冲突了,查看了几个生成的工程的ld文件,头部设置信息对比如下:

官方XIP-ExtMemLoader-ld设置:

/* Entry Point */
ENTRY(Reset_Handler)

/* Generate 2 segment for Loader code and device info */
PHDRS {Loader PT_LOAD FLAGS(5); SgInfo PT_LOAD ; }

/* Highest address of the user mode stack */
_estack = ORIGIN(RAM_D1) + LENGTH(RAM_D1);    /* end of RAM */
/* Generate a link error if heap and stack don't fit into RAM */
_Min_Heap_Size = 0x8;      /* required amount of heap  */
_Min_Stack_Size = 0x400; /* required amount of stack */

/* Specify the memory areas */
MEMORY
{
  RAM_D1 (xrw)      : ORIGIN = 0x20000004, LENGTH = 64K-4
  RAM_D2 (xrw)      : ORIGIN = 0x24020000, LENGTH = 128K
}

cubeMX生成-ExtMemLoader-ld设置:

/* Entry Point */
ENTRY(Reset_Handler)

/* Generate 2 segment for Loader code and device info */
PHDRS {Loader PT_LOAD FLAGS(5) ; SgInfo PT_LOAD ; }

/* Highest address of the user mode stack */
_estack = ORIGIN(RAM_D1) + LENGTH(RAM_D1);    /* end of RAM */
/* Generate a link error if heap and stack don't fit into RAM */
_Min_Heap_Size = 0x8;      /* required amount of heap  */
_Min_Stack_Size = 0x400; /* required amount of stack */

/* Specify the memory areas */
MEMORY
{
  RAM_D1 (xrw)      : ORIGIN = 0x20000004, LENGTH = 64K-4
  RAM_D2 (xrw)      : ORIGIN = 0x24020000, LENGTH = 128K
}

这个具体什么原因导致的,目前还没解决。

5,官方工程模板修改实验,修改其LED闪烁方式,验证模板是可以使用的,演示视频地址LED闪烁实验,修改的代码如下


BSP_LED_Init(LD1);
BSP_LED_Init(LD2);
BSP_LED_Init(LD3);
BSP_LED_Init(LD4);
/* USER CODE END 2 *//* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE *//* USER CODE BEGIN 3 */
/* Toggle LD1 every 250ms */
BSP_LED_Toggle(LD1);
HAL_Delay(100);
BSP_LED_Toggle(LD2);
HAL_Delay(200);
BSP_LED_Toggle(LD3);
HAL_Delay(300);
BSP_LED_Toggle(LD4);
HAL_Delay(400);
/* USER CODE BEGIN 3 */
/* Toggle LD1 every 250ms */
BSP_LED_Toggle(LD1);
HAL_Delay(100);
BSP_LED_Toggle(LD2);
HAL_Delay(200);
BSP_LED_Toggle(LD3);
HAL_Delay(300);
BSP_LED_Toggle(LD4);
HAL_Delay(400);
}

待解决问题

1,目前官网提供的demo程序,没能成功下载到开发板中运行,屏幕尚未点亮,目前存在的下载问题是什么原因导致的尚未得知。

2,使用STcubeMX生成的工程文件,编译下载后,无法正常执行。这个原因待排查,后续看情况,继续查找这部分错误的原因。

image.png

程序错误提示

项目源码地址

由于gitee免费版本有诸多功能限制,不过优点在于国内访问比较快速,后续也会将添加其他软件仓库链接。

stm32h7s78 photovoltaic application (gitee.com)

感谢各位的批评指正。

image.png
image.png
image.png
收藏 评论0 发布时间:2024-8-22 00:42

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版