STM32F2系列之复位和时钟控制RCC详解

简易数字钟设计(已仿真)

简易数字钟设计 摘 要 本文针对简易数字钟的设计要求,提出了两种整体设计方案,在比较两个方案的优缺点后,选择了其中较优的一个方案,进行由上而下层次化的设计,先定义和规定各个模块的结构,再对模块内部进行详细设计。详细设计的时候又根据可采用的芯片,分析各芯片是否适合本次设计,选择较合适的芯片进行设计, 最后将设计好的模块组合调试,并最终在EWB 下仿真通过。 关键词 数字钟,EWB ,74LS160,总线,三态门,子电路 一、引言:所谓数字钟,是指利用电子电路构成的计时器。相对机械钟而言,数字钟能达到准确计时,并显示小时、分、秒,同时能对该钟进行调整。在此基础上,还能够实现整点报时,定时报闹等功能。 设计过程采用系统设计的方法,先分析任务,得到系统要求,然后进行总体设计,划分子系统,然后进行详细设计,决定各个功能子系统中的内部电路,最后进行测试。 二、任务分析:能按时钟功能进行小时、分钟、秒计时,并显示时间及调整时间,能整点报时,定点报时,使用4个数码管,能切换显示。 总体设计 本阶段的任务是根据任务要求进行模块划分,提出方案,并进行比较分析,最终找到较优的方案。 方案一、采用异步电路,数据选择器 将时钟信号输给秒模块,秒模块的进位输给分模块,分模块进位输入给时模块,切换的时候使用2选1数据选择器进行切换,电路框图如下: 该方案的优点是模块内部简单,基本不需要额外的电路,但缺点也很明显,该方案结构不清晰,模块间关系混乱,模块外还需使用较多门电路,不利于功能扩充,且使用了异步电路,计数在59的时候,高一级马上进位,故本次设计不采用此方案。 方案二、采用同步电路,总线结构 时钟信号分别加到各个模块,各个模块功能相对独立,框图如下: 显示 切换 秒钟 分钟 小时 控制 1Hz 脉冲信号 闹钟

SPI时钟模式的配置

SPI时钟模式的配置 【SPI基础知识简介】设备与设备之间通过某种硬件接口通讯,目前存在很多

种接口,SPI接口是其中的一种。 SPI中分Master主设备和Slave从设备,数据发送都是由Master控制。 —个master可以接一个或多个slave o 常见用法是一个Master接一个slave,只需要4根线: SCLK : Serial Clock,(串行)时钟 MISO : Master In Slave Out,主设备输入,从设备输出 MOSI : Master Out Slave In,主设备输出,从设备输入 SS: Slave Select,选中从设备,片选 SPI由于接口相对简单(只需要4根线),用途算是比较广泛,主要应用在EEPROM, FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。 即一个SPI的Master通过SPI与一个从设备,即上述的那些Flash, ADC等,进行通讯。 而主从设备之间通过SPI进行通讯,首先要保证两者之间时钟SCLK要一致,互相要商量好了,要匹配,否则,就没法正常通讯了,即保证时序上的一致才可正常讯。 而这里的SPI中的时钟和相位,指的就是SCLk时钟的特性,即保证主从设备两者的时钟的特性一致了,以保证两者可以正常实现SPI通讯。

【SPI相关的缩写或说法】 先简单说一下,关于SPI中一些常见的说法: SPI的极性Polarity和相位Phase,最常见的写法是CPOL和CPHA,不过也有 —些其他写法,简单总结如下: (1)CKPOL (Clock Polarity) = CPOL = POL = Polarity =(时钟)极性 (2)CKPHA (Clock Phase) = CPHA = PHA = Phase =(时钟)相位 (3)SCK二SCLK二SPI 的时钟 ⑷Edge=边沿,即时钟电平变化的时刻,即上升沿(rising edge)或者下降沿 (falling edge) 对于一个时钟周期内,有两个edge,分别称为: Leading edge=前一个边沿二第一个边沿,对于开始电压是1,那么就是1变成0 的时候,对于开始电压是0,那么就是0变成1的时候; Trailing edge二后一个边沿二第二个边沿,对于开始电压是1,那么就是0变成1 的时候(即在第一次1变成0之后,才可能有后面的0变成1),对于开始电压是0,那么就是1变成0的时候; 本文采用如下用法? 极性二CPOL 相位=CPHA SCLK二时钟 第一个边沿和第二个边沿

RCC时钟配置

