<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 使用可編程振蕩器生成和控制系統(tǒng)時(shí)鐘

          使用可編程振蕩器生成和控制系統(tǒng)時(shí)鐘

          作者: 時(shí)間:2023-05-10 來源: 收藏

          在處理器控制的系統(tǒng)中,功耗與處理器的速度成正比。如果處理器上的計(jì)算負(fù)載很小,則大部分功率都會(huì)被浪費(fèi)。將處理器速度調(diào)制到盡可能慢的頻率,同時(shí)保持執(zhí)行手頭任務(wù)的最低計(jì)算能力可以減少這種浪費(fèi)。本應(yīng)用筆記描述了使用DS1077通過PC主機(jī)控制來控制8051型微處理器的速度。

          本文引用地址:http://www.ex-cimer.com/article/202305/446391.htm


          在處理器控制的系統(tǒng)中,功耗與處理器的速度成正比。如果處理器上的計(jì)算負(fù)載很小,則大部分功率都會(huì)被浪費(fèi)。將處理器速度調(diào)制到盡可能慢的頻率,同時(shí)保持執(zhí)行手頭任務(wù)的最低計(jì)算能力可以減少這種浪費(fèi)。本應(yīng)用筆記描述了使用DS1077通過PC主機(jī)控制來控制8051型微處理器的時(shí)鐘速度。

          介紹

          DS1077為固態(tài)CMOS振蕩器,能夠產(chǎn)生8kHz至133kHz的頻率 33.2MHz. 它可以用作固定頻率的獨(dú)立振蕩器,或用作處理器控制的頻率 發(fā)電機(jī)。兩個(gè)同步振蕩器輸出的頻率可由用戶調(diào)節(jié),子倍數(shù)為 主頻率通過使用兩個(gè)片上可編程預(yù)分頻器和分頻器。頻率和 模式設(shè)置可“即時(shí)”配置,并使用1077線串行接口存儲(chǔ)在EEPROM中,該接口可以 在一條2線總線上最多可容納0個(gè)DS1。兩個(gè)數(shù)字控制輸入,CTRL1077 和 CTRL3 也是 能夠控制頻率或模式。此外,DS1077L是4V版本的 DS87,能夠產(chǎn)生66.66kHz至3.5MHz的頻率。在其余部分 除非另有說明,否則DS1077的1077V和<>V版本均參考 作為DS<>。

          本應(yīng)用筆記將舉例說明DS1077的使用實(shí)例。展示DS1077的使用方法代替晶體來為 8051 微控制器和微芯片 PIC 提供時(shí)鐘?微控制器。這 應(yīng)用筆記還將說明如何在單條1077線總線上使用多個(gè)DS2。最后,示例 8051 包括固件,以展示如何實(shí)現(xiàn)2線主站以及下層通信 與總線上每個(gè)DS1077通信的例程。

          系統(tǒng)概述

          圖1中的參考原理圖顯示了兩個(gè)相互獨(dú)立的系統(tǒng)。兩個(gè)系統(tǒng) 工作頻率由DS1077產(chǎn)生。在此示例中,盡管每個(gè)系統(tǒng)都獨(dú)立于 它們都由一個(gè)公共的2線主控器控制。該 2 線主站可以是更大主機(jī)的一部分 需要控制其子系統(tǒng)的系統(tǒng)。主站可以決定降低工作頻率 目前不需要的子系統(tǒng),以節(jié)省電力,在某些情況下減少熱量,或者可能甚至減少電磁干擾。有時(shí)使用DS1077可以避免高頻運(yùn)行 整個(gè)大型系統(tǒng)的時(shí)鐘,如背板上的時(shí)鐘。分發(fā)相對(duì)容易和安全得多低頻 2 線總線。同樣,也可以設(shè)想使用DS1077來減少系統(tǒng)。工作頻率而不是微控制器(許多微型處理器會(huì)降低其速度甚至進(jìn)入低電平 當(dāng)前睡眠模式),因?yàn)镈S1077可以降低整個(gè)系統(tǒng)的頻率,而不僅僅是微型獨(dú)自。綜上所述,使用DS1077的應(yīng)用可能很大很復(fù)雜,但為此,應(yīng)用可能很復(fù)雜。 應(yīng)用筆記中,示例原理圖已大大簡(jiǎn)化,旨在說明幾點(diǎn)。它顯示了公共總線上的多個(gè)DS1077,也顯示了DS1077可以直接驅(qū)動(dòng)一些流行的微控制器。

          使用DS1077作為系統(tǒng)時(shí)鐘

          在參考原理圖中,U1(DS1077Z-125)用于生成U3(8051 微控制器。用于開發(fā)附錄 A 中發(fā)現(xiàn)的固件的特定 8051 是 DS87C520.DS87C520的工作頻率高達(dá)33MHz。由于U1是125MHz版本 在DS1077中,OUT0只能產(chǎn)生125MHz、62.5MHz、31.025MHz和15.625MHz。雖然這會(huì) 如果我們的應(yīng)用只需要全速和半速(使用66MHz版本的DS1077),那就沒問題了, 但同樣,對(duì)于固件的開發(fā),希望將微控制器一直運(yùn)行到千赫范圍。OUT0 沒有分頻器,只有一個(gè)除以 1、2、4 或 8 的預(yù)分頻器。另一方面,除了預(yù)分頻器之外,OUT1 還有一個(gè)分頻器,可以將頻率進(jìn)一步除以 2 到 1025。因此,選擇了 OUT1 來為 8051 計(jì)時(shí)。然后,OUT0 仍可用于為系統(tǒng)的其他組件提供時(shí)鐘。為了簡(jiǎn)單起見,沒有使用 CTRL0 和 CTRL1,而是與 GND 相關(guān)聯(lián)。然而 請(qǐng)注意,如果使用 CTRL0 和 CTRL1 輸入禁用輸出或輸入,則必須小心 省電模式,因?yàn)槲⒖刂破鞯木w輸入浮動(dòng)會(huì)導(dǎo)致不必要的振蕩或 錯(cuò)誤時(shí)鐘。


          使用可編程振蕩器生成和控制系統(tǒng)時(shí)鐘
          圖1.參考原理圖。


          參考原理圖所示的第二個(gè)系統(tǒng)為U2,DS1077為U1的OSC4引腳提供時(shí)鐘。 PIC 微控制器。同樣,DS1077代替固定頻率晶體。此處使用的事先知情同意 示例可以工作在高達(dá) 20MHz 的頻率,因此與 8051 示例一樣,使用 OUT1 以利用 的 2-1025 分頻器,僅由 OUT1 提供。OUT0 可由 系統(tǒng)。但是,如果未使用任一輸出,因此未連接,則明智的做法是禁用 使用相應(yīng)的 CTRL 引腳未使用的輸出。這將導(dǎo)致供應(yīng)明顯減少 電流,以及降低不必要的EMI輻射的可能性。雖然,與 8051 系統(tǒng)一樣, 簡(jiǎn)單性 CTRL0 和 CTRL1 未使用并接地。

          像往常一樣,提供足夠的解耦很重要。同樣,重要的是 去耦電容C1和C2具有良好的高頻性能,并且物理位置很近盡可能使用短PCB走線,使每個(gè)DS1077都走線。

          使用DS1077優(yōu)于晶體的優(yōu)勢(shì)

          DS1077可能優(yōu)于晶體有幾個(gè)重要原因。一、DS1077 頻率可以改變。實(shí)際上,它可以即時(shí)更改,甚至可以禁用。其次,DS1077提供 雙路、同步、可單獨(dú)控制的輸出。此外,DS1077 無需使用雜亂的油箱晶體在其諧波頻率之一下工作時(shí)的電路(對(duì)于高于30MHz的晶體)。最后, DS1077比晶體更不容易受到振動(dòng)的影響。

          控制DS1077

          DS1077可用于固定頻率應(yīng)用和變頻應(yīng)用。在固定頻率下 應(yīng)用中,不需要2線主站,CTRL輸入是可選的。但對(duì)于 需要控制頻率或模式、CTRL 輸入和/或 2 線主站的應(yīng)用必須 根據(jù)所需的靈活性使用。

          CTRL0 和 CTRL1 輸入

          如果應(yīng)用需要指示DS1077進(jìn)入關(guān)斷模式以節(jié)省能源,或者如果 應(yīng)用程序想要關(guān)閉(三態(tài))振蕩器輸出,則必須使用 CTRL0 和 CTRL1。 雖然沒有特定的2線命令進(jìn)入省電模式或禁用輸出,但有 可以在固件中完成的一些技巧以達(dá)到相同的結(jié)果。例如,當(dāng) CTRL 輸入是 在已知狀態(tài)下,可以設(shè)置或清除 MUX 寄存器中的相應(yīng)位,以打開和關(guān)閉所需的 功能。

          2線接口

          當(dāng)應(yīng)用需要生成除 1、2、4 或 8 以外的頻率時(shí),則 2 線接口是必需的。與現(xiàn)有2線總線的接口很簡(jiǎn)單。只需連接SDA和SCL(和GND)。確保 總線某處包含總線上拉電阻。這些是參考原理圖中的R1和R2。 雖然本例中使用了4.7kΩ電阻,但可能需要根據(jù)總線進(jìn)行調(diào)整。電容、總線上的設(shè)備數(shù)量以及所需的通信速度。但是,4.7kΩ 會(huì) 適用于大多數(shù)應(yīng)用程序。如果沒有現(xiàn)有的總線,則可以使用微型創(chuàng)建一個(gè)總線。附錄 A 中提供了 8051 微控制器的示例固件。此外,如果 2 線接口不會(huì) 在應(yīng)用中使用,確保SDA和SCL綁定到明確定義的邏輯電平,而不是離開 浮動(dòng)。

          請(qǐng)注意,在本例中,同一總線上有多個(gè)DS1077。為了2線主站為了與每個(gè)DS1077單獨(dú)通信,每個(gè)DS8都需要有一個(gè)唯一的地址??偩€中的三位寄存器允許總線上同時(shí)最多連接1077個(gè)DS1。U000被編程為地址為“2”,而U001 被編程為地址為“2”。有關(guān)1077線通信的示例,請(qǐng)參考DS1077或 DS<>L數(shù)據(jù)資料以及附錄A中列出的固件。

          DS1077控制2線主機(jī)

          讀到這里,人們可能想知道為什么在示例應(yīng)用中使用額外的2線主站。 當(dāng)有兩個(gè)精細(xì)的微控制器能夠生成所需的2線協(xié)議時(shí) 與DS1077通信。雖然可以做到,但很危險(xiǎn),必須格外小心。第一個(gè)所有,當(dāng)微控制器的頻率發(fā)生變化時(shí),2線例程的時(shí)序也會(huì)發(fā)生變化。此外,就像 對(duì)于 8051 示例和 PIC 示例,某些微器件可能具有最低工作頻率規(guī)格 添加到最大頻率。最后,禁用輸出是不可能的,因?yàn)槲?huì)不再計(jì)時(shí),因此無法再發(fā)出命令以重新啟用振蕩器。但如果 必須這樣做,檢查正在使用的微控制器的數(shù)據(jù)表非常重要。

          固件

          基于 8051 的系統(tǒng)的固件包含在附錄 A 中。它旨在展示一個(gè)較低的示例需要與DS1077通信的層例程。但是,請(qǐng)注意,固件實(shí)現(xiàn)了開環(huán) 系統(tǒng)。閉環(huán)非常特定于應(yīng)用程序。但為了說明示例 與DS1077通信,基于菜單的開環(huán)示例是有益的。一個(gè)PC終端程序是 用于發(fā)出DS1077s命令。然后可以在固件中查找命令以準(zhǔn)確查看 正在執(zhí)行什么?;静藛蚊钊缦拢?br/>
          讀取選定的DS1077并顯示寄存器
          編輯多路復(fù)用字
          編輯 DIV 字詞
          編輯總線字
          寫入DS1077,地址為“000”
          寫入DS1077,地址為“000”
          寫入DS1077,地址為“001”
          寫入DS1077,地址為“001”
          更改固件 2 線通信地址

          由于DS1077設(shè)置存儲(chǔ)在EEPROM中,因此DS1077上電至存儲(chǔ)在EEPROM中的值。 可以使用相應(yīng)的菜單命令寫入 MUX、DIV 和 BUS 寄存器的值。菜單命令 2 至 8 的固件顯示了如何執(zhí)行 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

          結(jié)論

          DS1077通??梢蕴娲w,當(dāng)需要更大的靈活性和控制時(shí)。 此外,DS1077還可用于產(chǎn)生從kHz范圍到kHz的寬范圍頻率。 133兆赫。根據(jù)所需的控制量,它可以獨(dú)立運(yùn)行,也可以由處理器控制使用2線接口。雖然示例電路很簡(jiǎn)單,但它展示了 DS1077.考慮在下一個(gè)應(yīng)用中使用DS1077。



          關(guān)鍵詞: 可編程振蕩器 時(shí)鐘

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();