一文深入了解STM32H7芯片

初学stm32h7一定要优先整体把控芯片的框架,不要急于了解单个外设的功能。
1   初学者重要提示
学习一款新的芯片,优先掌握系统框架是比较重要的,建议逐渐养成这种学习习惯,然后各个击破即可。
本章节提供了多张stm32h7的框图,这些框图都非常具有代表性。很多时候记忆知识点比较费脑子,记录这些框图是一种非常好的方式。
对于本章节提供的部分知识点,无法理解透彻,暂时没有关系。随着后面的深入学习,基本都可以掌握。
重要的mpu和cache知识分别放在了第23章和第24章。
2   stm32h7硬件框图
学习一款新的芯片,需要优先了解一下它的整体功能设计。需要的资料主要是来自官网和数据手册,比如我们v7开发板使用的stm32h743xih6,直接在官方地址:链接(这是超链接)就可以看到对此芯片所做的介绍,页面中有一个如下的框图,对于了解stm32h7整体设计非常方便。
再稍微详细点,就需要大家读页面上的”key features”,就是下图所示的内容:
或者直接看数据手册开头的章节即可,也进行了介绍,内容基本都是差不多的,如下图所示(部分截图):
通过框图和key features,大家可以方便地了解stm32h7的flash、ram大小以及各种自带外设的信息。
3   stm32h7各个型号的区别
涉及到芯片选型的时候,需要大家了解各个型号的区别。对此st有一个专门的文件stm32h7x3 mcus high-performance line,在链接(这是一个超链接)里面可以找到。此文件里面有简单的对比,只是内容比较简单,仅两页,不过也言简意赅。最主要的是下面的这个截图:
通过这个截图可以方便地了解不同型号的引脚数、封装、flash大小、ram大小以及是否带hw crypto硬件加密的区别。
需要了解更详细的对比信息,可以看数据手册。任意下载一个型号的数据手册,在数据手册的的table 2里面有详细的对比,如下图所示(部分截图):
使用st提供的软件stmcufinder或者stm32cubemx也可以做对比,只是没有上面的表格这么方便,可以一目了然。
4   stm32h7总线框图和时钟
stm32h7的数据手册里面提供了一张非常棒的框图,大家可以方便地查看每个总线的时钟速度和这个总线所挂的外设。这个在大家配置外设时钟分频的时候还是非常有用的,因为外设的时钟分频就是建立在所挂的总线速度
比如我们想得到不同定时器的主频,通过上面的框图,可以方便地获得如下信息:
sysclk(hz)                     = 400000000 (cpu clock)
hclk(hz)                       = 200000000 (axi and ahbs clock)
ahb prescaler                  = 2
d1 apb3 prescaler              = 2 (apb3 clock  100mhz)
d2 apb1 prescaler              = 2 (apb1 clock  100mhz)
d2 apb2 prescaler              = 2 (apb2 clock  100mhz)
d3 apb4 prescaler              = 2 (apb4 clock  100mhz)
因为apb1 prescaler != 1, 所以 apb1上的timxclk = apb1 x 2 = 200mhz;
因为apb2 prescaler != 1, 所以 apb2上的timxclk = apb2 x 2 = 200mhz;
apb4上面的timxclk没有分频,所以就是100mhz;
apb1 定时器有 tim2, tim3 ,tim4, tim5, tim6, tim7, tim12, tim13, tim14,lptim1
apb2 定时器有 tim1, tim8 , tim15, tim16,tim17
apb4 定时器有 lptim2,lptim3,lptim4,lptim5
5   stm32h7的axi总线
axi总线在stm32h7中有着举足轻重的作用。高并发性全靠这个总线了,先来看下axi总线的框架:
5.1      总线系统框架
下面这个截图比较有代表性,可以帮助大家理解stm32h7总线系统。
这个图可以方便识别总线所外挂的外设,共分为三个域:d1 domain,d2 domain和d3 domain。
d1 domain
d1域中的各个外设是挂在64位axi总线组成6*7的矩阵上。
6个从接口端asib1到asib6
外接的主控是ltdc,dma2d,mdma,sdmmc1,axim和d2-to-d1 ahb 总线。
7个主接口端amib1到amib7
外接的从设备是ahb3总线,flash a,flash b,fmc总线,qspi和axi sram。另外ahb3也是由axi总线分支出来的,然后再由ahb3分支出apb3总线。
d2 domain
d2域的各个外设是挂在32位ahb总线组成10*9的矩阵上。
10个从接口
外接的主控是d1-to-d2 ahb 总线,ahbp总线,dma1,dma2,ethernet mac,sdmmc2,usb hs1和usb hs2。
9个主接口
外接的从设备是sram1,srma2,sram3,ahb1,ahb2,apb2,apb3,d2-to-d1 ahb总线和d2-to-d3 ahb总线。
d3 domain
d3域的各个外设是挂在32位ahb总线组成3*2的矩阵上。
3个从接口
外接的主控d1-to-d3 ahb总线,d2-to-d3 ahb总线和bdma。
2个主接口
外接的从设备是ahb4,sram4和bckp sram。另外ahb4也是这个总线矩阵分支出来的,然后再由ahb4分支出apb4总线。
这三个域之间也是有互联的,可以是:
d1域到d2域的d1-to-d2 ahb bus
允许d1域中的主接口外设访问d2域里面的从接口外设。比如d1域里面的dma2d访问d2域里面的sram1。
d2域到d1域的d2-to-d1 ahb bus
允许d2域中的主接口外设访问d1域里面的从接口外设。比如d2域里面的dma2访问d1域里面的axi sram。
d1域到d3域的d1-to-d3 ahb bus
允许d1域中的主接口外设访问d3域里面的从接口外设。比如d1域里面的dma2d访问d3域里面的sram4。
d2域到d3域的d2-to-d3 ahb bus。
允许d1域中的主接口外设访问d2域里面的从接口外设。比如d2域里面的dma2访问d3域里面的sram4。
有了这些知识后,下面我们重点了解axi总线矩阵。
5.2      axi总线特色
axi支持高频率、高性能的系统设计:
支持高带宽,低延迟设计。
提供高频操作,无需复杂的总线桥。
满足各种组件的接口需求。
适用于具有高初始访问延迟的内存控制器。
为互连架构的实现提供了灵活性。
与现有的ahb和apb接口向后兼容。
axi总线的关键特性:
独立的地址、控制和数据线。
支持非字节对齐方式传输。
基于起始地址的突发传输。
分开的读和写数据通道,且提供dma传输。
支持发起多个地址。
支持无序传输。
允许添加寄存器,以提供时序收敛。
5.3      axi总线简介
通过下面的框图,我们再进一步的认识一下axi总线。
通过上面的截图,我们可以看到,axi总线有6个从接口asibs(amba slave interface blocks)和7个主控接口amibs(amba master interface blocks)。
针对从接口asibs,描述如下:
重点注意最后一列,stm32h7参考手册里面原始的描述是r/w issuing,这里将其翻译为读/写发起能力。比如输入通道in5连接的主控dma2d,支持的读发起能力是2,写发起能力是1。读发起能力是2该如何理解呢?这里的含义是存在两路读信号同时进行(因为axi接口有一个fifo的功能,可供同时进行,更深入的认识有待研究),反映到dma2d的实际应用中,就是dma2d同时读取前景色和背景色的缓存区做alpha融合之类的操作。写操作同理,dma2d的写发起能力仅支持一路。
针对主控接口amibs,描述如下:
跟上面表格的含义是一样的,同样重点注意最后一列,这里多了一个总接收能力(total acceptance),也就是读发起能力和写发起能力同时执行的情况。
5.4      axi总线优先级编程
由于存在多个asib从接口访问amib主控的问题,这就涉及到谁先谁后等问题。所以axi总线矩阵就做了一个基于优先级的仲裁方案。每个asib接口支持读通道和写通道分别设置,优先级从0到15。数值越大,优先级越高,默认情况都是优先级0。如果有两个传输同时到达amib主控接口,那么优先级高的asib接口传输优先处理;如果优先级相同的话,根据lur方案选择(least recently-used最近最少使用情况)。
大家在实际应用中,可以根据实际情况进行设置,一般情况下使用默认值即可。
6   stm32h7的总线互联
stm32h7的总线矩阵四通八达,但不是任意bus master总线主控端和bus slave设备端都可以相互通信的:
黑色加粗字体是64位总线(itcm,dtcm,flash a,flash,axi sram,fmc等),普通字体是32位总线。
访问通路(每个小方块里面的字符)
任何有数字的表示有访问通路。
短横杠“-”表示不可访问。
有灰色阴影的表示有实用价值的访问通路。
表格中具体数值所代表的含义
d=direct
1=via axi bus matrix
2=via ahb bus matrix in d2
3=via ahb bus matrix in d3
4=via ahb/apb bridge in d1
5=via ahb/apb bridge in d2
6=via ahb/apb bridge in d3
7=via ahbs bus of cortex-m7
多个数值组合 = 互连路径以数字的顺序经过多个矩阵或/和桥。
总线访问类型
普通字体表示32位总线。
斜体表示32位总线主机端/ 64位总线从机端。
粗体表示64位总线。
当前要对这个图有个了解,后面章节讲解各个外设的时候要用到,比如dtcm和itcm不支持dma1,dma2和bdma,仅支持mdma。
7   stm32h7的flash
首次学习stm32h7,要掌握以下几点认识即可:
1、双bank,每个bank的带宽都是64bits,如下图所示:
2、h7中flash的延迟和主频关系。
h7中已经没有f1和f4系列中的art chrome加速,通过h7中的cache加速即可。具体延迟数值和主频关系如下:
对于上面的表格,大家可以看到,当延迟等待设置为0的时候,即无等待,单周期访问,速度可以做到70mhz。增加1个flash周期后,访问速度可以做到140mhz。当增加到3个或4个flash周期后,最高速度可以做到225mhz。
3、flash编程操作(写)最好以256bits为单位进行,应用中也可以小于256bits,但是容易造成ecc校验出问题,所以不推荐。flash读操作支持64bits,32bits,16bits和8bits。
4、flash支持ecc校验,每256bits配10bit的ecc位,可以检测到1个bit并纠正或者检测2个bit。随着芯片的制造工艺水平越高,带电粒子能产生的位翻转就越多,此时的ecc是必须要有的,一般可以纠正1-2个bit。安全等级高的flash类存储器和ram类都是必须要带ecc的。
8   stm32h7的ram
stm32h7的ram区分为好几个部分,下面分别进行说明:
 tcm区
