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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于SoC方案的智能電表時鐘校準

          基于SoC方案的智能電表時鐘校準

          ——
          作者:趙東艷 王宏志 龐振江 時間:2013-06-26 來源:電子產品世界 收藏

            該諧振器具有串聯諧振頻率fq和并聯諧振頻率fp兩個諧振頻率,分別為:
          ????????   (3)?  

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

            單片機振蕩電路除了之外還包括放大器[3],如圖4所示,兩者形成閉環(huán),晶體起到選頻反饋作用,放大器輸入阻抗較大。為達到匹配效果,晶振工作在并聯諧振狀態(tài)下,并聯電容C0對頻率響應有較大影響,通過在外圍增加旁路電容CL,減小電容C0對并聯諧振頻率的影響,并聯電容后諧振頻率變?yōu)?
          ???????? ?? (4)?

            由式(4)還可以看出晶體的并聯諧振頻率隨著負載電容的變化會產生微小變化,可以通過改變負載電容的大小抵消晶體頻率隨溫度的偏移[4],這就是電容補償時鐘精度的基本原理,修調靈敏度S用來表示晶體的中心頻率與負載電容CL的關系:
          ???????? ??? (5)?

            修調靈敏度與負載電容CL有關,CL越大修調靈敏度越小,如果希望得到一個相對穩(wěn)定的頻率信號,需要一個大的CL值;如果希望得到一個頻率可變的振蕩器,需要一個相對較小的CL[5]。所以CL需要控制在一定范圍內,同時保證頻率精度和工作穩(wěn)定性。

            數字補償

            電容補償的優(yōu)勢在于精細,可以實現步距小于±1ppm的校準,實現精確微調,但為保證晶振起振和穩(wěn)定運行,旁路電容的大小有一定限制,電容補償的偏差范圍通常限定在±40ppm范圍內,為增加補償量,需要采用數字補償的方式。電表輸出的秒脈沖是通過一個計數器對32.768kHz時鐘計數,計數值滿32768時溢出,計為一個秒周期。如將計數器溢出值改為32769,則秒周期改變量為:
          ???????? ?

            因此通過改變計數器溢出值即可獲得30.5ppm整數倍的頻率補償量。

            補償數據計算

            為實現全溫度范圍內輸出精確頻率,需要通過調節(jié)負載電容和數據補償寄存器,獲得一定頻率補償量?fcal ,保證其與晶體在這一溫度下的振蕩偏移值大小相等符號相反,即?fcal=-?f 。為實現調節(jié)負載電容大小的目的,單片機中設計了11位的電容控制寄存器,用以控制11個并聯電容的通斷,其中第n顆電容的大小為:
          ???????? ?

            通過對相應寄存器的bit位置1或0,實現相應位置的電容與晶振并聯或斷開,達到改變負載電容大小的目的,電容并聯后的值:
          ???????? ??? (8)?

            其中bn為寄存器相應bit位的值,Dreg為寄存器值。

            通過單片機自帶的溫度傳感器,可以獲得當前晶振溫度,利用式1計算出晶體振蕩的偏差?f,通過修改負載電容補償頻率偏差,為此需要建立電容與頻率改變之間的關系,圖5顯示了電容與頻率改變量的關系,橫軸為并聯電容值,縱軸為頻率改變量?! ?/p>

          ?
          晶振相關文章:晶振原理


          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();