时钟配置RCC_Configuration() 在比较靠前的版本中,我们需要向下面那样设置时钟: ErrorStatus HSEStartUpStatus; /*********************************************************************** *************** * FunctionName : RCC_Configuration() * Description : 时钟配置 * EntryParameter : None * ReturnValue : None ************************************************************************ **************/ void RCC_Configuration(void) { /* 复位所有的RCC外围设备寄存器,不改变内部高速振荡器调整位(HSITRIM[4..0])以及 备份域控制寄存器(RCC_BDCR),控制状态寄存器RCC_CSR */ RCC_DeInit(); // RCC system reset(for debug purpose) /* 开启HSE振荡器*/ /* 三个参数: RCC_HSE_ON-开启RCC_HSE_OFF-关闭RCC_HSE_BYPASS-使用外部时钟振荡器*/ RCC_HSEConfig(RCC_HSE_ON); // Enable HSE /* HSEStartUpStatus为枚举类型变量,2种取值,0为ERROR,非0为SUCCESS 等待HSE准备好,若超时时间到则退出*/ HSEStartUpStatus = RCC_WaitForHSEStartUp(); // Wait till HSE is ready if (HSEStartUpStatus == SUCCESS) // 当HSE准备完毕切振荡稳定后 { /* 配置AHB时钟,这个时钟从SYSCLK分频而来分频系数有1,2,4,8,16,64,128,256,512 */ RCC_HCLKConfig(RCC_SYSCLK_Div1); // HCLK = SYSCLK /* 设置低速APB2时钟,这个时钟从AHB时钟分频而来分频系数为1,2,4,8,16 */ RCC_PCLK2Config(RCC_HCLK_Div1); // PCLK2 = HCLK /* 设置低速APB1时钟,这个时钟从AHB时钟分频而来分频系数为1,2,4,8,16 */ RCC_PCLK1Config(RCC_HCLK_Div2); // PCLK1 = HCLK/2 FLASH_SetLatency(FLASH_Latency_2); // Flash 2 wait state FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); // Enable Prefetch Buffer /* 设置PLL的时钟源和乘法因子 第一个入口参数为时钟源,共有3个 RCC_PLLSource_HSI_Div2 RCC_PLLSource_HSE_Div1

VHDL_电子时钟的设计

实验报告书 实验项目名称:数字电子钟的设计 实验项目性质:普通试验 所属课程名称:VHDL程序设计 实验计划学时:4学时 一、实验目的 掌握VHDL程序设计方法 二、实验内容和要求 能够实现小时(24进制)、分钟和秒钟(60进制)的计数功能 具有复位功能 功能扩展:具有复位、整点报时提示、定时闹钟等功能 在软件工具平台上,进行VHDL语言的各模块编程输入、编译实现和仿真验证。 三、实验主要仪器设备和材料 计算机 四、实验方法、步骤及结果测试 1、设计思路: 根据实验要求,将设计分为3个主要部分,时钟功能模块、整点报时模块和闹钟功能模块在时钟模块中,包括复位和预置数,分为时、分和秒三个进程,其主要思路如下: 秒钟的模块:设计一个60进制的计数器,以clk为其时钟信号,每60个clk后产生一个进位信号AOUT给分钟模块,作为分钟进程的响应信号。 分钟的模块:同理于秒钟的模块,设计一个60进制的计数器,以AOUT为其时钟信号,每60个AOUT后产生一个进位信号BOUT给小时模块,作为小时模块进程的响应信号。小时的模块:为24进制计数器,在分的进位信号BOUT的激发下计数,从0到23的时候产生一个信号COUT,全部清0,重新开始计时。

闹钟模块:同INPUT作为闹钟的设定,当时钟信号等于INPUT设定的时候,N为高电平,即是闹钟信号。 整点报时模块:用两个信号M,F,当M,F同时为0的时候,Z产生高电平,即是当做报时信号。 在时钟模块中,如有复位信号,则各小模块在复位信号的激励下进行各位置零; 共有5个进程。 2.程序代码: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY lyk IS PORT(CLK,RST,EN,SET:IN STD_LOGIC; INPUT:IN STD_LOGIC_VECTOR(10 DOWNTO 0); HA,HB:OUT STD_LOGIC_VECTOR(5 DOWNTO 0); HC:OUT STD_LOGIC_VECTOR(4 DOWNTO 0); Z,N:OUT STD_LOGIC ); SIGNAL AOUT,BOUT,COUT :STD_LOGIC; END ENTITY lyk; ARCHITECTURE CLOCK OF lyk IS SIGNAL M,F:STD_LOGIC_VECTOR(5 DOWNTO 0); SIGNAL S:STD_LOGIC_VECTOR(4 DOWNTO 0); BEGIN PROCESS(CLK,RST,EN) ---------秒钟进程 V ARIABLE GOD:STD_LOGIC_VECTOR(5 DOWNTO 0); BEGIN IF RST='1' THEN GOD:=(OTHERS =>'0'); ELSIF CLK'EVENT AND CLK='0'

stm32如何配置时钟

学习STM32笔记2 如何配置时钟 学习STM32笔记2 如何配置时钟 /************************************************************* 该程序目的是用于测试核心板回来后是否能正常工作。包括 两个按键、两个LED现实。按键为PC4、PC5,LED为PA0\PA1。LED为 低电平时点亮。按键为低电平时触发。 ************************************************************/ #i nclude "stm32f10x_lib.h" void RCC_Configuration(void);//设置系统主时钟 void GPIO_Configuration(void);//设置邋邋IO参数 void NVIC_Configuration(void);//设置中断表地址 void delay(void);//延时函数 int main(void) { #ifdef DEBUG debug(); #endifRCC_Configuration(); NVIC_Configuration(); GPIO_Configuration(); while (1) { delay(); //设置指定的数据端口位 GPIO_SetBits(GPIOA,GPIO_Pin_0); //设置指定的数据端口位 delay(); GPIO_ResetBits(GPIOA,GPIO_Pin_0); //清除指定的数据端口位 GPIO_SetBits(GPIOA,GPIO_Pin_1); delay(); GPIO_ResetBits(GPIOA,GPIO_Pin_1); delay(); /********************************************* 使用setbits 与resetbits 是比较简单,其实还是可以使用 其它函数。例如可以使用GPIO_WriteBit GPIO_WriteBit(GPIOA, GPIO_Pin_1, Bit_SET); GPIO_WriteBit(GPIOA, GPIO_Pin_1, Bit_RESET);对于好像流水灯呀这些一个整段IO,可以使用GPIO_Write(GPIOA, 0x1101); *********************************************/

学习STM32笔记2如何配置时钟

学习STM32笔记2 如何配置时钟* 学习STM32笔记2 如何配置时钟 原创笔记2009-09-20 19:56 阅读116 评论0 字号:大中小 /************************************************************* 该程序目的是用于测试核心板回来后是否能正常工作。包括 两个按键、两个LED现实。按键为PC4、PC5,LED为PA0\PA1。LED为 低电平时点亮。按键为低电平时触发。 ************************************************************/ #i nclude "stm32f10x_lib.h" void RCC_Configuration(void);//设置系统主时钟 void GPIO_Configuration(void);//设置邋邋IO参数 void NVIC_Configuration(void);//设置中断表地址 void delay(void);//延时函数 int main(void) { #ifdef DEBUG debug(); #endifRCC_Configuration(); NVIC_Configuration(); GPIO_Configuration(); while (1) { delay(); //设置指定的数据端口位 GPIO_SetBits(GPIOA,GPIO_Pin_0); //设置指定的数据端口位 delay(); GPIO_ResetBits(GPIOA,GPIO_Pin_0); //清除指定的数据端口位 GPIO_SetBits(GPIOA,GPIO_Pin_1); delay(); GPIO_ResetBits(GPIOA,GPIO_Pin_1); delay(); /********************************************* 使用setbits 与resetbits 是比较简单,其实还是可以使用 其它函数。例如可以使用GPIO_WriteBit GPIO_WriteBit(GPIOA, GPIO_Pin_1, Bit_SET); GPIO_WriteBit(GPIOA, GPIO_Pin_1, Bit_RESET);对于好像流水灯呀这些一个整段IO,可以使用GPIO_Write(GPIOA, 0x1101); *********************************************/

第七章复位和系统时钟

第七章复位和系统时钟 7.1 复位 复位,是系统开始正常运转前的一个必经过程,复位部分设计的好坏,关系体统的稳定。STM32F10xxx 支持三种复位形式,分别为系统复位、上电复位和备份区域复位。 7.1.1 系统复位 系统复位将复位除时钟控制寄存器CSR中的复位标志和备份区域中的寄存器以外的所有寄存器(见图7-1-1)。 图7-1-1 复位系统图 当以下事件中的一件发生时,产生一个系统复位: 1. NRST管脚上的低电平(外部复位) 2. 窗口看门狗计数终止(WWDG复位) 3. 独立看门狗计数终止(IWDG复位) 4. 软件复位(SW复位) 5. 低功耗管理复位 可通过查看RCC_CSR控制状态寄存器中的复位状态标志位识别复位事件来源。软件复位,通过将Cortex?-M3中断应用和复位控制寄存器中的SYSRESETREQ位置’1’,可实现软件复位。 低功耗管理复位在以下两种情况下可产生低功耗管理复位: 1. 在进入待机模式时产生低功耗管理复位:通过将用户选择字节中的nRST_STDBY位置’1’将 使能该复位。这时,即使执行了进入待机模式的过程,系统将被复位而不是进入待机模式。 2. 在进入停止模式时产生低功耗管理复位:通过将用户选择字节中的nRST_STOP位置’1’将 使能该复位。这时,即使执行了进入停机模式的过程,系统将被复位而不是进入停机模式。 7.1.2 电源复位 当以下事件中之一发生时,产生电源复位: 1. 上电/掉电复位(POR/PDR复位) 2. 从待机模式中返回

电源复位将复位除了备份区域外的所有寄存器。(见图7-1-1) 图中复位源将最终作用于RESET管脚,并在复位过程中保持低电平。复位入口矢量被固定在地址0x0000_0004。备份区域拥有两个专门的复位,它们只影响备份区域。 7.1.3 备份域复位 当以下事件中之一发生时,产生备份区域复位。软件复位,备份区域复位可由设置备份区域控制寄存器RCC_BDCR中的BDRST位产生。在V DD和V BAT两者掉电的前提下,V DD或V BAT上电将引发备份区域复位。 7.2 时钟 三种不同的时钟源可被用来驱动系统时钟(SYSCLK): HSI振荡器时钟 HSE振荡器时钟 PLL时钟 这些设备有以下2种二级时钟源: 1. 40kHz低速内部RC,可以用于驱动独立看门狗和通过程序选择驱动RTC。RTC用于从停机/待 机模式下自动唤醒系统。 2. 32.768kHz低速外部晶体也可用来通过程序选择驱动RTC(RTCCLK)。 当不被使用时,任一个时钟源都可被独立地启动或关闭,由此优化系统功耗。 图7-2-1是系统的时钟树。

SPI时钟模式的配置

S P I时钟模式的配置集团标准化小组:[VVOPPT-JOPP28-JPPTL98-LOPPNN]

【S P I基础知识简介】 设备与设备之间通过某种硬件接口通讯,目前存在很多种接口,SPI接口是其中的一种。 SPI中分Master主设备和Slave从设备,数据发送都是由Master控制。 一个master可以接一个或多个slave。 常见用法是一个Master接一个slave,只需要4根线: SCLK:SerialClock,(串行)时钟 MISO:MasterInSlaveOut,主设备输入,从设备输出 MOSI:MasterOutSlaveIn,主设备输出,从设备输入 SS:SlaveSelect,选中从设备,片选 SPI由于接口相对简单(只需要4根线),用途算是比较广泛,主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。 即一个SPI的Master通过SPI与一个从设备,即上述的那些Flash,ADC等,进行通讯。 而主从设备之间通过SPI进行通讯,首先要保证两者之间时钟SCLK要一致,互相要商量好了,要匹配,否则,就没法正常通讯了,即保证时序上的一致才可正常讯。 而这里的SPI中的时钟和相位,指的就是SCLk时钟的特性,即保证主从设备两者的时钟的特性一致了,以保证两者可以正常实现SPI通讯。 【SPI相关的缩写或说法】 先简单说一下,关于SPI中一些常见的说法: SPI的极性Polarity和相位Phase,最常见的写法是CPOL和CPHA,不过也有一些其他写法,简单总结如下: (1)CKPOL(ClockPolarity)=CPOL=POL=Polarity=(时钟)极性 (2)CKPHA(ClockPhase)=CPHA=PHA=Phase=(时钟)相位 (3)SCK=SCLK=SPI的时钟 (4)Edge=边沿,即时钟电平变化的时刻,即上升沿(risingedge)或者下降沿(fallingedge) 对于一个时钟周期内,有两个edge,分别称为: Leadingedge=前一个边沿=第一个边沿,对于开始电压是1,那么就是1变成0的时候,对于开始电压是0,那么就是0变成1的时候; Trailingedge=后一个边沿=第二个边沿,对于开始电压是1,那么就是0变成1的时候(即在第一次1变成0之后,才可能有后面的0变成1),对于开始电压是0,那么就是1变成0的时候;

数字时钟的Multisim设计与仿真

电子电路Multisim设计和仿真 学院: 专业和班级: 姓名: 学号:

数字时钟的Multisim设计和仿真 一、设计和仿真要求 学习综合数字电子电路的设计、实现和调试 1.设计一个24或12小时制的数字时钟。 2. 要求:计时、显示精确到秒;有校时功能。采用中小规模集成电路设计。 3.发挥:增加闹钟功能。 二、总体设计和电路框图 1. 设计思路 1).由秒时钟信号发生器、计时电路和校时电路构成电路。 2).秒时钟信号发生器可由555定时器构成。 3).计时电路中采用两个60进制计数器分别完成秒计时和分计时;24进制计数器完成时计时;采用译码器将计数器的输出译码后送七段数码管显示。 4).校时电路采用开关控制时、分、秒计数器的时钟信号为校时脉冲以完成校时。 2. 电路框图 图1. 数字钟电路框图 三、子模块具体设计 1. 由555定时器构成的1Hz秒时钟信号发生器。 由下面的电路图产生1Hz的脉冲信号作为总电路的初输入时钟脉冲。

