0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用可编程振荡器生成和控制系统时钟

江师大电信小希 2023-06-01 19:05 次阅读

处理器控制的系统中,功耗与处理器的时钟速度成正比。如果处理器上的计算负载很小,则大部分功率都会被浪费。将处理器速度调制到尽可能慢的频率,同时保持执行手头任务的最低计算能力可以减少这种浪费。本应用笔记描述了使用DS1077通过PC主机控制来控制8051型微处理器的时钟速度。


介绍

DS1077为固态CMOS振荡器,能够产生8kHz至133kHz的频率 33.2MHz. 它可以用作固定频率的独立振荡器,或用作处理器控制的频率 发电机。两个同步振荡器输出的频率可由用户调节,子倍数为 主频率通过使用两个片上可编程预分频器和分频器。频率和 模式设置可“即时”配置,并使用1077线串行接口存储在EEPROM中,该接口可以 在一条2线总线上最多可容纳0个DS1。两个数字控制输入,CTRL1077 和 CTRL3 也是 能够控制频率或模式。此外,DS1077L是4V版本的 DS87,能够产生66.66kHz至3.5MHz的频率。在其余部分 除非另有说明,否则DS1077的1077V和<>V版本均参考 作为DS<>。

本应用笔记将举例说明DS1077的使用实例。展示DS1077的使用方法代替晶体来为 8051微控制器和微芯片PIC 提供时钟™微控制器。这 应用笔记还将说明如何在单条1077线总线上使用多个DS2。最后,示例 8051 包括固件,以展示如何实现2线主站以及下层通信与总线上每个DS1077通信的例程。

系统概述

图1中的参考原理图显示了两个相互独立的系统。两个系统 工作频率由DS1077产生。在此示例中,尽管每个系统都独立于 它们都由一个公共的2线主控器控制。该 2 线主站可以是更大主机的一部分 需要控制其子系统的系统。主站可以决定降低工作频率 目前不需要的子系统,以节省电力,在某些情况下减少热量,或者可能甚至减少电磁干扰。有时使用DS1077可以避免高频运行 整个大型系统的时钟,如背板上的时钟。分发相对容易和安全得多低频 2 线总线。同样,也可以设想使用DS1077来减少系统。工作频率而不是微控制器(许多微型处理器会降低其速度甚至进入低电平 当前睡眠模式),因为DS1077可以降低整个系统的频率,而不仅仅是微型独自。综上所述,使用DS1077的应用可能很大很复杂,但为此,应用可能很复杂。 应用笔记中,示例原理图已大大简化,旨在说明几点。它显示了公共总线上的多个DS1077,也显示了DS1077可以直接驱动一些流行的微控制器。

使用DS1077作为系统时钟

