配色: 字号:
STM32F2技术培训_复位和时钟控制RCC
2012-07-09 | 阅:  转:  |  分享 
  
1

复位和时钟控制

RCC

2

培训内容

?复位源

?系统复位

?电源复位

?备份域复位

?时钟模块

?时钟树

?各时钟信号及其特性

?PLL的配置以及扩频技术(新增)

?时钟测量

?时钟信号的输出

?STM32F1和STM32F2时钟特性比较

3

培训内容

?复位源

?系统复位

?电源复位

?备份域复位

?时钟模块

?时钟树

?各时钟信号及其特性

?PLL的配置以及扩频技术(新增)

?时钟测量

?时钟信号的输出

?STM32F1和STM32F2时钟特性比较

4

复位源和复位电路

复位类型复位源不被复位的部分备注

系统复位

低功耗管理复位备份域和用于查询复位源

的RCC_CSR中的复位标志

通过选项字节使能

软件复位(SWreset)SYSRESEREQ

独立看门狗计数器溢出

窗口看门狗计数器溢出

NRST引脚上的低电平

电源复位

上电掉电复位

(POR/PDR/BOR)备份域

退出待机模式

备份域复位

软件置位BDRST复位

备份SRAM

BKPSRAM只能通

过把闪存读保护级

别从1降到0来复位

VDDVBAT之前都关闭,现在

任一个又来电了

5

复位电路简图

?nRST引脚上的滤波和产生的输出脉冲

?复位电路简图和推荐的外部引脚连接

6

复位电路注意事项

?外部复位信号低脉冲至少保持300ns

?系统复位信号不影响备份域的工作

?NRST复位引脚是CMOS工艺的开漏电路

?在产生内部复位信号时,NRST引脚会输出一个低电平

7

培训内容

?复位源

?系统复位

?电源复位

?备份域复位

?时钟模块

?时钟树

?各时钟信号及其特性

?PLL的配置以及扩频技术(新增)

?时钟信号的输出

?时钟测量

?STM32F1和STM32F2时钟特性比较

8

时钟模块框图

HSI

HSE

PLLCLKMCO1/1..5

LSE

SYSCLK

HSE

PLLCLKMCO2/1..5

PLLI2S

LSIRC

32.768KHz/2,to31

LSEOSc

OSC32_IN

OSC32_OUT

~32KHzIWDGCLK

RTCCLK

TIM5IC4

HSE

/

2,

20

MACTXCLK

MACRXCLKMACRMIICL

KUSBHS

ULPIclock

/P

/Q

/R

xN

PLLI2S

I2SCLK

Ext.Clock

SPI2S_CKI

N

PLLI2SCLK

VCO

PCLK1

upto30MHz

If(APB2pres=1)

x1Else

x2

If(APB1pres

=1)x1

Elsex2

PCLK2

upto60MHz

TIMxCLK

TIM2..7,12..14

APB1

Prescaler

/1,2,4,8,16

TIMxCLK

TIM1,8..11

APB2

Prescaler

/1,2,4,8,16

HCLKup

to120MHz

AHBPrescaler

/1,2…512

/8SysTick

PLL48CLK(USBFS,SDIO&RNG)

CSS

HSEOscOSC_OUT

OSC_IN

4-26MHz

PLLCLK

HSIRC16MHz

/MHSE

HSI

SYSCLK

120MHz

max

/P

/Q

/R

VCO

xN

PLL

Ethernet

PHY

USB2.0

PHY

9

时钟源

HSI

HSE

PLLCLKMCO1/1..5

LSE

SYSCLK

HSE

PLLCLKMCO2/1..5

PLLI2S

LSIRC

32.768KHz/2,to31

LSEOSc

OSC32_IN

OSC32_OUT

~32KHzIWDGCLK

RTCCLK

TIM5IC4

HSE

/

2,

20

MACTXCLK

MACRXCLKMACRMIICL

KUSBHS

ULPIclock

/P

/Q

/R

xN

PLLI2S

I2SCLK

Ext.Clock

SPI2S_CKI

N

PLLI2SCLK

VCO

PCLK1

upto30MHz

If(APB2pres=1)

x1Else

x2

If(APB1pres

=1)x1

Elsex2

PCLK2

upto60MHz

TIMxCLK

TIM2..7,12..14

APB1

Prescaler

/1,2,4,8,16

TIMxCLK

TIM1,8..11

APB2

Prescaler

/1,2,4,8,16

HCLKup

to120MHz

AHBPrescaler

/1,2…512

/8SysTick

PLL48CLK(USBFS,SDIO&RNG)