2. 分、秒计时电路及显示部分 在数字钟的控制电路中,分和秒的控制都是一样的,都是由一个十进制计数器和一个六进制计数器串联而成的,在电路的设计中我采用的是统一的器件74LS160D 的反馈置数法来实现十进制功能和六进制功能,根据74LS160D 的结构把输出端的0110(十进制为6)用一个与非门74LS00引到CLR 端便可置0,这样就实现了六进制计数。 由两片十进制同步加法计数器74LS160级联产生,采用的是异步清零法。 显示部分用的是七段数码管和两片译码器74LS48D 。 3. 时计时电路及显示部分 由两片十进制同步加法计数器74LS160级联产生,采用的是同步置数法,u1输出端为0011(十进制为3)与u2输出端0010(十进制为2)经过与非门接两片的置数端。 显示部分用的是七段数码管和两片译码器74LS48D 。 图2. 时钟信号发生电路 图3. 分秒计时电路

STM32时钟系统与软件配置

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。

在STM32上如果不使用外部晶振,OSC_IN和OSC_OUT的接法 如果使用内部RC振荡器而不使用外部晶振,请按照下面方法处理: 1)对于100脚或144脚的产品,OSC_IN应接地,OSC_OUT应悬空。 2)对于少于100脚的产品,有2种接法: 2.1)OSC_IN和OSC_OUT分别通过10K电阻接地。此方法可提高EMC性能。 2.2)分别重映射OSC_IN和OSC_OUT至PD0和PD1,再配置PD0和PD1为推挽输出并输出'0'。此方法可以减小功耗并(相对上面2.1)节省2个外部电阻。 使用HSE时钟,程序设置时钟参数流程: 1、将RCC寄存器重新设置为默认值RCC_DeInit; 2、打开外部高速时钟晶振HSE RCC_HSEConfig(RCC_HSE_ON); 3、等待外部高速时钟晶振工作 HSEStartUpStatus = RCC_WaitForHSEStartUp(); 4、设置AHB时钟RCC_HCLKConfig; 5、设置高速AHB时钟RCC_PCLK2Config; 6、设置低速速AHB时钟RCC_PCLK1Config;

