• 正文
  • 相关推荐
申请入驻 产业图谱

STM32N6的开发日记(14):一文彻底搞懂如何让XSPI全速运行

5小时前
213
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

前言

STM32N6作为目前STM32的MCU系列中性能最强的型号,它的出现标志着微控制器领域进入了神经网络处理的新纪元。该系列集成了专门的神经处理单元NPU,能够以极低功耗高效运行复杂的深度学习算法,使边缘侧的人机交互和实时视觉处理能力得到了质的飞跃。

其主频高达800MHZ,有多组XSPI接口和外部存储进行高速通讯,XSPI的时钟推荐上限为200MHZ。

但是要让XSPI的时钟到达200MHZ并没有那么容易,本期我们来看看如何让提高系统XSPI时钟达到200MHZ上限来使用。

1、POWER

在修改XSPI时钟之前,我们需要了解STM32N6的电源域是什么样子的:

STM32N6的电源部分极其复杂,VDDIO2-VDDIO5部分,这四个独立电源专门为存储外设供电:

VDDIO2,VDDIO3用于XSPI部分的独立供电。

查看STM32N6570-DK的开发板原理图,VDDIO2/3是连接到了VDDA1V8中。

这里要注意的是,如果VDDIO2/3的默认配置是0即选择3.3V范围,而我们的实际连接电压为1.8V,IO则会工作在降级模式。尤其要注意的是接下面这句话,如果VDDIO设置为1工作在1.8V的时候,如果我们接3.3V则会烧坏芯片

因此要让XSPI的速度到达200MHZ的主要工作就是修改VDDIO的工作范围。

2、OTP

STM32N6有着12032位一次性可编程OTP位用于系统配置。这12032位的OTP存储区域为开发者提供了极高的安全空间,能够永久锁定芯片的关键配置信息。一旦这些位被编程,其物理状态将不可逆转。

其中OTP124位是关于用户产品配置部分,我们来看看它的具体信息:

OTP124的13-16位用于配置VDDIO5~VDDIO2的工作模式配置。

VDDIO2/3想要处于1.8V工作范围必须要OTP124的对应选项位允许。

3、BESC

STM32N6的BSEC是启动与安全控制简称,用于管理OTP阵列的访问。

非易失性秘密信息存储在 BSEC 的上部区域,该区域仅在 BSEC 处于“BSEC-closed”状态时才可访问。当 BSEC 状态切换为“BSEC-open”时,这些非易失性秘密将被永久隐藏。

也就是说BSEC是一种“阅后即焚”或“闭门取物”的安全机制。芯片在上电启动的瞬间,门是关着的,此时 CPU 可以进屋拿走保险箱里的密钥。一旦启动完成,为了防止黑客在后续运行中窃取密钥,门就会被推开,但这时保险箱会被特殊的物理挡板遮住,无论如何都读不到了。

所以光配置OTP阵列是一方面,还要使能BSEC让系统在上电的时候能够得到芯片的OTP信息。

二者一起作用才能让系统的VDDIO成功工作在1.8V范围。

4、CubeMX的设置

在CubeMX中,我们要下面设置:

在CubeMX中找到PWR选项,Features中打开WKUP1 pin protection。

接着开启I/O voltage range selection选项,在Parameter Settings中将VDDIO2还有VDDIO3设置为1.8V。

之后就可以将XSPI的时钟设置为200MHZ,接着使能BSEC功能。

这样子我们就完成了CubeMX的配置。

5、OTP124更改

板子进入DEV模式之后,打开CubeProgram,找到OTP选项:

改写OTP124的值,让HSLV_VDDIO3还有VDDIO2置1,这样子就可以成功让XSPI工作在200MHZ.

相关推荐