CSS

HSEOscOSC_OUT

OSC_IN

4-26MHz

PLLCLK

HSIRC16MHz

/MHSE

HSI

SYSCLK

120MHz

max

/P

/Q

/R

VCO

xN

PLL

Ethernet

PHY

USB2.0

PHY

10

外部高速时钟HSE

?外部高速时钟源(1MHz~50MHz)

?方波、正弦波和三角波,占空比[45%,55%]

?设置HSEBYP&HSEON@RCC_CR

?外部高速晶振(4MHz~26MHz)

?使能/关闭控制:HSEON@RCC_CR

?就绪标志:HSERDY@RCC_CR

?晶振和负载电容要尽可能靠近晶振引脚

?减少输出失真和启动稳定时间

?典型稳定时间:2ms

参见AN2867获得更多关

于晶振设计的方法和技巧

11

外部低速时钟LSE

?外部低速时钟源

?典型值:32.768KHz;最大值:1000KHz

?方波、正弦波和三角波,占空比[45%,55%]

?设置LSEBYP&LSEON@RCC_BDCR

?外部低速晶振(32.768KHz)

?使能/关闭控制:LSEON@RCC_BRCR

?就绪标志:LSERDY@RCC_BDCR

?低功耗:最大1uA

?典型稳定时间:2s

?外部连接同HSE

?参见前页

12

内部高速时钟HSI

?16MHz的内部高速RC

?使能/关闭控制:HSION@RCC_CR

?就绪标志:HSIRDY@RCC_CR

?可直接作为系统时钟SYSCLK

?从停止模式唤醒或复位后,默认作为系统时钟

?或通过PLL间接作为系统时钟

?比HSE启动速度快,但精确度略差

?典型启动稳定时间:2.2us

?精度校准

?出厂校准值,存放在HSICAL[7:0]@RCC_CR

?应用中,用户可以用HSITRIM[4:0]@RCC_CR来调整

?参见AN2868获得HSI校准详情和技巧

13

内部低速时钟LSI

?低功耗时钟源

?使能/关闭控制:LSION@RCC_CSR

?就绪标志:LSIRDY@RCC_CSR

?可以停止和待机模式下继续工作

?为RTC和IWDG提供时钟

?典型值32KHz,范围[17KHz,47KHz]

?功耗典型值:0.65uA

?启动稳定时间典型值:85uS

14

总线时钟和时钟失效管理

HSI

HSE

PLLCLKMCO1/1..5

LSE

SYSCLK

HSE

PLLCLKMCO2/1..5

PLLI2S

LSIRC

32.768KHz/2,to31

LSEOSc

OSC32_IN

OSC32_OUT

~32KHzIWDGCLK

RTCCLK

TIM5IC4

HSE

/

2,

20

MACTXCLK

MACRXCLKMACRMIICL

KUSBHS

ULPIclock

/P

/Q

/R

xN

PLLI2S

I2SCLK

Ext.Clock

SPI2S_CKI

N

PLLI2SCLK

VCO

PCLK1

upto30MHz

If(APB2pres=1)

x1Else

x2

If(APB1pres

=1)x1

Elsex2

PCLK2

upto60MHz

TIMxCLK

TIM2..7,12..14

APB1

Prescaler

/1,2,4,8,16

TIMxCLK

TIM1,8..11

APB2

Prescaler

/1,2,4,8,16

HCLKup

to120MHz

AHBPrescaler

/1,2…512

/8SysTick

PLL48CLK(USBFS,SDIO&RNG)

CSS

HSEOscOSC_OUT

OSC_IN

4-26MHz

PLLCLK

HSIRC16MHz

/MHSE

HSI

SYSCLK

120MHz

max

/P

/Q

/R

VCO

xN

PLL

Ethernet

PHY

USB2.0

PHY

15

时钟安全管理CSS

?目标:对HSE时钟的监测,防止因时钟失效造成

系统出错甚至死机的严重后果

?不仅监测外部晶振HSE

?旁路HSE时,也监测外部时钟源

?一旦HSE失效:

?自动关闭HSE

?如果系统时钟直接或间接来自HSE,则它被自动切换到HSI

?如果HSE是PLL的输入,则PLL和PLLI2S也被关闭如果使能

?HSE恢复后,需重新配置PLL等

?该事件送到高级定时器TIM1和TIM8的刹车控制

?常用于电机控制

?产生CSSI中断,告知用户作相应处理

?该中断连至NMI不可屏蔽中断

?用户需要通过设置CSSC@RCC_CIR来清除中断标志

16

CSS应用举例:系统时钟的监控和切换