第4章_复位时钟同步和初始化_mpc83xx中文手册

第四章复位、时钟同步和初始化 本章介绍复位、时钟同步和MPC8349E设备的整体初始化,包括复位配置信号的定义及其选项。此外还介绍配置、控制和状态寄存器。注意,本书的每一章都介绍了一个部件额外的具体的初始化过程。 4.1概述 复位、时钟同步和控制信号为设备的操作提供很多选项。可以在硬复位或上电复位期间配置不同的模式和特性。大多数可配置特性由复位配置字装入设备,只有很少一部分信号用作复位序列期间的复位配置输入。 4.2外部信号说明 下面几节详细说明复位和时钟信号。 4.2.1复位信号 表4-1说明了MPC8349E的复位信号。4.4.2节“复位配置字”介绍了还作为复位配置信号的信号。 表4-1 系统控制信号——详细信号说明

4.2.2时钟信号 表4-2说明了MPC8349E的外部时钟信号。注意,某些信号对设备内的某些部件来说是特定的,虽然4.5节“时钟同步”介绍了它们的某些功能,但分别在各章中对它们进行了详细定义。 表4-2 时钟信号——详细信号说明

4.3功能说明 本节介绍复位设备的各种方法、上电复位配置和设备的时钟同步。 4.3.1复位操作 设备有数个到复位逻辑的输入: ●上电复位(/PORESET) ●外部硬复位(/HRESET) ●外部软复位(/SRESET) ●软件看门狗复位 ●系统总线监控器复位 ●检查停止(checkstop)复位 ●JTAG复位 ●软件硬复位