tcm : tightly-coupled memory 紧密耦合内存 。itcm用于运行指令,也就是程序代码,dtcm用于数据存取,特点是跟内核速度一样,而片上ram的速度基本都达不到这个速度,所以有降频处理。
速度:400mhz。
dtcm地址:0x2000 0000,大小128kb。
itcm地址:0x0000 0000,大小64kb。
 axi sram区
位于d1域,数据带宽是64bit,挂在axi总线上。除了d3域中的bdmb主控不能访问,其它都可以访问此ram区。
速度:200mhz。
地址:0x2400 0000,大小512kb。
用途:用途不限,可以用于用户应用数据存储或者lcd显存。
 sram1,sram2和sram3区
位于d2域,数据带宽是32bit,挂在ahb总线上。除了d3域中的bdmb主控不能访问这三块sram,其它都可以访问这几个ram区。
速度:200mhz。
sram1:地址0x3000 0000,大小128kb,用途不限,可用于d2域中的dma缓冲,也可以当d1域断电后用于运行程序代码。
sram2:地址0x3002 0000,大小128kb,用途不限,可用于d2域中的dma缓冲,也可以用于用户数据存取。
sram3:地址0x3004 0000,大小32kb,用途不限,主要用于以太网和usb的缓冲。
 sram4区
