STM32 硬件设计

最近画了一些板子,原本的MCU是用STM32F446RET6,样板打出来后,发现物料不好买,问了一些代理商,因为这个片子比较新,所以都没有货,只好换405系列的

不过,ST的软硬件兼容性做的不错,软件基本不用动,硬件修改几个电源管脚就OK

在此记录一下

1 STM32F446和STM32F405/7的区别

405是168MHz的M4内核芯片,407相对于407增加了以太网和相机接口,405和407的FLASH有两种:512/1024K

而446是新推出的片子,可以说是407的缩水版,把主频提高到了180M,但没有以太网接口,相机接口,FLASH的size也有相应的缩写,最大512K,所以从长远来看,446的价格会相对便宜一些;从ST官网来看,大概比405便宜1个美金的样子

官方给出的摘要

STM32F446 – 180 MHz/225 DMIPS, up to 512 Kbytes of Flash with dual Quad SPI and SDRAM interfaces
STM32F407/417 – 168 MHz CPU/210 DMIPS, up to 1 Mbyteof Flash adding Ethernet MAC and camera interface
STM32F405/415 – 168 MHz CPU/210 DMIPS, up to 1 Mbyte of Flash with advanced connectivity and encryption

详细的对比信息,点击这里
http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1577

软件方面,完全兼容

2 F4系列硬件兼容性

对于F4系列LQFP64封装来说,只有446和11系列的CAP管脚布局和其它F4芯片不同,需要特别注意,如下所示

F4管脚区别

主要是CAP管脚的问题,405/7带有两个CAP脚(31,47),446只带一个CAP(30)

硬件手册要求:

  1. CAP脚必须接电容到地平面
  2. 一个CAP的芯片,直接接一个4.7uF电容
  3. 两个CAP的芯片,每个管脚接一个2.2uF的电容
  4. VSS必须要接地

为了兼容所有F4的硬件,建议这样设计

兼容设计

在需要使用446芯片时:

  1. 把31,47管脚的电容换成0欧电阻
  2. 把30管脚接4.7uF电容

在需要使用其它F4时:

  1. 把31,47管脚的电容换成2.2uF电容
  2. 30脚悬空

3 去耦电容

计算公式:10uF+Nx100nF
N是VDD管脚的个数,有多少个VDD,就有多少个100nF
电容尽量靠近MCU,布线时,记得先过电容,然后才是芯片的管脚,不然就没有效果了

4 电源部分

这部分没什么说的,3.3V接到VDD,VDDA就好。
特别注意:VDDA是必须要接的,不要因为你没有用ADC,就不接这个管脚。因为STM32的PLL时钟电路,是由VDDA模拟部分供电的,没有供电,就没有系统时钟信号,后果自己想

5 复位电路

常见的错误:在STM32外部增加一个阻容复位电路,上拉至VDD。
STM32内部已经有复位电路和上拉电路,所以完全没有必要额外的添加上拉电阻,只需要添加一个100nF的电容接地,目的是滤除外部的干扰信号,防止偶然触发MCU复位

6 调试接口

对于调试接口来说,建议采用SWD接口,只需要引出DIO和CLK两个pin就可以调试。
对于一般应用来说,足够了。但对于可靠性设计来说,有两个细节要处理

  1. 要不要引出RESET管脚?
    因为STM32允许通过软件的方式禁用JTAG/SWD接口,所以,某些产品级别的代码会在上电后,关闭调试接口,禁止FLASH读,从而防止固件被盗取。
    但是,如果MCU在上电后,立刻关闭JTAG/SWD接口,就会致使再也无法通过调试器来访问MCU,就是所谓的芯片锁死。
    为了防止出现这样的事故,建议引出来RESET接口,从而可以让调试器控制RESET线,让MCU进入调试状态,避免锁死
  2. 要不要加上拉/下拉电阻?
    很多开发板或者其它的网上原理图,都会在外部添加一个10K的上拉或者下拉电阻,其实这是完全没有必要的。因为STM32内部已经集成了上拉/下拉电阻。
    如下所示
    PA13 — JTMS/SWDIO — Internal pull-up
    PA14 — TCK/SWCLK — Internal pull-down

参考资料

  1. AN4488 Getting started with STM32F4xxxx MCU hardware development