位状态寄存器(RSR)”中介绍的复位状态寄存器指示引起复位的最后的复位源。 4.3.1.1复位原因 表4-3介绍了复位原因。 表4-3 复位原因 4.3.1.2复位操作 复位控制逻辑确定复位的原因,必要时对其进行同步,并复位适当的内部硬件。每个复位流对设备有不同的影响: ?上电复位的影响最大,它复位整个设备,包括时钟逻辑和错误捕获寄存器。 ?硬复位复位整个设备,但不包括时钟逻辑和错误捕获寄存器。 ?软复位则初始化内部逻辑,但保持系统的配置。 所有复位类型都产生到e300c1核的复位。/PORESET、/HRESET和/SRESET对给定应用的影响是核将MSR[IP]的值复位为复位寄存器字高端的BMS字段中的值。参见4.4.2.12节“引导内存空间(BMS)”。 存贮器控制器、系统保护逻辑、中断控制器和I/O信号仅在硬复位时初始化。软复位初始化内部逻辑,但保持系统的配置。外部/SRESET有效向核和其余的设备产生硬复位。表4-4标识了每个复位源的复位操作。

PCB模块化布局---时钟电路设计

PCB模块化布局---时钟电路设计 在一个电路系统中,时钟是必不可少的一部分。时钟电路相当关键,在电路中的作用犹如人的心脏的作用,如果电路系统的时钟出错了,系统就会发生紊乱,因此在PCB中设计一个好的时钟电路是非常必要的。 我们常用的时钟电路有:晶体、晶振、时钟分配器。有些IC用的时钟可能是由主芯片产生的,但追根溯源,还是由上述三者之一产生的。接下来结合具体实例,说明时钟电路布局、布线的原则和注意事项。 晶体 PCB中常用的晶体封装有:2管脚的插件封装和SMD封装、4管脚的SMD封装,常见封装如下图: 2管脚PTH 2管脚SMD封装4管脚SMD封装 尽管晶体有不同的规格,但它们的基本电路设计是一致的,因此PCB的布局、布线规则也是通用的。基本的电路设计如下图: 从电路原理图中可以看出,电路由晶体+2个电容组成,这两个电容分别为增益电容和相位电容。

