自从2024年底意法半导体正式发布STM32N6以来已经过去了一年多的时间,但是STM32N6始终蒙着一层厚厚的面纱,极强的性能下伴随而来的是极高的开发难度。
最近有一个项目准备使用STM32N6作为主控制器,这代表着不仅仅需要从原理图开始绘制STM32N6电路板,还需要克服其中遇到的一系列问题,包括软件硬件以及代码编译烧录等等。
这是一个面向科研的项目,主要目的是使用STM32N6实现摄像头读取、屏幕显示以及卷积神经网络推理工作。
本期作为硬件篇介绍这个项目的硬件电路。
1、主控选择
主控选择上面并没有采用官方DK板子上使用的STM32N657X0H3而是选择了STM32N55X0H3,也算是为了增加一点开发难度(并非省钱)
2、外部存储器选择
官方STM32N657-DK开发板中所使用的PSRAM芯片为APS256XXN,是一个16线的BGA封装的芯片。但是嘉立创画图的时候发现这颗芯片不仅仅没有对应的封装,也没有对应的器件。
因此这块板子将其降级为APS6404L,QPI通讯四线SPI,大小为8MB,勉强够用而且价格便宜,封装简单。
STM32N657-DK开发板中的Flash芯片选择的是MX66UW1G45GXD100,这一颗芯片也是一整个雷霆大缺货,权衡考虑降级为W25Q256JVFIQ用以替代。
从八线SPI降为四线SPI,同时需要注意的是,先前的MX66UW是1.8V电平而W25Q256是3.3V电平,这个地方格外注意,如果依旧是照抄STM32N657-DK板子的电源布局的话会让设备有烧坏的风险。稍后我们在电源处理上会讲。
3、电源
N6的电源相当的复杂,这里我们分开来讲,首先来看看STM32N6的主控需要哪些电源。
STM32N6需要VDDIO到3.3V,VDDUSB为3.3V,VDD1.8V的电压域为1.8V,VDDCORE为0.81V(超频0.89V),VDDCSI为1.8V,VDDIO2到VDDIO5这四个电压域需要按需选择。
VDDIO2对应XSPI1电压域,VDDIO3对应XSPI2电压域,在外面这个项目中,XSPI1为1.8V,XSPI2为3.3V。因此对应的VDDIO2和VDDIO3的电压也不一样。这个地方设置不好的话可能使用BESC会导致芯片烧毁。
因此我们总结一下就是除了3V3之外还需要1V8和0.81V这两个电压。
0.81V电压参考STM32N657-DK板子使用TPS62088YFPR芯片。该芯片计算公式为(R1/R2 + 1)*0.6,因此设置R1 = 56K,R2 = 160K,正好计算出来是0.81V。通过PG7设置MOS管状态可以接入R47电阻,将输出电压变为0.89V进入超频状态。
顺带一提,早知道这里不适用这颗TPS62088了,这颗DCDC降压芯片实在是太小太小了,导致我觉得制作这块板子的时候这里出现了问题。
它的大小仅为1.2mm*0.8mm,大小连1mm²都不到,测试板子的时候发现这个地方除了问题。VDDCORE的输出电压为0。但是电路图肯定是正确的。后来自己飞线接了一颗DCDC电压后一切正常。
1.8V和3.3V均使用不同型号的LP5907来产生,这颗LDO芯片也是我比较喜欢的低功耗,大电流,小封装的LDO。
电源使用USB输入,一颗CH340N作为串口。
经过开关后进入IP5306这颗锂电池充放电管理芯片,之后输出5V电压。
关于IP5306的选型,他是一颗经典的充电宝的充放电和升压芯片,并不太适合用在低功耗场景....后续考虑更改。
4、外设配置
整个系统除了几组FPC排线之外主要有三个基本外设分别是LTDC显示屏,IMX224摄像头还有一个SD卡。
LTDC使用40Pin的RGB565屏幕,但是有一个地方设计有问题,忘记修改。
40pin的LCD显示屏的LEDA和LEDK之间是6颗LED串联,导通需要19.7V电压,横流20mA,第一次画这种屏幕的驱动没什么经验,还是太粗心。导致屏幕之后要通过一块转接板(内含背光驱动)。
CSI摄像头倒是没啥,只要根据自己买的CSI摄像头型号画对应的电路即可。
SD卡使用一个单刀双掷开关来切换SD卡电压,其他的也没有太多需要注意的东西,主要还是参考了官方的STM32N657-DK原理图来实现。
5、315 消费者权益日
整体板子采用4层板布局,但是打板的时候由于BGA封装和3mm钻孔,实际的价格和六层板差不多。
142