?启动时钟失效检测

?RCC_ClockSecuritySystemCmd(Enable);(失效事件连到不可屏蔽的NMI)

?HSE时钟失效时,产生NMI中断

?VoidNMIException(void)

?{

?if(RCC_GetITStatus(RCC_IT_CSS)!=RESET)

?{//HSE、PLL已被硬件自动关闭

?……..//用户可以在此添加应用相关的保护代码

?/下面为HSE恢复做准备,一旦HSE恢复将产生对应中断/

?//

?RCC_HSEConfig(RCC_HSE_ON);//再次手动打开HSE

?RCC_ITConfig(RCC_IT_HSERDY,ENABLE);

?RCC_ITConfig(RCC_IT_PLLRDY,ENABLE);

?//

?RCC_ClearITPendingBit(RCC_IT_CSS);//清除中断挂起位

?}

?}

?在RCC的中断处理程序中,再对HSE和PLL作相应处理

?使能PLL

?配置系统时钟来自HSE或PLL输出

17

PLL

HSI

HSE

PLLCLKMCO1/1..5

LSE

SYSCLK

HSE

PLLCLKMCO2/1..5

PLLI2S

LSIRC

32.768KHz/2,to31

LSEOSc

OSC32_IN

OSC32_OUT

~32KHzIWDGCLK

RTCCLK

TIM5IC4

HSE

/

2,

20

MACTXCLK

MACRXCLKMACRMIICL

KUSBHS

ULPIclock

/P

/Q

/R

xN

PLLI2S

I2SCLK

Ext.Clock

SPI2S_CKI

N

PLLI2SCLK

VCO

PCLK1

upto30MHz

If(APB2pres=1)

x1Else

x2

If(APB1pres

=1)x1

Elsex2

PCLK2

upto60MHz

TIMxCLK

TIM2..7,12..14

APB1

Prescaler

/1,2,4,8,16

TIMxCLK

TIM1,8..11

APB2

Prescaler

/1,2,4,8,16

HCLKup

to120MHz

AHBPrescaler

/1,2…512

/8SysTick

PLL48CLK(USBFS,SDIO&RNG)

CSS

HSEOscOSC_OUT

OSC_IN

4-26MHz

PLLCLK

HSIRC16MHz

/MHSE

HSI

SYSCLK

120MHz

max

/P

/Q

/R

VCO

xN

PLL

Ethernet

PHY

USB2.0

PHY

主PLL输出1产生高速系统时钟;

输出2产生48MHz给USB;

PLL2产生I2S专用精准时钟

18

两个PLL各司其职

?两个PLL

?主PLL

?输出1:PLLCLK

(SYSCLK的三个备选之一,

24MHz~120MHz)

?输出2:PLL48CK(供USBFS、

SDIO和RNG使用48MHz)

?专供音频I2S使用的PLLI2S

?输出:PLLI2SCLK

?两个PLL时钟源相同:均来自HSI或者HSE

?进入低功耗模式或者HSE失效,两个PLL自动关闭

?PLL的倍频、分频因子要在使能PLL之前配置

19

PLL的配置和使用

HSE

HSI

PLLSRC

PLLinput

clock/M

VCOinput

clock

N

N

/Q

/P

/RVCOoutputclock

VCOoutput

clock

PLL

PLLI2S

PLL48CLK

PLLCLK

PLLI2SCLK

两个PLL

共用的配置

输入频率的范围:

0.95~2MHz

输入频率的范围:

0.95~1.05MHz

Max=48MHz

[24MHz,120MHz]

Max=216MHz

20

PLL扩频时钟产生器(SSCG)

?只针对主PLL的SSCG

?目的:控制和减小EMI

?原理:采用一个频率很低的信号(典型范围在30KHz到

60KHz之间)对系统时钟进行频率调制。由此产生一个

具有边带谐波的频谱。窄带周期性时钟被有意扩展到宽

带,在基频和谐波频率中包含的峰值能量就相应减小

?中心扩频调制

?向下扩频调制

?举例:100MHz的时钟信号,0.5%的调制

?99.5MHz~100.5MHz之间进行调制,称为“中心0.5%的调制”

?为避免超出系统的最高频率,时钟信号通常在

99.5MHz~100MHz范围之间变化,称为“向下扩展频谱”

?控制寄存器

21

SSCG的应用示意

22

时钟信号输出

HSI

HSE

PLLCLKMCO1/1..5

LSE

SYSCLK

HSE

PLLCLKMCO2/1..5

PLLI2S

LSIRC

32.768KHz/2,to31

LSEOSc

