时钟信号产生模块设计
简易数字钟设计(已仿真)

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

fpga数字时钟课程设计FPGA数字时钟课程设计随着科技的不断发展,数字时钟已经成为现代人生活中必不可少的物品。
数字时钟的准确性和便捷性吸引了越来越多的人使用。
而现在,我们可以通过FPGA数字时钟课程设计来实现一个高精度的数字时钟。
FPGA(Field Programmable Gate Array)是一种可编程逻辑器件,可以通过编程实现各种不同的功能。
数字时钟的实现也可以通过FPGA来完成。
在FPGA数字时钟课程设计中,我们需要先确定时钟的基础部分。
时钟的基础部分由时钟信号产生器、时钟分频器、时钟计数器和时钟显示器组成。
时钟信号产生器需要产生一个稳定的时钟信号,以供后续的计数器和分频器使用。
我们可以通过FPGA中的时钟模块来产生一个稳定的时钟信号。
接下来,时钟分频器需要将时钟信号分频,使得计数器可以进行精确的计数。
分频器的分频系数可以通过FPGA中的数码开关进行设置。
然后,时钟计数器需要根据分频器的设定进行精确的计数。
计数器的计数值可以通过FPGA中的计数器模块进行设置。
时钟显示器需要将计数器的计数值进行显示。
我们可以通过FPGA 中的数码管模块来实现时钟的显示功能。
除了基础部分,我们还可以通过添加更多的功能来完善数字时钟。
例如,我们可以添加闹钟功能、日期显示功能等,以增加数字时钟的实用性。
在FPGA数字时钟课程设计中,我们可以使用VHDL(VHSIC Hardware Description Language)语言进行编程。
VHDL是一种硬件描述语言,可以用于FPGA和ASIC的设计。
通过编写VHDL 程序,我们可以实现数字时钟的各种功能。
FPGA数字时钟课程设计是一个非常有趣和实用的课程项目。
通过这个项目,我们可以深入了解数字时钟的工作原理,熟悉FPGA的编程方法,同时也可以锻炼自己的编程能力。
1Hz的时钟信号发生器

The University of South China 电子课程设计题目 1Hz时钟信号发生器学院名称电气工程学院指导教师班级测控071班学号学生姓名2010年01月21日1Hz时钟信号发生器系统设计摘要:本设计由两个模块组成:信号产生电路,分频电路。
信号产生电路由=32768Hz的石英晶振组成的晶振电路,分频电路由十四级分频器CD4060和二级分频器74LS390组成。
关键词: 晶振,反馈电阻,负载电容,分频器ABSTRACT:This design consists of two modules: signal generating circuit, sub-frequency circuits. Signal generation circuit consists of = 32768Hz crystal composed of quartz crystal oscillator circuit, divider circuit consists of 14 and two divider divider CD4060 composed of 74LS390.KEYWORDS: Crystal,feedback resistance,loading capacitor,frequency divider目录:1 系统设计 (4)1.1设计任务与要求 (4)1.2设计分析 (4)1.3各模块方案选择和论证 (5)1.3.1时钟信号发生电路的选择 (5)1.3.2 分频电路模块 (8)2系统的硬件实现 (9)2.1信号发生电路模块 (9)2.2分频电路模块 (10)2.3电路仿真调整 (10)2.4信号检测 ......................................................................................................... 11_Toc249868527 3总结语. (11)参考文献: (12)附录: (13)附录一 (13)附录二 (13)1 系统设计1.1设计任务与要求设计1Hz的时钟信号发生器,要求要有稳定的频率,非线性失真小。
VHDL数字时钟设计

