在处理器控制的系统中,功耗与处理器的时钟速度成正比。如果处理器上的计算负载很小,则大部分功率都会被浪费。将处理器速度调制到尽可能慢的频率,同时保持执行手头任务的最低计算能力可以减少这种浪费。本应用笔记描述了使用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 输入禁用输出或输入,则必须小心 省电模式,因为微控制器的晶体输入浮动会导致不必要的振荡或 错误时钟。
图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或 dsl数据资料以及附录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 read next byte
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
领跑智能家居新赛道,Aqara全屋智能撬动万亿蓝海市场
构筑量化套利开放平台 阿尔法赠予数字货币投资者交易利器
苹果正研发一系列Apple Silicon,为明年做准备
英特尔锐炫GPU发展迅猛,从电竞赛到亚运会,探索更多可能
英特尔对于自动售货机的智能方案介绍
使用可编程振荡器生成和控制系统时钟
有关雷击防护的安全解决方案
奥维视讯发布36核多DSP并行计算开发平台
中国人自己的操作系统 鸿蒙系统正式发布
计算机的CPU是如何识别代码的
新一代雅阁动力系统解析
黑莓为Spark平台区块链分类账提供医疗保健服务
河套IT TALK——TALK 8:《华盛顿邮报》:“ChatGPT会在2年内灭掉Google!”
最新消息,iPhone 12掉漆啦!
特殊电阻器有哪些_特殊电阻器符号
AMD为什么要授权X86技术给中国?
我家轴承外观缺陷检测用的是SciSmart智能视觉系统
国家统计局发布2018年8月中国制造业采购经理指数
玩转单片机,DIY可测试电容、电感和频率的仪器
比特币价格持续低迷,比特大陆砍单台积电芯片