OSC32_IN

OSC32_OUT

~32KHzIWDGCLK

RTCCLK

TIM5IC4

HSE

/

2,

20

MACTXCLK

MACRXCLKMACRMIICL

KUSBHS

ULPIclock

/P

/Q

/R

xN

PLLI2S

I2SCLK

Ext.Clock

SPI2S_CKI

N

PLLI2SCLK

VCO

PCLK1

upto30MHz

If(APB2pres=1)

x1Else

x2

If(APB1pres

=1)x1

Elsex2

PCLK2

upto60MHz

TIMxCLK

TIM2..7,12..14

APB1

Prescaler

/1,2,4,8,16

TIMxCLK

TIM1,8..11

APB2

Prescaler

/1,2,4,8,16

HCLKup

to120MHz

AHBPrescaler

/1,2…512

/8SysTick

PLL48CLK(USBFS,SDIO&RNG)

CSS

HSEOscOSC_OUT

OSC_IN

4-26MHz

PLLCLK

HSIRC16MHz

/MHSE

HSI

SYSCLK

120MHz

max

/P

/Q

/R

VCO

xN

PLL

Ethernet

PHY

USB2.0

PHY

两个MCO输出

23

时钟输出

时钟输出引脚分频因子时钟信号备注

MCO1PA.8MCO1PRE[2:0]/1…/5

HSI

1.对应GPIO应该配置

成AF-PP模式

2.受限于GPIO本身输

出带宽,输出时钟信

号不能超过100MHz

LSE

HSE

PLL

MCO2PC.9MCO2PRE[2:0]/1…/5

HSE

PLL

SYSCLK

PLLI2S

24

实时时钟和独立看门狗时钟

HSI

HSE

PLLCLKMCO1/1..5

LSE

SYSCLK

HSE

PLLCLKMCO2/1..5

PLLI2S

LSIRC

32.768KHz/2,to31

LSEOSc

OSC32_IN

OSC32_OUT

~32KHzIWDGCLK

RTCCLK

TIM5IC4

HSE

/

2,

20

MACTXCLK

MACRXCLKMACRMIICL

KUSBHS

ULPIclock

/P

/Q

/R

xN

PLLI2S

I2SCLK

Ext.Clock

SPI2S_CKI

N

PLLI2SCLK

VCO

PCLK1

upto30MHz

If(APB2pres=1)

x1Else

x2

If(APB1pres

=1)x1

Elsex2

PCLK2

upto60MHz

TIMxCLK

TIM2..7,12..14

APB1

Prescaler

/1,2,4,8,16

TIMxCLK

TIM1,8..11

APB2

Prescaler

/1,2,4,8,16

HCLKup

to120MHz

AHBPrescaler

/1,2…512

/8SysTick

PLL48CLK(USBFS,SDIO&RNG)

CSS

HSEOscOSC_OUT

OSC_IN

4-26MHz

PLLCLK

HSIRC16MHz

/MHSE

HSI

SYSCLK

120MHz

max

/P

/Q

/R

VCO

xN

PLL

Ethernet

PHY

USB2.0

PHY

25

RTC和IWDG的时钟

?RTC时钟源,三个可选

?LSE

?只有LSE属于电池备份域

?低功耗下可配置是否仍然工作

?即使VDD掉电只要VBAT还在RTC仍然工作

?LSI

?一旦VDD掉电,RTC和AWU不能工作

?HSE分频

?不超过1MHz

?一旦VDD掉电,RTC和AWU不能工作

?IWDG唯一时钟源

?LSI

?低功耗模式下可配置是否仍然工作

?一旦IWDG被打开,LSI就强制使能,不能关闭

26

培训内容

?复位源

?系统复位

?电源复位

?备份域复位

?时钟模块

?时钟树

?各时钟信号及其特性

?PLL的配置以及扩频技术(新增)

?时钟信号的输出

?时钟测量

?STM32F1和STM32F2时钟特性比较

27

内外时钟的测量

TIM5

counter

IC4

GPIO

RTC_OUT

LSE

LSI

TIM11

counter

IC1

GPIO

HSE_RTC

TI1RMP@TIM11_OR

TI4RMP@TIM5_OR

HSI或HSE

驱动TIM的

时基计数器

LSE连到T5C4,可用来精确测量HSI

>>HSI作为系统时钟,驱动TIM5的计数器

>>通过两个LSE上升沿之间的counter计数值获得HSI当前精确

频率(和一样的LSE精度)

>>用户校准存放在HSITRIM[4:0]

>>LSI连到T5C4,可被HSI或HSE测量