VHDL数字时钟设计序⾔这个是我在做FPGA界的HelloWorld——数字钟设计时随⼿写下的,再现了数字钟设计的过程⽬标分析1. 时钟具有时分秒的显⽰,需6个数码管。
为了减⼩功耗采⽤扫描法显⽰2. 按键设置时间,需要对按键进⾏消抖3. 时分秒即为2个60进制计数器,⼀个24进制计数器。
模块设计综上所述,我采⽤模块化设计⽅法进⾏设计,绘制框图如下。
1. 时钟分频产⽣各个模块所需频率时钟。
2. 按键处理模块对按键信号进⾏消抖、变长脉冲为短脉冲等处理。
3. 时间控制模块产⽣时间信号或对时间进⾏设置。
4. 数码管驱动模块负责对时间信号BCD码译码为数码管的段码并且扫描输出到数码管。
下⾯对各个模块分别详细叙述时钟分频模块我打算把时钟分频模块做成“数控N分频器”,通过给分频器传⼊数值N来对时钟信号进⾏N分频。
得到的信号频率为原时钟信号的频率/N,占空⽐为1/N。
稍微考虑下其他模块所需时钟:按键处理模块100Hz ,时间控制模块1Hz,数码管驱动50Hz。
⽽输⼊时钟为33.8688MHz。
我不想传⼊的N数值过⼤,我打算先对时钟进⾏两次:第⼀次调⽤时钟分频模块得到1Mhz,第⼆次得到1Khz。
这样N的位数为10可以满⾜需求。
代码如下library IEEE;use IEEE.STD_LOGIC_1164.all;use IEEE.STD_LOGIC_UNSIGNED.all;entity ClkDiv isport(clk_i:IN STD_LOGIC;N_i: IN STD_LOGIC_VECTOR(9 DOWNTO 0);clk_o:OUT STD_LOGIC);end ClkDiv;architecture behavior of ClkDiv issignal count:STD_LOGIC_VECTOR(9 DOWNTO 0):="0000000001";signal clk_temp:STD_LOGIC:='0';beginprocess(clk_i)beginif(clk_i'EVENT and clk_i='1')thenif (count=N_i)thencount<="0000000001";clk_temp<='1';elsecount<=count+1;clk_temp<='0';end if;end if;end process;clk_o<=clk_temp;end behavior;仿真结果如下:2分频:输出信号为f/2Hz,占空⽐1:23分频:输出信号为f/3Hz,占空⽐1:3按键处理模块去抖动根据以往的经验,按键按下弹起电平会有⼀⼩段⽑刺,可能会引起电路误操作,所以要对按键进⾏消抖处理使变为⼲净的矩形信号。
多功能数字钟

电子技术课程设计多功能数字钟学院:专业、班级:姓名:学号:指导老师:2008年12月目录1、设计任务与要求 (2)2、总体框图 (2)3、选择器件 (2)4、功能模块 (3)(1)时钟记数模块 (3)(2)整点报时驱动信号产生模块 (6)(3)八段共阴扫描数码管的片选驱动信号输出模块 (7)(4)驱动八段字形译码输出模块 (9)5、总体设计电路图 (10)(1)仿真图 (10)(2)电路图 (11)(3)管脚图 (11)6、设计心得体会 (12)一、设计任务与要求1、具有时、分、秒记数显示功能,以24小时循环计时。
2、要求数字钟具有清零、调节小时、分钟功能。
3、具有整点报时,整点报时的同时LED灯花样显示。
二、总体框图多功能数字钟总体框图如下图所示。
它由时钟记数模块(包括hour、minute、second 三个小模块)、驱动8位八段共阴扫描数码管的片选驱动信号输出模块(seltime)、驱动八段字形译码输出模块(deled)、整点报时驱动信号产生模块(alart)。
系统总体框图三、选择器件网络线若干/人、共阴八段数码管6个、蜂鸣器、hour(24进制记数器)、minute(60进制记数器)、second(60进制记数器)、alert(整点报时驱动信号产生模块)、seltime(驱动8位八段共阴扫描数码管的片选驱动信号输出模块)、deled(驱动八段字形译码输出模块)。
四、功能模块多功能数字钟中的时钟记数模块、驱动8位八段共阴扫描数码管的片选驱动信号输出模块、驱动八段字形译码输出模块、整点报时驱动信号产生模块。
(1) 时钟记数模块:<1.1>该模块的功能是:在时钟信号(CLK)的作用下可以生成波形;在清零信号(RESET)作用下,即可清零。
VHDL程序如下:LIBRARY ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity hour isport(clk,reset:in std_logic;daout:out std_logic_vector(5 downto 0));end entity hour;architecture fun of hour issignal count:std_logic_vector(5 downto 0);begindaout<=count;process(clk,reset)beginif(reset='0') thencount<="000000";elsif(clk' event and clk='1') thenif(count(3 downto 0)="1001") thenif(count<16#24#) thencount<=count+7;else count<="000000";end if;elsif(count<16#23#) thencount<=count+1;else count<="000000";end if;end if;end process;end fun;<1.2>VHDL程序如下:LIBRARY ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity minute isport(clk,clk1,reset,sethour:in std_logic;enhour:out std_logicdaout:out std_logic_vector(6 downto 0));end entity minute;architecture fun of minute issignal count:std_logic_vector(6 downto 0); begindaout<=count;process(clk,reset,sethour)beginif(reset='0') thencount<="0000000";elsif(sethour='0') thenenhour<=clk1;elsif(clk' event and clk='1') thenif(count(3 downto 0)="1001") thenif(count<16#60#) thenif(count="1011001") thenenhour<='1';count<="0000000"; else count<=count+7;end if;elsecount<="0000000";end if;elsif(count<16#60#) thencount<=count+1;enhour<='0';elsecount<="0000000";end if;end if;<1.3>VHDL程序如下:LIBRARY ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY second ISPORT(clk,reset,setmin:IN STD_LOGIC;enmin:OUT STD_LOGIC;daout:out std_logic_vector(6 downto 0)); END entity second;ARCHITECTURE fun OF second ISSIGNAL count:STD_LOGIC_VECTOR(6 downto 0); BEGINdaout<=count;process(clk,reset,setmin)beginif(reset='0') thencount<="0000000";elsif(setmin='0')thenenmin <=clk;elsif(clk'event and clk='1')thenif(count(3 downto 0)="1001")thenif(count<16#60#)thenif(count="1011001")thenenmin<='1';count<="0000000";ELSE count<=count+7;end if;elsecount<="0000000";end if;elsif(count<16#60#)thencount<=count+1;enmin<='0';elsecount<="0000000";end if;end if;end process;END fun;(2)整点报时驱动信号产生模块该模块功能:在时钟信号(CLK)的作用下可以生成波形,SPEAK输出接扬声器,以产生整点报时发声。
电子技术课程设计----多功能电子时钟的设计

电子技术(下)课程设计题目名称:多功能电子时钟的设计院系名称:电子信息学院班级:学号:学生姓名:指导教师:年月电子技术(下)课程设计任务书姓名学号学院电子信息学院班级题目多功能电子时钟的设计设计任务1、基本部分1)、由振荡电路产生秒脉冲信号;2)、经分频电路、计数电路、译码电路,由数码管显示;3)、秒和分电路为60进制,小时电路为24进制;2、发挥部分1)、可以增加校正电路,对秒、分、小时进行校对;2)、可以增加报时电路,整点前进行“四低一高”报时;时间进度总体时间为1周;星期一上午:讲解;星期一下午:理解电路原理;星期二上午:发放元器件和工具,设计电路和连线;星期四上午:验收电路;星期日之前:上交课程设计报告;主要参考文献[1]康华光。
电子技术基础数字部分(第五版)。
北京:高等教育出版社,2006;[2]康华光。
电子技术基础模拟部分(第五版)。
北京:高等教育出版社,2006;[3]电子技术(下)实验指导书,中原工学院电子技术课程组自编,2011;摘要设计一台可以准确计时,以十进制数显示“时”、“分”、“秒”的多功能电子时钟,小时为24进制,分和秒均为60进制。
多功能电子时钟实际是一个对标准频率(1HZ)进行计数的计数电路,是采用数字电路实现“时”、“分”、“秒”数字显示的计时装置。
通过本课程设计,巩固加强“数字电子技术”课程的理论知识;掌握电子电路的一般设计方法,并了解电子产品研制开发的过程;基本掌握电子电路安装和调试的方法;培养独立分析问题和解决问题的能力以及创新能力和创新思维。
关键词:电子时钟;计数器;AbstractDesign a can accurate timing, in decimal number shows "hour"," minute" and "seconds" multifunctional electronic clock, for 24 hours into the system, minutes and seconds are 60 into the system. Multifunctional electronic clock is actually a for standard frequency (1 HZ) to count count circuit, is the digital circuit implementation digital display timer device. Through this course design, make we strengthen "hour","minute" and "seconds" digital electronic technology" the curriculum theory knowledge; Grasp the electronic circuit of the general design method, and understand the electronic product development development process; Basic grasp the electronic circuit installation and debugging methods; To foster independent analysis and problem-solving ability and creative ability and creative thinking.Key words:Electronic clock; counter;目录中文摘要Abstract第一章绪论 (1)第二章总体方案设计 (1)2.1 设计内容 (1)2.1.1基本部分 (1)2.1.2发挥部分 (1)2.2 原理说明 (1)第三章单元模块设计 (3)3.1 振荡器 (3)3.2 分频器 (6)3.3 计数器 (7)3.4 译码显示电路 (10)3.5校时电路 (11)3.6 整点报时电路 (12)第四章系统的调试与功能 (13)4.1 系统的调试 (13)4.2 系统的功能 (14)第五章心得体会 (15)参考文献 (15)附录一:工具清单 (15)附录二:元器件清单 (16)附录三:主要元器件的引脚图和功能表 (17)第一章绪论随科技的发展,电子产品越来越多的走进人们的生活,工艺也是越来越精湛。
FPGA时钟设计