位于d3域,数据带宽是32bit,挂在ahb总线上,大部分主控都能访这块sram区。
速度:200mhz。
地址:0x3800 0000,大小64kb。
用途:用途不限,可以用于d3域中的dma缓冲,也可以当d1和d2域进入dstandby待机方式后,继续保存用户数据。
 backup sram区
备份ram区,位于d3域,数据带宽是32bit,挂在ahb总线上,大部分主控都能访问这块sram区。
速度:200mhz。
地址:0x3880 0000,大小4kb。
用途:用途不限,主要用于系统进入低功耗模式后,继续保存数据(vbat引脚外接电池)。
9   总结
本章节就为大家讲解这么多,让大家对stm32h7有个整体的认识,后面章节将逐个进行学习。


山东省降低工商业电价有关通知
三星显示三季度业绩利好, iPhone XS也将搭载OLED屏
便捷、快速还得看开关电源芯片U6513
芯盾时代入选中国信通院“数据安全推进计划”成员单位
电动车电池选购防骗及保养秘诀
一文深入了解STM32H7芯片
森梅医疗想用人工智能来助力患者健康
RC低通滤波器电路设计与应用
在8大困境下,半导体科技成果转化的推进难上加难
干荷蓄电池的特点有哪些
你可以通过一个沙袋和重力创造出光吗?GravityLight推出重力灯告别传统能源
医用口罩阻燃测试仪的详细介绍
一张图秒懂中国VR虚拟现实现状
从哪些方面来选择适合自己企业的工控机
新买的笔记本要做哪些检测? 这些你一定要知道
通过无线电传真接收Kydodo新闻的经历
海信、兆驰、TCL等厂商推出Mini/Micro LED应用新品
避障常用哪些传感器?几种传感器的基本工作原理
耦合电路种类
现推广燃料汽车所面临的三大问题!