晶体电路布局时,两个电容靠近晶体放置,布局效果图如下: 布线时,晶体的一对线要走成类差分的形式,线尽量短、且要加粗并进行包地处理,效果如下图:

上述的是最基本和最常见的晶体电路设计,也有一些变形设计,如加串阻、测试点等,如下图,设计思路还是一致的: 结合上述,布局应注意: 1.和IC布在同一层面,这样可以少打孔; 2.布局要紧凑,电容位于晶体和IC之间,且靠近晶体放置,使时钟线到IC尽量 短; 3.对于有测试点的情况,尽量避免stub或者是使stub尽量短; 4.附近不要摆放大功率器件、如电源芯片、MOS管、电感等发热量大的器件; 布线应注意: 1.和IC同层布局,同层走线,尽量少打孔,如果打孔,需要在附近加回流地孔; 2.类差分走线; 3.走线要加粗,通常8~12mil;由于晶体时钟波形为正弦波,所以此处按模拟设计 思路处理; 4.信号线包地处理,且包地线或者铜皮要打屏蔽地孔; 5.晶体电路模块区域相当于模拟区域,尽量不要有其他信号穿过;

锁相环配置时钟

锁相环配置时钟 锁相环作为一个提供系统时钟的模块,是一个基本的模块,几乎每次编程序都得用到。下面记一下怎样配置锁相环来设定想要的系统时钟。 锁相环PLL、自时钟模式和前面说的实时中断RTI、看门狗COP都属于系统时钟与复位CRG中的模块,固前面用到的寄存器,这里有些会再用到。 在程序中配置锁相环的步骤如下: 第一、禁止总中断; 第二、寄存器CLKSEL的第七位置0,即CLKSEL_PLLSEL=0。选择时钟源为外部晶振OSCCLK,在PLL程序执行前,内部总线频率为OSCCLK/2。 CLKSEL_PLLSEL=0时,系统时钟由外部晶振直接提供,系统内部总线频率=OSCCLK/2(OSCCLK为外部晶振频率)。CLKSEL_PLLSEL=1时,系统时钟由锁相环提供,此时系统内部总线频率=PLLCLK/2 (PLLCLK为锁相环倍频后的频率)。 第三、禁止锁相环PLL,即PLLCTL_PLLON=0。 当PLLCTL_PLLON=0时,关闭PLL电路。当PLLCTL_PLLON=1时,打开PLL电路。 第四、根据想要的时钟频率设置SYNR和REFDV两个寄存器。 SYNR和REFDV两个寄存器专用于锁相环时钟PLLCLK的频率计算,计算公式是: PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1) 其中,PLLCLK为PLL模块输出的时钟频率;OSCCLK为晶振频率;SYNR、REFDV 分别为寄存器SYNR、REFDV中的值。这两个寄存器只有在PLLSEL=0时才能

够写入(这里就是第二步的设置原因所在了)。 第五、打开PLL,即PLLCTL_PLLON=1。 第六、CRGFLG_LOCK位,确定PLL是否稳定。 当锁相环PLL电路输出的频率达到目标频率的足够小的误差范围内时,LOCK位置1,此时说明PLLCLK已经稳定,可以作为系统的时钟了。该位在正常情况下为只读位。 第七、PLLCLK稳定后,允许锁相环时钟源PLLCLK为系统提供时钟,即CLKSEL_PLLSEL=1。 到这里,锁相环的设置就完毕了。

单片机的时钟、时序及复位

四川工程职业技术学院 单片机应用技术课程电子教案 Copyright ? https://www.360docs.net/doc/7412637491.html, 第讲 5 8051及P89V51RD2单片机的时钟、 时序和复位

本讲主要内容 5-1. 标准80C51的时钟电路、时间单位与时序 5-2. P89V51RD2单片机的时钟电路、时间单位与时序5-3. P89V51RD2单片机的复位与复位电路

时钟电路 ——用于产生供单片机各部分同步工作的时钟信号 方法1:用石英晶体振荡器 方法2:从外部输入时钟信号 (80C51) 80C51振荡器 C1 C2 CYS 80C51 悬空 外部时钟信号 XTAL1 XTAL2 XTAL2 XTAL1

单片机内部的时间单位 S1 S2S3S4S5S6 机器周期T CY 分频器 振荡器 晶振周期 时钟周期(S 状态) 80C51 P1 P2 ALE 信号

单片机内部的时间单位 ?振荡频率f osc = 石英晶体频率或外部输入时钟频率 振荡周期= 振荡频率的倒数 ?机器周期 机器周期是单片机应用中衡量时间长短的最主要的单位 在多数51系列单片机中: 1机器周期= 12×1/ fosc ?指令周期——执行一条指令所需要的时间 单位:机器周期 51单片机中:单周期指令、双周期指令、四周期指令

单片机内部的时间单位 课堂练习: 如果某单片机的振荡频率f =12MHz,则: osc 振荡周期=S=mS=uS; 机器周期=uS; 已知乘法指令“MUL AB”是一条4周期指令,则执行这条指令需要uS; 加法指令“ADD A,#01H”是单周期指令,那么1S内该单片机可以进 行次加法运算。