在参考原理图中,U1(DS1077Z-125)用于生成U3(8051 微控制器。用于开发附录 A 中发现的固件的特定 8051 是 DS87C520.DS87C520的工作频率高达33MHz。由于U1是125MHz版本 在DS1077中,OUT0只能产生125MHz、62.5MHz、31.025MHz和15.625MHz。虽然这会 如果我们的应用只需要全速和半速(使用66MHz版本的DS1077),那就没问题了, 但同样,对于固件的开发,希望将微控制器一直运行到千赫范围。OUT0 没有分频器,只有一个除以 1、2、4 或 8 的预分频器。另一方面,除了预分频器之外,OUT1 还有一个分频器,可以将频率进一步除以 2 到 1025。因此,选择了 OUT1 来为 8051 计时。然后,OUT0 仍可用于为系统的其他组件提供时钟。为了简单起见,没有使用 CTRL0 和 CTRL1,而是与 GND 相关联。然而 请注意,如果使用 CTRL0 和 CTRL1 输入禁用输出或输入,则必须小心 省电模式,因为微控制器的晶体输入浮动会导致不必要的振荡或 错误时钟。

wKgZomR4e2mAdHvZAADfkWcm3Tw711.gif


图1.参考原理图。

参考原理图所示的第二个系统为U2,DS1077为U1的OSC4引脚提供时钟。 PIC 微控制器。同样,DS1077代替固定频率晶体。此处使用的事先知情同意 示例可以工作在高达 20MHz 的频率,因此与 8051 示例一样,使用 OUT1 以利用 的 2-1025 分频器,仅由 OUT1 提供。OUT0 可由 系统。但是,如果未使用任一输出,因此未连接,则明智的做法是禁用 使用相应的 CTRL 引脚未使用的输出。这将导致供应明显减少电流,以及降低不必要的EMI辐射的可能性。虽然,与 8051 系统一样, 简单性 CTRL0 和 CTRL1 未使用并接地。

像往常一样,提供足够的解耦很重要。同样,重要的是 去耦电容C1和C2具有良好的高频性能,并且物理位置很近尽可能使用短PCB走线,使每个DS1077都走线。

使用DS1077优于晶体的优势

DS1077可能优于晶体有几个重要原因。一、DS1077 频率可以改变。实际上,它可以即时更改,甚至可以禁用。其次,DS1077提供 双路、同步、可单独控制的输出。此外,DS1077 无需使用杂乱的油箱晶体在其谐波频率之一下工作时的电路(对于高于30MHz的晶体)。最后, DS1077比晶体更不容易受到振动的影响。

控制DS1077

DS1077可用于固定频率应用和变频应用。在固定频率下 应用中,不需要2线主站,CTRL输入是可选的。但对于 需要控制频率或模式、CTRL 输入和/或 2 线主站的应用必须 根据所需的灵活性使用。

CTRL0 和 CTRL1 输入

如果应用需要指示DS1077进入关断模式以节省能源,或者如果 应用程序想要关闭(三态)振荡器输出,则必须使用 CTRL0 和 CTRL1。 虽然没有特定的2线命令进入省电模式或禁用输出,但有 可以在固件中完成的一些技巧以达到相同的结果。例如,当 CTRL 输入是 在已知状态下,可以设置或清除 MUX寄存器中的相应位,以打开和关闭所需的 功能。

2线接口

当应用需要生成除 1、2、4 或 8 以外的频率时,则 2 线接口是必需的。与现有2线总线的接口很简单。只需连接SDA和SCL(和GND)。确保 总线某处包含总线上拉电阻。这些是参考原理图中的R1和R2。 虽然本例中(找元器件现货上唯样商城)使用了4.7kΩ电阻,但可能需要根据总线进行调整。电容、总线上的设备数量以及所需的通信速度。但是,4.7kΩ 会 适用于大多数应用程序。如果没有现有的总线,则可以使用微型创建一个总线。附录 A 中提供了 8051 微控制器的示例固件。此外,如果 2 线接口不会 在应用中使用,确保SDA和SCL绑定到明确定义的逻辑电平,而不是离开 浮动。

请注意,在本例中,同一总线上有多个DS1077。为了2线主站为了与每个DS1077单独通信,每个DS8都需要有一个唯一的地址。总线中的三位寄存器允许总线上同时最多连接1077个DS1。U000被编程为地址为“2”,而U001 被编程为地址为“2”。有关1077线通信的示例,请参考DS1077或 DS<>L数据资料以及附录A中列出的固件。

DS1077控制2线主机

读到这里,人们可能想知道为什么在示例应用中使用额外的2线主站。 当有两个精细的微控制器能够生成所需的2线协议时 与DS1077通信。虽然可以做到,但很危险,必须格外小心。第一个所有,当微控制器的频率发生变化时,2线例程的时序也会发生变化。此外,就像 对于 8051 示例和 PIC 示例,某些微器件可能具有最低工作频率规格 添加到最大频率。最后,禁用输出是不可能的,因为微会不再计时,因此无法再发出命令以重新启用振荡器。但如果 必须这样做,检查正在使用的微控制器的数据表非常重要。

固件

基于 8051 的系统的固件包含在附录 A 中。它旨在展示一个较低的示例需要与DS1077通信的层例程。但是,请注意,固件实现了开环 系统。闭环非常特定于应用程序。但为了说明示例 与DS1077通信,基于菜单的开环示例是有益的。一个PC终端程序是 用于发出DS1077s命令。然后可以在固件中查找命令以准确查看 正在执行什么。基本菜单命令如下:

读取选定的DS1077并显示寄存器
编辑多路复用字
编辑 DIV 字词
编辑总线字
写入DS1077,地址为“000”
写入DS1077,地址为“000”
写入DS1077,地址为“001”
写入DS1077,地址为“001”
更改固件 2 线通信地址

由于DS1077设置存储在EEPROM中,因此DS1077上电至存储在EEPROM中的值。 可以使用相应的菜单命令写入 MUX、DIV 和 BUS 寄存器的值。菜单命令 2 至 8 的固件显示了如何执行 2 线写入的示例,而菜单 命令 1 显示 2 线读取。最后,菜单命令 9 显示了如何更改 2 线地址,该地址将 被解决。

以下是将1234h写入DS1077地址“000”的DIV寄存器的示例:

LCALL START2WIRE ; 2-WIRE START

MOV A,#0B0H ; DEVICE IDENTIFIER, SLAVE ADDRESS, WRITE
LCALL WRITEBITS ; SEND COMMAND BYTE
LCALL ACKSLAVEWRITE ; CHECK FOR SLAVE ACKNOWLEDGE
MOV A,#01H ; ACCESS DIV COMMAND
LCALL WRITEBITS ; SEND COMMAND BYTE
LCALL ACKSLAVEWRITE ; CHECK FOR SLAVE ACKNOWLEDGE
MOV A,#12H
LCALL WRITEBITS ; SEND MSB
LCALL ACKSLAVEWRITE ; CHECK FOR SLAVE ACKNOWLEDGE
MOV A,#34H
LCALL WRITEBITS ; SEND LSB
LCALL ACKSLAVEWRITE ; CHECK FOR SLAVE ACKNOWLEDGE
LCALL STOP2WIRE ; 2-WIRE STOP
To write the same to the DS1077 at address ’001’ , simply replace:
MOV A,#0B0H ; DEVICE IDENTIFIER, SLAVE ADDRESS, WRITE
with the following:
MOV A,#0B2H ; DEVICE IDENTIFIER, SLAVE ADDRESS, WRITE

下面是在地址“1077”DIV寄存器处读取DS000的示例。

LCALL START2WIRE ; 2-WIRE START

MOV A,#0B0H ; DEVICE IDENTIFIER, SLAVE ADDRESS, READ
LCALL WRITEBITS ; SEND COMMAND BYTE
LCALL ACKSLAVEWRITE ; CHECK FOR SLAVE ACKNOWLEDGE
MOV A,#01H ; READ DIVREG COMMAND
LCALL WRITEBITS ; SEND COMMAND BYTE
LCALL ACKSLAVEWRITE ; CHECK FOR SLAVE ACKNOWLEDGE
LCALL START2WIRE ; REPEATED 2-WIRE START
MOV A,#0B1H ; DEVICE IDENTIFIER, SLAVE ADDRESS, READ
LCALL WRITEBITS ; SEND COMMAND BYTE
LCALL ACKSLAVEWRITE ; CHECK FOR SLAVE ACKNOWLEDGE
LCALL READBITS ; READ DATA FROM DS1077 A
MOV DIVDATAMSB,A ; SAVE MUX MSB TO A VARIABLE
LCALL ACKSLAVEREAD ; ACK SLAVE SO WE CAN READNEXTBYTE
LCALL READBITS ; READ DATA FROM DS1077 A
MOV DIVDATALSB,A ; SAVE MUX LSB TO A VARIABLE
;LCALL ACKSLAVEREAD; NO ACK - NO MORE TO READ
LCALL STOP2WIRE ; 2-WIRE STOP

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • CMOS
    +关注

    关注

    58

    文章

    5145

    浏览量

    233274
  • 振荡器
    +关注

    关注

    28

    文章

    3508

    浏览量

    137614
  • 微处理器
    +关注

    关注

    11

    文章

    2109

    浏览量

    81378
  • 时钟
    +关注

    关注

    10

    文章

    1479

    浏览量

    130295
  • DS1077L
    +关注

    关注

    0

    文章

    2

    浏览量

    5062
收藏 人收藏

    评论

    相关推荐

    可编程时钟振荡器用作FPGA系统的时序参考有何优势?

    内在可编程的硅 MEMS 时钟振荡器架构能够帮助采用 FPGA 的系统设计人员解决许多难题。这种微型机电系统架构能够轻松整合一些其它功能,如
    发表于 08-15 11:12 2546次阅读
    <b class='flag-5'>可编程</b><b class='flag-5'>时钟</b><b class='flag-5'>振荡器</b>用作FPGA<b class='flag-5'>系统</b>的时序参考有何优势?

    爱普生可编程石英振荡器都有哪些系列?具有什么使用特点?

    的这些参数在电脑控制器上,输入你所提供的参数,然后按下确定键就可以把频率,电压等参数写入到空白的晶振片上。爱普生晶振最新可编程晶体振荡器SG-8101系列以及SG-9101系列具相较于普通有源晶振
    发表于 01-04 10:18

    【免费下载】如何选择最佳可编程振荡器解决方案?一站式资料任你学。

    可编程振荡器解决方案?你要的资料都在这里,一站式免费下载任你学!点击标题即可直达免费下载页面1、用于医疗应用的现场可编程定时解决方案2、最佳设计和布局实践3、MEMS 定时解决方案可提升触屏设备性能4
    发表于 09-26 14:55

    使用数字电位构建可编程振荡器的方法

    如何使用数字电位构建可编程振荡器
    发表于 01-06 06:13

    Sitime SiT8008和SiT8008B低功耗可编程振荡器

    `SiTime SiT8008和SiT8008B低功耗可编程振荡器具有可编程驱动强度功能,以提供简单,灵活的工具来优化特定应用的时钟上升/下降时间。
    发表于 01-20 10:02

    求大佬分享一种简单易行的可编程振荡器构建方法

    本文介绍一种简单易行的可编程振荡器构建方法,其中,振荡频率和幅度可以通过使用digiPOT来彼此独立地调节。
    发表于 06-17 06:03

    可编程控制控制系统设计

    可编程控制控制系统设计 可编程控制控制系统,包括电气控制线路(硬件部分)和程序(软件部分)两部分。电气
    发表于 03-30 17:50 0次下载

    了解今天的可编程振荡器

    了解今天的可编程振荡器
    发表于 03-28 16:19 482次阅读

    设计可编程控制系统时的故障防范

    设计可编程控制系统时的故障防范 在现代化的工业生产中,大量采用了可编程序控制系统可编程序控制器能在恶劣的工作环境下正常
    发表于 06-17 14:43 419次阅读

    设计可编程控制系统时的故障防范

    设计可编程控制系统时的故障防范 在现代化的工业生产中,大量采用了可编程序控制系统可编程序控制器能在恶劣的工作环 境下正常
    发表于 06-20 11:40 385次阅读

    可编程振荡器,什么是可编程振荡器

    可编程振荡器,什么是可编程振荡器 可编程振荡器是20世纪90年代早期为克服常规
    发表于 03-22 14:40 2447次阅读

    基于可编程控制器多谐振荡器的设计与分析

    本文以日本三菱公司型号为FX2-24MR的可编程控制器为例进行程序设计,并仿真验证,设计了一款用可编程控制器构成的多谐振荡器
    发表于 08-15 10:23 1789次阅读
    基于<b class='flag-5'>可编程控制</b>器多谐<b class='flag-5'>振荡器</b>的设计与分析

    可编程时钟振荡器的电路原理图免费下载

    本文档的主要内容详细介绍的是可编程时钟振荡器的电路原理图免费下载。
    发表于 03-21 11:32 11次下载
    <b class='flag-5'>可编程</b><b class='flag-5'>时钟</b><b class='flag-5'>振荡器</b>的电路原理图免费下载

    使用可编程振荡器生成控制系统时钟

    在处理器控制系统中,功耗与处理器的时钟速度成正比。如果处理器上的计算负载很小,则大部分功率都会被浪费。将处理器速度调制到尽可能慢的频率,同时保持执行手头任务的最低计算能力可以减少这种浪费。本应用笔记描述了使用DS1077通过P
    的头像 发表于 03-01 15:12 346次阅读
    使用<b class='flag-5'>可编程</b><b class='flag-5'>振荡器</b><b class='flag-5'>生成</b>和<b class='flag-5'>控制系统</b><b class='flag-5'>时钟</b>

    使用可编程振荡器生成控制系统时钟

    为 主频率通过使用两个片上可编程预分频器和分频器。频率和 模式设置可“即时”配置,并使用1077线串行接口存储在EEPROM中,该接口可以 在一条2线总线上最多可容纳0个DS1。两个数字控制输入
    的头像 发表于 05-08 11:19 395次阅读
    使用<b class='flag-5'>可编程</b><b class='flag-5'>振荡器</b><b class='flag-5'>生成</b>和<b class='flag-5'>控制系统</b><b class='flag-5'>时钟</b>