这篇文章带大家看一下STM32F7的系统配置控制器。系统配置控制器主要用于:
1、 选择以太网PHY接口;
2、 交换FMC SDRAM存储区域与NOR/PSRAM存储区域;
3、 管理GPIO外部中断线连接;
在系统控制寄存器里有一个bit位来选择使用哪个选项字定义的启动基地址来启动。
复位类型
一共有三种复位类型,系统复位、电源复位和备份域复位。
系统复位在VDD保持正常工作电压的前提下,有五种事件可以产生复位,分别是低功耗管理复位、软件复位、独立看门狗计数器溢出、窗口看门狗计数器溢出和NRST引脚上的低电平。这里低功耗管理复位指的是MCU执行低功耗模式进入序列的时候是产生复位还是停止待机模式,这个是可以通过选项字中的对应位来进行控制的。系统复位是不会复位备份域和用于查询复位源的RCC_CSR中的复位标志,通过复位标志可以找到产生复位的原因,是软件复位还是看门狗计数器溢出复位或者是NRST引脚上的低电平引起的复位。
电源复位指VDD工作电压变化引起的复位,它又分为上电掉电复位和退出待机模式复位。对于电源复位,备份域同样不会被影响。
备份域复位可以通过两种方式产生,一个是软件置位BDRST复位,另一种是当之前VDD和VBAT都是关闭的情况,现在两个中的任何一个又来电了也会产生备份域的复位。对于备份域的复位,备份SRAM的区域也不会被复位,这个区域唯一的复位方式是FALSH的保护等级从等级1切换到等级0。
时钟源
F7一共有四类时钟源,分别为外部高速时钟(HSE)、内部高速时钟(HSI)、内部低速时钟(LSI)和外部低速时钟(LSE)。
外部高速时钟有两个时钟源,一个是外接的外部高速晶振,从4MHz到26MHz,也可以直接接一个外部的时钟源,它支持从1MHz到50MHz.
内部高速时钟信号由内部的16MHz的RC振荡器生成,系统复位后都默认选择内部高速时钟作为系统的时钟。HIS RC振荡器的优点是成本比较低、启动速度快,但是它的精度相对于外部高速时钟来说要低一点。
内部低速时钟是32KHz,它可以作为低功耗时钟源在停机和待机的状态下保持运行,可以供给独立看门狗和自动唤醒单元使用。
外部低速时钟由32.768KHz的低速外部晶振或者是陶瓷谐振器产生,可以作为实时时钟外设RTC的时钟源,它具有功耗低而且精度高的优点。
PLL
F7有三个PLL,分别为主PLL、PLLI2S、PLLSAI。
主PLL由HSE或者HIS提供时钟,并有两个不同的输出时钟,一个是高速系统时钟,最高可达216MHz;另外产生一个48MHz的时钟,可以给USB模块、SDMMC和RNG外设使用。
PLLI2S产生专供I2S,SAI和SPDIF-RX接口使用的精准时钟,以达到高质量的音频性能。
PLLSAI可以提供下列时钟:
可以给SAI1和SAI2提供时钟,当PLLI2S需要被用来提供其他音频采样频率时,系统需要同时提供两种时钟频率;
LCD-TFT控制器;
48MHz时钟供USB、SDMMC和RNG使用。
时钟树
从上图可以更加直观地看到F7时钟产生的情况。
F7为外设提供了更加灵活、丰富的时钟源的选择