stm32f030时钟配置工具AN4055

May 2012Doc ID 022837 Rev 11/17 AN4055 Application note Clock configuration tool for STM32F0xx microcontrollers Introduction This application note presents the clock system configuration tool for the STM32F0xx microcontroller family. The purpose of this tool is to help the user configure the microcontroller clocks, taking into consideration product parameters such as power supply and Flash access mode. The configuration tool is implemented in the “STM32F0xx_Clock_Configuration_VX.Y .Z.xls” file which is supplied with the STM32F0xx Standard Peripherals Library and can be downloaded from https://www.360docs.net/doc/7412637491.html, . This tool supports the following functionalities for the STM32F0xx: ● Configuration of the system clock, HCLK source and output frequency ● Configuration of the Flash latency (number of wait states depending on the HCLK frequency)● Setting of the PCLK1, PCLK2, TIMCLK (timer clocks) and I2SCLK frequencies ●Generation of a ready-to-use system_stm32f0xx.c file with all the above settings (STM32F0xx CMSIS Cortex-M0 Device Peripheral Access Layer System Source File)The STM32F0xx_Clock_Configuration_VX.Y .Z.xls is referred to as “clock tool” throughout this document. Before using the clock tool, it is essential to read the STM32F0xx microcontroller reference manual (RM0091). This application note is not a substitute for the reference manual.This tool supports only the STM32F0xx devices. For VX.Y .Z, please refer to the tool version, example V1.0.0 https://www.360docs.net/doc/7412637491.html,

51单片机的时钟及复位

51单片机的时钟及复位 时钟电路:8031单片机的时钟信号通常用两种电路 形式得到:内部振荡方式和外部振荡方式。在引脚 XTAL1和XTAL2外接晶体振荡器(简称晶振)或陶瓷谐振器,就构成了内部振荡方式。由于单片机内部有一个高增益 反相放大器,当外接晶振后,就构成了自激振荡器并产 生振荡时钟脉冲。内部振荡方式的外部电路如下图所示。外部振荡方式是把外部已有的时钟信号引入单片机内。 这种方式适宜用来使单片机的时钟与外部信号保持同步。外部振荡方式的外部电路如下图所示。 图中,电容器Col,C02起稳定振荡频率、快速起振的作用,其电容值一般在5-30pF。晶振频率的典型值为12MH2,采用6MHz的情况也比较多。内部振荡方式所得 的时钟情号比较稳定,实用电路中使用较多。 由上图可见,外部振荡信号由XTAL2引入,XTAL1接地。为了提高输入电路的驱劝能力,通常使外部信号经

过一个带有上拉电阻的TTL反相门后接入XTAL2。 基本时序单位: 单片机以晶体振荡器的振荡周期(或外部引入的时钟周期)为最小的时序单位,片内的各种微操作都以此周期为时序基准。振荡频率二分频后形成状态周期或称s周期,所以,1个状态周期包含有2个振荡周期。振荡频率foscl2分频后形成机器周期MC。所以,1个机器周期包含有6个状态周期或12个振荡周期。1个到4个机器周期确定一条指令的执行时间,这个时间就是指令周期。8031单片机指令系统中,各条指令的执行时间都在1个到4个机器周期之间。4种时序单位中,振荡周期和机器周期是单片机内计算其它时间值(例如,波特率、定时器的定时时间等)的基本时序单位。下面是单片机外接晶振频率12MHZ时的各种时序单位的大小:振荡周期= 1/fosc=1/12MHZ=0.0833us 复位电路: 当MCS-5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状

STM32复位和时钟控制(RCC)

复位 STM32F10xxx支持三种复位形式,分别为系统复位、电源复位和备份区域复位。 1、系统复位 系统复位将所有寄存器设置成复位值,除了RCC_CSR(控制状态寄存器)中的相关复位标志位,通过查看RCC_CSR寄存器,可以识别复位源。 系统复位可由以下5种方式产生: 1)外部引脚NRST复位(低电平触发); 2)窗口看门狗(WWDG)计数终止 3)独立看门狗(IDOG)计数终止 4)软件复位(SW RESET),通过将中断应用和复位控制寄存器 (Application Interrupt and Reset Control Register )中SYSRESETREQ位置1。具体参考Cortex-M3 programming manual。 5)低功耗管理复位: ①通过进入等待模式(StandBy)产生复位: 通过User Option Bytes中设置nRST_STDBY位使能这种复 位模式。这时,即使执行了进入待机模式的过程,系统将 被复位而不是进入待机模式。 ②通过进入停止模式(STOP)产生复位: 通过User Option Bytes中设置nRST_STOP位使能这种复

