马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?请使用中文注册
×
STM32F407ZGT6芯片是基于ARM Cortex-M4内核的,主要用到的基本参数有:RAM:192KB、ROM:1024KB、6路串口(使用到了USART1<->测量机器人、USART3<->4G模块和USART6<->气象计)、以太网、SPI(外挂了扩展存储W25Q128,可以存储测量的原始数据等)、IIC(外挂了EEPROM,可以用来存一些不常修改的参数,比如:周期时间、测量限差等)、SDIO(外挂了32GB的micro-SD卡)、FSMC(外挂了静态内存SRAM,用来进行数据平差计算)、SWD(用来调试、下载代码)、定时器(全站仪测量和周期计数是会用到)、114个GPIO端口(除外挂设备外,使用了空闲的端口来做气象计RS485的高低电平转换控制发送和接收、以太网的RESET功能、电源指示灯)等。芯片的内部结构是这样的。
图1 STM32F407ZGT6内部框架网上有很多STM32F407ZGT6基础系统板的设计,可以找来去参考。当然要先对STM32F407ZGT6的144个引脚有个基本的认知,下面是STM32F407ZGT6可以复用的引脚的各项功能。
图2 STM32F407ZGT6引脚功能1、时钟系统 STM32F407ZGT6拥有强大的时钟系统,主要靠内部和外部晶振组成,在这里先不介绍内部时钟。时钟其实是通过振荡器规律的振动来计时的,外部晶振主要有两种,一种是LSE低速32.768KHz的晶振,主要用来做RTC时钟源,可以理解为看时间用的;一种是HSE高速晶振,频率在4~26MHz之间,选型时一般选用8MHz,因为啥我也不清楚,反正大多数都这么选。 低速晶振在STM32F407ZGT6要接8(PC14/OSC32_IN)、9(PC15/OSC32_OUT)针脚。原理图如下。
高速晶振要接23(PH0/OSC_IN)、24(PH1/OSC_OUT)针脚,原理图如下。
RTC时钟用来走时,如果仅依靠电源模块来供电的话,当设备断电时,RTC时钟就不走了,再开机时没法达到准确的时间(实际它走的也不太准,但大差不差)。所以需要采用备用电池来支撑在断电情况下的走时问题,原理图如下。
这里的VBAT是连接的主控上的6号引脚。具体的设备选型,我会在后期文档中列出来。2、复位电路 复位电路就是按一下就能实现系统的重启,针脚25(NRST)为复位引脚,NRST引脚处于低电平时可以进行系统复位,也称外部复位。原理图如下。此外还有WWDG\IWDG\SW\低功耗复位。
3、SWD调试接口 SWD调试接口是用来下载调试程序的,它仅需2根线就能完成。当然也可以采用JTAG来调试下载,但是JTAG暂用的引脚多,会有其他外设有冲突,所以这里选择SWD来调试下载。SWD对应的引脚为PA13和PA14,PA13(SWDIO)为串行线数据输入/输出,PA14(SWCLK)为串行线时钟,用来匹配下载器和芯片的时钟频率。原理图如下。
4、BOOT电路 BOOT0和BOOT1的组合可以选择不同的启动模式,当BOOT0置为低电平时,不论BOOT1处在那种状态,实现的是从主控的FLASH启动程序;当BOOT0置为高电平、BOOT1置为低电平时,实现的是从系统内存启动;当BOOT0、BOOT1均置为高电平时,实现的是从外部内存启动。具体介绍可以参考芯片的手册2.4小节。BOOT0为专用引脚138号,而BOOT1则与PB2引脚共用,为48号。一旦完成对BOOT1的采样,相应PB2引脚即进入空闲状态,可用于其它用途。原理图如下。
5、滤波电路 滤波电路是用来过滤电压起伏的杂波的,主要是起到稳定电压的作用。STM32F407ZGT6一共有12路VDD,对应着17、30、39、52、62、72、84、95、108、121、131、144引脚,需要1个10uF的电容和12个100nF的电容,不同容值的电容过滤的杂波也不同。原理图如下。
6、其他 此外还有一些参考电压、模拟电压、内部电源监视器、VCAP等电路,原理图如下。
电源、通信、各种外设的电路原理放在下一节介绍吧。 |