最近画了一些板子,原本的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芯片不同,需要特别注意,如下所示
主要是CAP管脚的问题,405/7带有两个CAP脚(31,47),446只带一个CAP(30)
硬件手册要求:
- CAP脚必须接电容到地平面
- 一个CAP的芯片,直接接一个4.7uF电容
- 两个CAP的芯片,每个管脚接一个2.2uF的电容
- VSS必须要接地
为了兼容所有F4的硬件,建议这样设计
在需要使用446芯片时:
- 把31,47管脚的电容换成0欧电阻
- 把30管脚接4.7uF电容
在需要使用其它F4时:
- 把31,47管脚的电容换成2.2uF电容
- 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就可以调试。
对于一般应用来说,足够了。但对于可靠性设计来说,有两个细节要处理
- 要不要引出RESET管脚?
因为STM32允许通过软件的方式禁用JTAG/SWD接口,所以,某些产品级别的代码会在上电后,关闭调试接口,禁止FLASH读,从而防止固件被盗取。
但是,如果MCU在上电后,立刻关闭JTAG/SWD接口,就会致使再也无法通过调试器来访问MCU,就是所谓的芯片锁死。
为了防止出现这样的事故,建议引出来RESET接口,从而可以让调试器控制RESET线,让MCU进入调试状态,避免锁死 - 要不要加上拉/下拉电阻?
很多开发板或者其它的网上原理图,都会在外部添加一个10K的上拉或者下拉电阻,其实这是完全没有必要的。因为STM32内部已经集成了上拉/下拉电阻。
如下所示
PA13 — JTMS/SWDIO — Internal pull-up
PA14 — TCK/SWCLK — Internal pull-down