位模式。这时,即使执行了进入停止模式的过程,系统将 被复位而不是进入停止模式。 2、电源复位 电源复位设置所有寄存器置初始值,除了备份区域。 电源复位可由以下2种方式产生: 1)上电复位和掉电复位(POR/PDR reset) 2)退出等待(StandBy)模式 这些复位源都作用在NRST引脚上,并且在复位延迟期间保持低电平。 提供给设备的系统复位信号都由NRST引脚输出,对每一个内部/外部复位源,脉冲发生器都将保证一个20us最小复位周期。对于外部复位,当NRST位置低时,将产生复位信号。 3、备份区复位 备份区复位仅仅影响被分区域,有以下两种产生方式: 1)软件复位,设置备份区域控制寄存器RCC_BDCR BDRST= 1; 2)在V DD和V BAT两者掉电的前提下,V DD或V BAT上电。

基带时钟信号发生模块

基带时钟信号发生模块 根据题目要求,我们选用单片机MC9S12XS128 来产生基带的时钟信号,为了节约拨码开关,我们采用BCD码来编码1~10个按钮,分别表示10KHz~100KHz。 MC9S12XS128的PWM是指脉冲宽度调制,是利用其数字输出来对模拟电路进行非常有效的一种控制技术,在MC9S12XS128中,PWM主要是通过设置相关的寄存器,让PWM0~PWM7引脚输出一定周期一定占空比的矩形波,输出的矩形波的周期和占空比在输出的过程中,可以通过改变相关寄存器的值来改变。设置完相关的寄存器,就可以编写程序以实现方波的产生,单片机外围接上四个拨码开关并采用BCD编码来表示1~10,分别代表单片机产生的10KHz~100KHz,拨码开关接在PA0~PA3上即可。相关的程序清单详见附件。数据率由示波器测试,我们所使用的型号为UTD2102CED数字示波器能够显示精确到小数点后两位的数据,数据率测试如表6.2所示。 表6.2 数据率测试 预输出(KHz)102030405060708090100实测(KHz)10.0020.0030.0340.0050.0059.8869.9380.0090.10100.00误差(%)000.100-0.2-0.10-0.110 结果表明:由MC9S12XS128 的PWM 产生的时钟信号十分准确,精度很高,误差在允许的范围内且误差极小,时钟信号精度越高,最后显示的眼图也就越清晰。 程序清单 1 初始化程序 #include /* common defines and macros */ #include "derivative.h" /* derivative-specific definitions */

EDA时钟设计

第一部分:设计说明 1设计任务 设计一款数字电子时钟,具体要求如下: 1:输入条件:50MHz时钟,2个输入按键; 2:功能实现:具有显示时、分、秒功能;采用LED数码管显示;具有闹钟与对时功能,对时精确到分,闹钟设置与对时采用按键作为输入信号。 3:采用altera公司的quartusII软件进行编程与仿真,设计语言可以选择VerilogHDL或VHDL。 2目的与意义 训练综合运用学过的数字电子技术、数字系统设计技术(HDL硬件设计)和计算机编程及电路相关基本知识,培养独立设计比较复杂数字系统设计能力。 通过综合设计,力争掌握使用EDA工具设计数字系统电路的基本方法,包括原理方案的确定、详细设计中的编程与仿真等一系列过程,为以后进行工程实践问题的研究打下设计基础。 时钟,自从它发明的那天起,就成为人类的朋友,但随着社会的进步,科技的的发展,人们对它的功能又提出了新的要求,怎样让时钟更好的为人民服务,怎样让我们的老朋友焕发青春呢?这就要求人们不断设计出新型时钟。 现代社会,守时已不仅关系到一个人的职业生涯,还成了衡量一个人道德的标准。时钟为人们提供了科学利用时间规律的依据,然而,普通的机械钟表与半机械钟表对于忙碌的生活显然早已不太适应,设计一款高精度数字时钟势在必行。本课题将通过对目前市场上的数字电子钟的研究,利用EDA技术设计一款高精度数字式电子钟,使人们可以得到精确时间显示,帮助人们合理安排时间,方便人们的生活

第二部分原理方案设计 1总体方案 要实现一个数字时钟小系统,整个系统由主要模块电路模块和外部输入输出以及显示模块组成。首先分别实现单个模块的功能,然后再通过级联组合的方式实现对整个系统的设计。 其中,主要模块有六个。它包括脉冲信号产生模块、时间计数模块(计数模块又分为分计数模块、秒计数模块、时计数模块)、译码显示模块、复位模块、闹铃模块、调节模块。各个模块先用EDA技术中的VHDL语言编程仿真,再生成各个小模块的模拟元件,再元件例化,根据设计连接电路实现数字电子钟小系统。2各部分方案 1:通过分频,产生1HZ的时钟信号 2:分别设计秒计时,分计时,时计时,秒计时用上面的时钟信号1HZ产生,分计时也是60一清零,分计时的时钟用的是秒计时的进位信号,时计时 用的是24一清零,CLK是分的进位。 3:闹铃模块其实和整点报时差不多,程序是整点报时,改变程序里的数据就可以实现闹铃模式 4:显示模块用的是7段共阳数码管,用来显示数字。 具体的思想如下图1所示

相关文档
最新文档