FPGA时钟设计在FPGA设计中,时钟设计需要考虑以下几个方面:1.时钟源:时钟源可以是外部信号源,也可以是FPGA内部的时钟发生器。
外部时钟源一般来自外部设备或者振荡器。
FPGA内部的时钟发生器可以根据需要生成所需的时钟频率。
2.时钟分频:时钟分频是指将输入的时钟频率分频为所需的输出频率。
在一些应用中,需要将时钟频率降低到一个更低的频率,以降低功耗或满足特定的应用需求。
3.时钟分配:在FPGA设计中,可能会有多个模块需要使用时钟信号。
时钟分配是指将时钟信号分配给各个模块,以确保它们能够按照同步的方式工作。
4.时钟域划分:在FPGA设计中,可能会存在多个时钟域,即不同的时钟频率和时钟相位。
时钟域划分是指将设计中的电路划分为不同的时钟域,并确保时钟跨域的数据传输正确。
5.时钟驱动和延迟:时钟驱动和延迟是指时钟信号的传输延时。
由于FPGA中的逻辑电路通常具有不同的传输延时,所以时钟信号需要正确地驱动各个子模块,以确保数据的正常传输。
在进行FPGA时钟设计时,需要考虑以下几个关键问题:1.时钟频率选择:时钟频率选择需要综合考虑系统的需求和FPGA的性能。
较高的时钟频率可以提高系统的工作速度,但也会增加功耗和电磁干扰。
较低的时钟频率可以降低功耗和电磁干扰,但会降低系统的工作速度。
2.时钟相位对齐:时钟相位对齐是指在不同时钟域之间进行数据传输时,需要确保时钟相位的对齐。
时钟相位对齐可以通过插入寄存器或者使用FPGA的时钟管理资源来实现。
3.时钟缓冲和驱动:时钟缓冲和驱动是指对时钟信号进行放大和驱动,以确保时钟信号能够正常传输和驱动其他模块。
时钟缓冲和驱动可以使用FPGA内部的时钟管理资源,如PLL和BUFIO等。
4.时钟分频策略:时钟分频策略是指根据需要将时钟频率分频为所需的频率。
时钟分频可以使用FPGA内部的分频器来实现,也可以使用逻辑电路来实现。
在FPGA时钟设计过程中,需要进行时钟约束设置,即设置时钟频率、时钟相位和时钟域等约束条件。
简单的数字时钟(verilog设计)

