STM32的时钟系统分析

 

在STM32中,有五个时钟源,为HSI、HSE、LSI、LSE、PLL。
①、HSI是高速内部时钟,RC振荡器,频率为8MHz。
②、HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接
外部时钟源,频率范围为4MHz~16MHz。
③、LSI是低速内部时钟,RC振荡器,频率为40kHz。
④、LSE是低速外部时钟,接频率为32.768kHz的石英晶体。
⑤、PLL为锁相环倍频输出,其时钟输入源可选择为HSI/2、
HSE或者HSE/2。倍频可选择为2~16倍,但是其输出频率最
大不得超过72MHz。

其中40kHz的LSI供独立看门狗IWDG使用,另外它还可以被
选择为实时时钟RTC的时钟源。另外,实时时钟RTC的时钟源
还可以选择LSE,或者是HSE的128分频。RTC的时钟源通过
RTCSEL[1:0]来选择。

STM32中有一个全速功能的USB模块,其串行接口引擎需要
一个频率为48MHz的时钟源。该时钟源只能从PLL输出端获
取,可以选择为1.5分频或者1分频,也就是,当需要使用
USB模块时,PLL必须使能,并且时钟频率配置为48MHz或
72MHz。

另外,STM32还可以选择一个时钟信号输出到MCO脚(PA8)上,
可以选择为PLL输出的2分频、HSI、HSE、或者系统时钟。

系统时钟SYSCLK,它是供STM32中绝大部分部件工作的时钟
源。系统时钟可选择为PLL输出、HSI或者HSE。系统时钟最
大频率为72MHz,它通过AHB分频器分频后送给各模块使用,
AHB分频器可选择1、2、4、8、16、64、128、256、512分
频。其中AHB分频器输出的时钟送给5大模块使用:
①、送给AHB总线、内核、内存和DMA使用的HCLK时钟。
②、通过8分频后送给Cortex的系统定时器时钟。
③、直接送给Cortex的空闲运行时钟FCLK。
④、送给APB1分频器。APB1分频器可选择1、2、4、8、16分
频,其输出一路供APB1外设使用(PCLK1,最大频率36MHz),
另一路送给定时器(Timer)2、3、4倍频器使用。该倍频器
可选择1或者2倍频,时钟输出供定时器2、3、4使用。
⑤、送给APB2分频器。APB2分频器可选择1、2、4、8、16分
频,其输出一路供APB2外设使用(PCLK2,最大频率72MHz),
另一路送给定时器(Timer)1倍频器使用。该倍频器可选择1或
者2倍频,时钟输出供定时器1使用。另外,APB2分频器还有
一路输出供ADC分频器使用,分频后送给ADC模块使用。ADC
分频器可选择为2、4、6、8分频。

在以上的时钟输出中,有很多是带使能控制的,例如AHB总线
时钟、内核时钟、各种APB1外设、APB2外设等等。当需要使
用某模块时,记得一定要先使能对应的时钟。

需要注意的是定时器的倍频器,当APB的分频为1时,它的倍
频值为1,否则它的倍频值就为2。

连接在APB1(低速外设)上的设备有:电源接口、备份接口、
CAN、USB、I2C1、I2C2、UART2、UART3、SPI2、窗口看门狗、
Timer2、Timer3、Timer4。注意USB模块虽然需要一个单独的
48MHz时钟信号,但它应该不是供USB模块工作的时钟,而只
是提供给串行接口引擎(SIE)使用的时钟。USB模块工作的时
钟应该是由APB1提供的。

连接在APB2(高速外设)上的设备有:UART1、SPI1、Timer1、
ADC1、ADC2、所有普通IO口(PA~PE)、第二功能IO口。

下图是STM32用户手册中的时钟系统结构图,通过该图可以从
总体上掌握STM32的时钟系统。

文章转载自:http://home.eeworld.com.cn/my/space.php?uid=77542&do=blog&id=12911

一、实验目的   1、了解实时时钟的硬件控制原理及设计方法。   2、掌握S3C44B0X 处理器的RTC 模块程序设计方法。     二、实验设备   1、硬件: Embest EduKit-III 实验平台, Embest ARM 标准/ 增强型仿真器套件,PC 机。   2、软件: Embest IDE Pro ARM 集成开发环境, Windows 98/2000/NT/XP。   三、实验内容   学习掌握 Embest EduKit-III 实验平台中RTC 模块的使用,进行以下操作:   1、编写应用程序,修改时钟日期及时间的设置。   2、使用EMBEST ARM教 学系统的串口,在超级终端显示当前系统时间。     四、实验原理   1. 实时时钟( RTC )   实时时钟( RTC)器件是一种能提供日历/ 时钟、数据存储等功能的专用集成电路,常用作各种计算机系统的时钟信号源参数设置存储电路。RTC 具有计时准确、耗电低体积小等特点, 特别是在各种嵌入式系统中用于记录事件发生的时间相关信息, 如通信工程、电力自动化、工业控制等自动化程度高的领域的无人值守环境。随着集成电路技术的不断发展, RTC 器件的新品也不断推出, 这些新品不仅具有准确的RTC,还有大容量的存储器、温度传感器A/D 数据采集通道等,已成为集RTC、数据采集存储于一体的综合功能器件,特别适用于以微控制器为核心的嵌入式系统。     RTC 器件与微控制器之间的接口大都采用连线简单的串行接口,诸如I2C、SPI、MICROWIRECAN 等串行总线接口。这些串口由 2~3 根线连接,分为同步异步。     2. S3C44B0X 实时时钟( RTC )单元   S3C44B0X 实时时钟( RTC)单元是处理器集成的片内外设。由开发板上的后备电池供电,可以在系统电源关闭的情况下运行。RTC 发送8 位BCD 码数据到CPU。传送的数据包括秒、分、小时、星期、日期、月份年份。RTC 单元时钟源由外部32.768KHz 晶振提供,可以实现闹钟(报警)功能。S3C44B0X 实时时钟( RTC)单元特性:BCD 数据:秒、分、小时、星期、日期、月份年份   1、闹钟(报警)功能:产生定时中断或激活系统   2、自动计算闰年   3、无2000 年问题   4、独立的电源输入   5、支持毫秒级时间片中断,为RTOS 提供时间基准读/ 写寄存器   访问 RTC 模块的寄存器, 首先要设 RTCCON的 bit0 为1。CPU 通过读取 RTC 模块中寄存器 BCDSE、CBCDMIN、BCDHOU、RBCDDA、YBCDDAT、EBCDMON BCDYEAR的值,得到当前的相应时间值。然而,由于多个寄存器依次读出,所以有可能产生错误。比如:用户依次读取年(1989)、月(12)、日(31)、时(23)、分(59)、秒( 59)。当秒数为1 到59 时,没有任何问题,但是,当秒数为0 时,当前时间日期就变成了1990 年1 月1 日0 时0 分。这种情况下(秒数为0),用户应该重新读取年份到分钟的值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值