>>LSI典型值32KHz,有较大离散性[17KHz,47KHz]

>>HSI或者HSE作为系统时钟,驱动TIM5的计数器,以HSI或

HSE的精度测量LSI频率,由此计算IWDG最大喂狗周期

HSE_RTC连到T11C1

>>HSI作为系统时钟,可以粗略测量外部晶振的值

28

培训内容

?复位源

?系统复位

?电源复位

?备份域复位

?时钟模块

?时钟树

?各时钟信号及其特性

?PLL的配置以及扩频技术(新增)

?时钟信号的输出

?时钟测量

?STM32F1和STM32F2时钟特性比较

29

时钟模块特性比较

STM32F-2STM32F-1

HSE晶振

4~26MHz晶振和负载电容要尽可能靠近引脚以

减小输出失真和启动稳定时间;负载值的选择

取决于所选的晶振

4~16MHz&

3~25MHz

HSE外部时钟源

1~50MHzTyp.=8MHz外部时钟信号(占空比

50%的方波/正弦波/三角波)从OSC_IN引脚输入;

OSC_OUT悬空高阻

LSE晶振32.768KHz低功耗但精确度高的时钟源32.768KHz

LSE外部时钟源Max=1000KHztyp.=32.768KHz外部时钟信号从OSC_IN引脚输入;OSC_OUT悬空高阻

HSI谐振器

16MHz比HSE启动时间快,但即使校准后精确

度仍不及HSE;HSICalib[7:0]&HSITrim[4:0]

HSE失效后该HIS可以作为备份时钟?CSS

8MHz

LSI谐振器32KHz低功耗时钟,在Stop或Standby模式下仍可工作,用来驱动IWDG和自动唤醒40KHz

一旦通过硬件选项字节或者软件开启了IWDG,LSI就被强制使能且不能关闭;稳定时间后,LSI向IWDG提供时钟

30

时钟模块特性比较(2)

STM32F-2STM32F-1

AHB/APB1/APB2

总线最高频率120MHz/30MHz/60MHz72/36/72MHz

PLLPLL1输出系统时钟和48MHz时钟;PLL2输出专供音频I2S使用的时钟一个PLL或者三个PLL

时钟输出引脚MCO1(PA.8)MCO2(PC.9)最高输出频率100MHzMCO(PA.8)最高输出频率50MHz

扩频时钟发生支持,以减小设备产生的EMI

内外时钟校准通过T5C4和T1C11可以校准板上多个时钟源输出通过T5C4校准LSI

时钟安全系统CSS

检测到HSE失效:

?产生NMI中断并通知TIM1/8的刹车输入

?切换到HSI(如果HSE产生系统时钟)

?关闭PLL(如果HSE驱动PLL并产生系统时钟)

31

寄存器组比较

STM32F2STM32F1

CR主PLL和音频PLL的使能和就绪标志唯一一个PLL的使能和就绪标志

CSS使能/HSI出厂校准值和用户调整值/HSI使能和就绪标志/HSE使能-旁路-就绪标志

PLLCFGR两个PLL共用的分频因子M和时钟源选择/主PLL的N-Q-P因子

CFGR

两个MCO各自的选择和分频因子/I2S时钟源选择/

HSE给RTC提供时钟的分频因子

唯一一个MCO的选择/USB-ADC的预分频因子/

PLL的时钟源选择-预分频-倍频因子

系统时钟选择和标志/APB1-APB2-HCLK时钟各自的分频因子

CIR两个PLL(主PLL和音频PLL)只有唯一一个PLL

PLL-HSE-HIS-LSE-LSI准备就绪的标志位(r)-中断使能控制(rw)-清除标志位(w)/CSS标志-清除

XRSTRAHB1-AHB2-AHB3-APB1-APB2RSTRAPB1-APB2RSTR

XENRAHB1-AHB2-AHB3-APB1-APB2ENRAHB-APB1-APB2ENR

XLPENRAHB1-AHB2-AHB3-APB1-APB2LPENR

BDCR备份域软件复位/RTC使能-时钟选择/LSE旁路-使能-就绪标志

CSRBOR复位标志

低功耗管理-窗口/独立看门狗-软件-POR/PDR-外部引脚复位标志/清除复位标志/LSI使能-就绪信号

SSCGR作用于主PLL的时钟频谱延展控制

PLLI2SCFGR对音频PLL的N-R因子控制

参见低功耗章节的“时钟门控技术”

下划线标志出的寄存器处于备份域,复位后被写保护;不会被内部或外部复位影响;只受备份域复位影响

献花(0)
+1
(本文系无语悲剧首藏)