设计目标与要求
设计一个简单的数字 时钟,能够显示时、 分、秒。
时钟应具有可靠性、 稳定性和可扩展性。
要求使用Verilog语 言实现,并能够在 FPGA或ASIC上实现。
设计思路及流程
• 设计思路:采用模块化设计方法,将数字时钟划分为不同的模 块,如计数器模块、显示模块等。每个模块负责实现特定的功 能,并通过接口与其他模块进行通信。
设计思路及流程
设计流程 1. 确定设计需求和目标。 2. 制定设计方案和计划。
设计思路及流程
3. 编写Verilog代码,实现各个模块的功能。 5. 根据测试结果进行调试和优化。
未来改进方向探讨
提高计时精度
通过改进算法或采用更高 性能的硬件平台,提高数
字时钟的计时精度。
降低资源占用
优化代码结构,减少不 必要的资源占用,提高 时钟系统的运行效率。
增加实用功能
拓展应用领域
考虑增加闹钟、定时器 等实用功能,使数字时 钟更加符合用户需求。
探索将数字时钟应用于 更多领域,如智能家居、
数据类型与运算符
Verilog中的数据类型包括
整型、实型、时间型、数组、结构体等。
Verilog中的运算符包括
算术运算符、关系运算符、逻辑运算符、位运算符等。
顺序语句与并行语句
Verilog中的顺序语句包括
赋值语句、条件语句、循环语句等,用于描述电路的时序行为。
Verilog中的并行语句包括
模块实例化、连续赋值语句、门级电路描述等,用于描述电路的并行行为。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
硬件配置的PLL电路
PLL的硬件配置是指通过连接设置C54xDSP三个引脚 CLKMD1、CLKMD2、CLKMD3的电平状态来选择配置 PLL的倍频大小,选定时钟方式,如表2-1所示。
表2-1 时钟方式的配置
引脚状态 CLKMD1 0 1 1 0 0 1 1 0 CLKMD2 0 1 0 1 0 1 0 1 CLKMD3 0 0 0 0 1 1 1 1 选择方案1 外部时钟源,PLL×3 PLL 3 外部时钟源,PLL×2 内部时钟器,PLL×3
当芯片复位后,时钟方式寄存器CLKMD的值是由3个外部引脚(CLKMD1、 CLKMD2、CLKMD3)的状态设定的,从而确定了芯片的工作时钟。
当芯片复位后,时钟方式寄存器CLKMD的值是由3个外部引脚(CLKMD1、 CLKMD2、CLKMD3)的状态设定的,从而确定了芯片的工作时钟。表2-4 为TMS320VC5402复位时设置的时钟方式。
(3)用双踪示波器观察以上TMS320VC5402的3个时 钟引脚设置两种不同电平时的引脚CLKOUT波形; (4)对时钟程序进行编译并链接,单步运行至 “asm(" STM #0F800h,CLKMD ");”用双踪示波器观察 TMS320VC5402的引脚CLKOUT波形; TMS320VC5402 CLKOUT (5)单步运行至“asm("STM #9007h,CLKMD ");”用 双踪示波器观察TMS320VC5402的引脚CLKOUT波形。
时钟信号产生模块设计
李志丹
主要内容
时钟信号模块简介 时钟信号的产生 实例验证
1 时钟信号模块简介
时钟电路为系统提供一个工作节拍。C5402的外部参考时钟信号 可由有源晶振或无源晶振两种方式提供。 当系统中要求多个不同频率的时钟信号时,首选有源晶振;当系 统中使用单一时钟信号时,可选择无源晶振。 若采用有源晶振,只需将晶振的输出连接至X2/CLKIN引脚,X1引 脚不接任何器件和电压; 若采用无源晶振,则要将晶振的引脚与C5402的X1和X2/CLKIN引 脚连接。 C5402内部的锁相环(PLL)电路,可使其工作时钟频率为外部参考 时钟的(0.25~15)倍。PLL时钟模式有硬件置和软件配置两种方式。 硬件配置是指系统复位时,通过自动检测5402的CLKMD1、 CLKMD2、CLKMD3个引脚的状态,来决定下作时钟与外部参考时 钟倍数关系的方式。软件配置是指系统复位后,通过软件改变寄 存器CLKMD的内容达到调整工作时钟频率的方式。由于5402的内 部指令周期较高,因此常常通过使用片内的PLL降低片外时钟频 率,来提高系统的稳定性。
时钟方式 选择方案2 外部时钟源,PLL×5 PLL 5 外部时钟源,PLL×4 内部时钟器,PLL×5 外部时钟源,PLL×4.5 外部时钟源,频率除以2 内部时钟器,频率除以2 外部时钟源,PLL×1 停止方式
外部时钟源,PLL×1.5 外部时钟源,频率除以2 内部时钟器,频率除以2 外部时钟源,PLL×1 停止方式
下面为是时钟测试主要程序: asm(" STM #0000h,CLKMD "); //DIV分频方式 while(*CLKMD & 0x01 );//若为PLL倍频方式,则执行空操作 asm(" NOP"); asm(" NOP"); asm(" NOP"); asm(“ STM #0F800h,CLKMD ”); //设定时钟分频因子为0.25,CPU工作频率 为时钟信号CIKIN引脚的0.25倍 asm(“ STM #1007h,CLKMD ”) //设定时钟倍频因子为2,CPU工作频率为时钟 信号CIKIN引脚的2倍 asm(" NOP"); asm(" NOP"); asm(" NOP")
图2-1 时钟电路设计
3 实例验证
实例验证步骤
(1)通过DSP仿真器连接TMS320VC54x核心板和PC机; (2)硬件配置PLL,即对TMS320VC54x核心板上的SW2拨码开关 进行设置,我们可将TMS320VC5402的引脚CLKMDl、CLKMD2、 CIKMD3引脚分别配置为高电平、高电平、低电平以及3个时钟引 脚全设置为高电平时对硬件配置的锁相环路PLL进行验证,根据 原理图可知高电、低电平分别对应SW2拨码开关的“OFF”、“ON” 状态,如表3-1所示。
表2-4 TMS320VC5402复位时设置的时钟方式
引脚状态 CLKMD1 0 0 0 1 1 1 1 0 CLKMD 2 0 0 1 0 1 1 0 1 CLKMD 3 0 1 0 0 0 1 1 1 CLKMD寄存器 复位值 E007H 9007H 4007H 1007H F007H 0000H F000H ——
2 时钟信号的产生
时钟发生器为DSP提供时钟信号,由一个内部振荡器和一个锁相环 电路组成,可通过晶振或外部的时钟驱动。时钟发生器工作时需 要的参考时钟输入可有两种选择方式: 由内部晶体振荡器产生。在DSP引脚X1和X2/CLKIN之间接一枚晶 体,使能内部晶体振荡电路。 由外部参考时钟源产生。外部时钟直接从X2/CLKIN引脚输入,X1 引脚悬空。 TMS320VC5402DSP内部高稳定性能的锁相环(PLL)电路能够锁 定时钟振荡频率,并有信号提纯和频率放大作用,故可以选择一 个频率比CPUCLK低的高稳定时钟源,降低对频率的要求。 PLL的倍频大小与DSP管脚的硬件连接以及时钟模式寄存器的软 件配置有关,PLL有两种不同类型,一种为硬件配置的PLL电路, 另一种为软件配置的PLL电路。
时钟方式寄存器CLKMD各位段的功能见表2-2
表2-2 时钟方式寄存器CLKMD各位域功能
位 15 ~12 11 10~3 2 1 名称 PLLMUL PLLDIV PLLCOUNT PLLON/OFF PLLNDIV 说明 PLL倍频因子,与PLL DIV及PLL NDIV共同决定实际频率。 PLL分频因子,与PLL MUL及PLL NDIV共同决定实际频率。 PLL计数器,每输入16个CLKIN后减1,用以设定PLL从启动到频率锁定之间的时 间,保证频率转换的可靠性。 PLL通/断控制位, PLL ON/OFF与PLL NDIV共同决定PLL是否工作。当PLL ON/OFF与PLL NDIV均为0时, PLL断开,其余情况PLL工作。 时钟工作方式选择位,为0,分频(DIV)方式;为1,倍频(PLL)方式。同时该 位还与PLL MUL或PLL DIV共同决定实际频率。 PLL状态位,指示当前时钟发生器的工作方式(只读)。 为0,表示在分频(DIV)方式; 为1,表示在倍频(PLL)方式。
(a) 10MHz (b) 5MHz 图3-2 CLKOUT波形
软件配置PLL,在对时钟程序进行编译并链接单步运行至“asm(" STM #0F800h,CLKMD ");”用双综示波器观察TMS320VC5402的引脚CLKOUT波 形如图3-3(a)所示,单步运行至asm(" STM #9007h,CLKMD ")观察引 脚CLKOUT波形如图3-3(b)。
软件编程PLL受时钟方式寄存器CLKMD的控制,CLKMD用来定义 PLL时钟模块的时钟配置,CLKMD属存储器映像寄存器,位于数据 存储区的第0页上,地址为0058H,其格式如下:
15 ~12 PLLMUL PLL乘数 11 PLLDIV PLL除数 10~3 PLLCOUNT PLL计数器 2 PLLON/OFF PLL通/断 1 PLLNDIV PLL时钟电路选择 位 0 PLLSTATUS PLL的状态
软件配置的PLL电路
PLL的软件配置是指通过设置’C54xDSP时钟模式寄存 器CLKMD的各状态位来选择配置PLL的倍频/分频系数, 不仅能通过其时钟定标器配置各种乘法器系数,还可以 直接开通或关断PLL。 PLL的锁定定时器可以用于延迟转换PLL的时钟方式, PLL PLL 直到锁定为止。通过软件编程,可以选用以下两种时 钟方式。
从表2-4可以看出,不同的外部引脚状态对应于不同的时钟 方式。 通常,DSP的程序需要从外部低速EPROM中调入,可以采用 较低工作频率的复位时钟方式,待程序全部调入内部快速 RAM后,再用软件重新设置CLKMD寄存器的值,使DSP芯片 工作在较高的频率上。 例如,设外部引脚状态为CLKMD1 ~CLKMD3=111,外部时 钟频率为10MHz,则时钟方式为2分频,复位后DSP芯片的工 作频率为10MHz÷2=5MHz。用软件重新设置CLKMD寄存器, 就可以改变DSP的工作频率,如设定CLKMD=9007H,则DSP 的工作频率为10×10MHz=100MHz
实例验证结果
本实验采用外部参考时钟源产生10MHz时钟信号,从X2/CLKIN引脚输 入10MHz无源晶体,X1引1所示,观察CLKIN时钟频率为10MHz。
图3-1 CLKIN波形
用双综示波器观察到TMS320VC5402的3个时钟引脚设置为如步骤2 所示的两种不同电平时引脚CLKOUT波形分别如图3-2(a)、3-2 (b)所示。
从表2-1可以看出,进行硬件配置时,其工作频率是固定的。 若不使用PLL,则对内部或外部时钟分频,CPU的时钟频率等于 内部振荡器频率或外部时钟频率的一半;若使用PLL,CPU的 时钟频率等于内部振荡器频率或外部时钟频率乘于N,即对内 部或外部时钟倍频,其频率为PLL×N。特别说明,在DSP正 PLL N DSP 常工作时,不能重新改变和配置DSP的时钟方式。但DSP进入 IDLE3省电模式后,其CLKOUT输出电平时,可以重新改变和 配置DSP的时钟方式。
(a)2.5MHz
图3-3 CLKOUT波形
0
PLLSTATUS
表2-3 显示了比例系数与CLKMD的关系
表2-3 比例系数与CLKMD的关系
PLLNDIV 0 0 1 1 1 1 PLLDIV x x 0 0 1 1 PLLMUL 0 ~14 15 0~14 15 0或偶数 奇数 比例系数 0.5 0.25 PLLMUL+1 1 (PLLMUL+1)÷2 PLLMUL÷4