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

          新聞中心

          STM8 時(shí)鐘

          作者: 時(shí)間:2016-11-11 來(lái)源:網(wǎng)絡(luò) 收藏
          時(shí)鐘控制器功能強(qiáng)大而且靈活易用。其目的在于使用戶在獲得最好性能的同時(shí),亦能保證消耗的功率最低。用戶可獨(dú)立地管理各個(gè)時(shí)鐘源,并將它們分配到CPU或各個(gè)外設(shè)。主時(shí)鐘和CPU時(shí)鐘均帶有預(yù)分頻器。具有安全可靠的無(wú)故障時(shí)鐘切換機(jī)制,可在程序運(yùn)行中將主時(shí)鐘從一個(gè)時(shí)鐘源切換到另一個(gè)時(shí)鐘源???strong>電磁干擾時(shí)鐘配置寄存器,STM8為了避免由電磁干擾造成的對(duì)應(yīng)用程序誤寫操作或系統(tǒng)掛起,大多數(shù)關(guān)鍵的時(shí)鐘配置寄存器都有一個(gè)互補(bǔ)寄存器與之相對(duì)應(yīng)。系統(tǒng)將會(huì)自動(dòng)檢測(cè)這些關(guān)鍵寄存器與其互補(bǔ)寄存器之間是否匹配。如果不匹配,則產(chǎn)生一個(gè)EMS復(fù)位,從而使應(yīng)用程序恢復(fù)到正常操作。詳情請(qǐng)參見(jiàn)時(shí)鐘寄存器描述。

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

          主時(shí)鐘源:


          1-24MHz高速外部晶體振蕩器(HSE)
          最大24MHz高速外部時(shí)鐘信號(hào)(HSE user-ext)
          16MHz高速內(nèi)部RC振蕩器(HSI)
          128KHz低速內(nèi)部RC(LSI)

          各個(gè)時(shí)鐘源可單獨(dú)打開(kāi)或關(guān)閉,從而優(yōu)化功耗


          (一)HSE
          高速外部時(shí)鐘信號(hào)可由下面兩個(gè)時(shí)鐘源產(chǎn)生:


          HSE外部晶體/陶瓷諧振器
          HSE用戶外部有源時(shí)鐘

          為了最大限度減小輸出失真和減小啟動(dòng)的穩(wěn)定時(shí)間,諧振器和負(fù)載電容應(yīng)盡可能得靠近振蕩器引腳。負(fù)載電容值應(yīng)根據(jù)所選的振蕩器進(jìn)行調(diào)整。

          • 外部晶體/陶瓷諧振器(HSE晶體)
            外部1至24MHz的振蕩器其優(yōu)點(diǎn)在于能夠產(chǎn)生精確的占空比為50%的主時(shí)鐘信號(hào)。
            硬件連接如圖14所示。更多詳情請(qǐng)參見(jiàn)數(shù)據(jù)手冊(cè)電特性章節(jié)。振蕩器在啟動(dòng)時(shí)的輸出時(shí)鐘信號(hào)是不穩(wěn)定的,默認(rèn)情況下,在時(shí)鐘信號(hào)被使用之前會(huì)插入2048個(gè)振蕩器周期的延遲。用戶可通過(guò)設(shè)置選項(xiàng)字節(jié)HSECNT來(lái)縮短穩(wěn)定時(shí)間,請(qǐng)參見(jiàn)數(shù)據(jù)手冊(cè)的選項(xiàng)字節(jié)章節(jié)。外部時(shí)鐘寄存器CLK_ECKR中的標(biāo)志位HSERDY用以指示高速外部振蕩器是否穩(wěn)定。啟動(dòng)時(shí),HSE時(shí)鐘信號(hào)將不會(huì)生效直至此標(biāo)志位被硬件置位。
            HSE晶體可通過(guò)設(shè)置外部時(shí)鐘寄存器CLK_ECKR中的HSEEN位來(lái)打開(kāi)或關(guān)閉。
          • 外部時(shí)鐘源(HSE用戶外部時(shí)鐘)
            這種模式下,必須由用戶提供一個(gè)外部時(shí)鐘,此時(shí)鐘的最高頻率可為24MHz。用戶可通過(guò)編程選項(xiàng)位EXTCLK選擇此模式。詳情請(qǐng)參見(jiàn)數(shù)據(jù)手冊(cè)的選項(xiàng)字節(jié)章節(jié)。此時(shí),占空比約50%的外部時(shí)鐘信號(hào)(方波,正弦波,三角波)用以驅(qū)動(dòng)OSCIN引腳,而OSCOUT引腳可做為通用輸入/輸出管腳使用。

          (二)HSI
          HSI信號(hào)由內(nèi)部16MHz RC振蕩器與一個(gè)可編程分頻器(分頻因子從1至8)產(chǎn)生。分頻因子由寄存器CLK_CKDIVR決定。

          注意:?jiǎn)?dòng)時(shí),主時(shí)鐘源默認(rèn)為HSI RC時(shí)鐘的8分頻,即fHSI/8
          HSI RC可以提供一個(gè)低成本的16MHz時(shí)鐘源(無(wú)需外部器件),其占空比為50%。HSI啟動(dòng)速度比HSE晶體振蕩器快,但是其精度即使經(jīng)過(guò)校準(zhǔn)也仍然比外部晶體振蕩器或陶瓷諧振器低。內(nèi)部時(shí)鐘寄存器CLK_ICKR中的標(biāo)志位HSIRDY用以指示HSI RC是否穩(wěn)定。啟動(dòng)時(shí),HSI時(shí)鐘信號(hào)將不會(huì)生效直至此標(biāo)志位被硬件置位。HSI RC可通過(guò)設(shè)置內(nèi)部時(shí)鐘寄存器CLK_ICKR中的HSIEN位打開(kāi)或關(guān)閉。


          備份時(shí)鐘源
          當(dāng)HSE晶體振蕩器失效時(shí),HSI/8可作為備份時(shí)鐘源(輔助時(shí)鐘源)使用。請(qǐng)參見(jiàn)8.6時(shí)鐘安全系統(tǒng)(CSS)。
          快速啟動(dòng)特性
          如果寄存器CLK_ICKR中的FHWU位被置1,則MCU從停機(jī)(Halt)模式或活躍停機(jī)(Active Halt)模式喚醒時(shí),HSI將自動(dòng)被設(shè)為主時(shí)鐘源。
          校準(zhǔn)
          每個(gè)產(chǎn)品在出廠時(shí)均已經(jīng)ST校準(zhǔn)。
          復(fù)位后,出廠校準(zhǔn)值將被自動(dòng)加載至內(nèi)部校準(zhǔn)寄存器。
          如果實(shí)際應(yīng)用中電壓或溫度偏差較大,將會(huì)影響RC振蕩器的速度。用戶可使用HSI時(shí)鐘校準(zhǔn)寄存器(CLK_HSITRIMR)修正HSI的時(shí)鐘頻率。此寄存器中有3或4位用以存放一個(gè)附加的修正值,并與內(nèi)部HSI校準(zhǔn)寄存器的值相加來(lái)對(duì)時(shí)鐘進(jìn)行校正。

          (三)LSI
          128KHz的LSI RC時(shí)鐘是一個(gè)低功耗,低成本的可選主時(shí)鐘源,也可在停機(jī)(Halt)模式下作為維持獨(dú)立看門狗和自動(dòng)喚醒單元(AWU)運(yùn)行的低功耗時(shí)鐘源。LSI可通過(guò)設(shè)置內(nèi)部時(shí)鐘寄存器CLK_ICKR中的LSIEN位打開(kāi)或關(guān)閉。
          內(nèi)部時(shí)鐘寄存器CLK_ICKR中的標(biāo)志位LSIRDY用以指示LSI是否穩(wěn)定。啟動(dòng)時(shí),LSI時(shí)鐘信號(hào)將
          不會(huì)生效直至此標(biāo)志位被硬件置位。
          同HIS一樣,LSI出廠時(shí)已經(jīng)校準(zhǔn)。但是,不可能再執(zhí)行進(jìn)一步的校準(zhǔn)。
          注意:當(dāng)獨(dú)立看門狗使用LSI為時(shí)鐘源時(shí),為了保證CPU在系統(tǒng)出錯(cuò)時(shí)不與獨(dú)立看門狗使用同一個(gè)時(shí)鐘,
          當(dāng)選項(xiàng)字節(jié)位LSI_EN為0時(shí),LSI不能做為主時(shí)鐘。請(qǐng)參見(jiàn)STM8數(shù)據(jù)手冊(cè)中的選項(xiàng)字節(jié)章節(jié)。

          時(shí)鐘切換

          時(shí)鐘切換功能為STM8用戶提供了一種易用、快速、安全的從一個(gè)時(shí)鐘源切換到另一個(gè)時(shí)鐘源的途徑。
          系統(tǒng)啟動(dòng)


          為使STM8系統(tǒng)快速啟動(dòng),復(fù)位后時(shí)鐘控制器自動(dòng)使用HSI的8分頻(HSI/8)做為主時(shí)鐘。其原因?yàn)镠SI的穩(wěn)定時(shí)間短,而8分頻可保證系統(tǒng)在較差的VDD條件下安全啟動(dòng)。一旦主時(shí)鐘源穩(wěn)定,用戶程序可將主時(shí)鐘切換到另外的時(shí)鐘源。


          主時(shí)鐘切換的過(guò)程
          用戶可選擇下面兩種方式切換時(shí)鐘源:


          自動(dòng)切換
          自動(dòng)切換使用戶可使用最少的指令完成時(shí)鐘源的切換。應(yīng)用軟件可繼續(xù)其它操作而不用考慮切換事件所占的確切時(shí)間。

          1.設(shè)置切換控制寄存器(CLK_SWCR)中的位SWEN,使能切換機(jī)制。
          2.向主時(shí)鐘切換寄存器(CLK_SWR)寫入一個(gè)8位的值,用以選擇目標(biāo)時(shí)鐘源。寄存器CLK_SWCR中的SWBSY被硬件置位,目標(biāo)源振蕩器啟動(dòng)。原時(shí)鐘源依然被用于驅(qū)動(dòng)內(nèi)核和外設(shè)。

          一旦目標(biāo)時(shí)鐘源穩(wěn)定,寄存器CLK_SWR中的值將被復(fù)制到主時(shí)鐘狀態(tài)寄存器(CLK_CMSR)中去。
          此時(shí),SWBSY位被清除,新時(shí)鐘源替代舊時(shí)鐘源。寄存器CLK_SWCR中的標(biāo)志位SWIF被置位,如果SWIEN為1,則會(huì)產(chǎn)生一個(gè)中斷。

          • 手動(dòng)切換
            手動(dòng)切換與自動(dòng)切換不同,不能夠立即切換,但它允許用戶精確地控制切換事件發(fā)生的時(shí)間

          1.向主時(shí)鐘切換寄存器(CLK_SWR)寫入一個(gè)8位的值,用以選擇目標(biāo)時(shí)鐘源。寄存器CLK_SWCR中的SWBSY被硬件置位,目標(biāo)源振蕩器啟動(dòng)。原時(shí)鐘源依然被用于驅(qū)動(dòng)內(nèi)核和外設(shè)。
          2.用戶軟件需等待至目標(biāo)時(shí)鐘源穩(wěn)定。寄存器CLK_SWCR中的標(biāo)志位SWIF用以指示目標(biāo)時(shí)鐘源是否已穩(wěn)定,如果SWIEN為1,則會(huì)產(chǎn)生一個(gè)中斷。
          3.最后,由用戶軟件在所選的時(shí)間點(diǎn),設(shè)置寄存器CLK_SWCR中的位SWEN,執(zhí)行切換。無(wú)論是手動(dòng)切換還是自動(dòng)切換,如果原時(shí)鐘源仍然在被其他模塊使用(如LSI在被獨(dú)立看門狗使用),則原時(shí)鐘源將不會(huì)被自動(dòng)關(guān)閉。配置內(nèi)部時(shí)鐘寄存器CLK_ICKR和外部時(shí)鐘寄存器
          CLK_ECKR中的相應(yīng)位,可關(guān)閉原時(shí)鐘源。如果由于某種原因時(shí)鐘切換沒(méi)有成功,軟件可通過(guò)清除標(biāo)志位SWBSY以復(fù)位當(dāng)前的切換操作,使寄存器CLK_SWR恢復(fù)原值(原時(shí)鐘源)。

          外設(shè)時(shí)鐘門控

          關(guān)閉未使用外設(shè)的時(shí)鐘可使STM8降低功耗。外設(shè)的時(shí)鐘門控(PCG)模式使用戶可在運(yùn)行模式下隨時(shí)打開(kāi)或關(guān)閉fMASTER與下列外設(shè)的連接:

          • ADC
          • I2C
          • AWU(寄存器時(shí)鐘,而非計(jì)數(shù)器時(shí)鐘)
          • SPI
          • TIM[4:1]
          • UART
          • CAN(寄存器時(shí)鐘,而非CAN時(shí)鐘)

          STM8系統(tǒng)復(fù)位后,所有外設(shè)時(shí)鐘均處于開(kāi)的狀態(tài)。用戶可通過(guò)清除CLK_PCKENR1或CLK_PCKENR2中的PCKEN位來(lái)關(guān)閉相應(yīng)的外設(shè)時(shí)鐘。但是在關(guān)閉外設(shè)的時(shí)鐘前,用戶必須設(shè)置相應(yīng)的位禁用該外設(shè)。
          為了使能一個(gè)外設(shè),用戶必須先設(shè)置寄存器CLK_PCKENR中對(duì)應(yīng)的PCKEN位,然后設(shè)置外設(shè)控制寄存器中的外設(shè)使能位。
          AWU計(jì)數(shù)器是由獨(dú)立于fMASTER的內(nèi)部或外部時(shí)鐘(LSI或HSE)驅(qū)動(dòng),因此,即使寄存器的時(shí)鐘已被關(guān)掉,該外設(shè)依然可以繼續(xù)運(yùn)行。

          時(shí)鐘安全系統(tǒng)

          時(shí)鐘安全系統(tǒng)用于監(jiān)控HSE時(shí)鐘源是否失效。當(dāng)fMASTER使用HSE做為時(shí)鐘源時(shí),如果HSE時(shí)鐘由于諧振器損壞、斷開(kāi)或其它原因而失效,時(shí)鐘控制器將激活安全恢復(fù)機(jī)制,將fMASTER自動(dòng)切換到輔助時(shí)鐘源HSI/8。STM8系統(tǒng)將一直使用輔助時(shí)鐘源,直至MCU被復(fù)位。


          設(shè)置時(shí)鐘安全系統(tǒng)寄存器CLK_CSSR中的CSSEN位,可使能STM8的時(shí)鐘安全系統(tǒng)。為安全起見(jiàn),CSS一旦使能就不能被關(guān)閉,直到下一次復(fù)位。
          必須滿足下面的條件,CSS方可檢測(cè)HSE石英晶體的失效:

          • HSE晶體開(kāi):(外部時(shí)鐘寄存器CLK_ECKR中的位HSEEN=1)
          • HSE振蕩器被置為石英晶體(選項(xiàng)位EXTCLK為1)
          • CSS功能開(kāi):(寄存器CLK_CSSR中CSSEN=1)
            如果當(dāng)前的主時(shí)鐘源為HSE,當(dāng)失效被檢測(cè)到時(shí),CSS將執(zhí)行以下操作:
          • 寄存器CLK_CSSR中的CSSD位被置位,如果CSSIEN為1,則同時(shí)產(chǎn)生一個(gè)中斷。
          • CLK_CMSR,CLK_SWR,及CLK_CKDIVR中的HSIDIV[1:0]位被置為復(fù)位值(CKM[7:0]=SWI[7:0]=E1h)。HSI/8成為主時(shí)鐘。
          • 內(nèi)部時(shí)鐘寄存器CLK_ICKR中的HSIEN被置位(HSI開(kāi))。
          • 外部時(shí)鐘寄存器CLK_ECKR中的HSEEN被清除(HSE關(guān))。
          • AXU位被置位,用以指示輔助時(shí)鐘源HSI/8被強(qiáng)制使用。
            用戶可通過(guò)軟件清除CSSD位,但AXU位只能由復(fù)位清除。為了提高時(shí)鐘頻率,用戶在清除寄存器CLK_CSSR中的CSSD位以后,可修改寄存器
            CLK_CKDIVR中的HSIDIV[1:0]位。
            如果失效發(fā)生時(shí)HSE不是主時(shí)鐘源,STM8主時(shí)鐘將不會(huì)被切換到輔助時(shí)鐘源,以上操作也不會(huì)發(fā)生,僅執(zhí)行下面的操作:
          • 外部時(shí)鐘寄存器CLK_ECKR中的HSEEN被清除,HSE關(guān)閉。
          • 寄存器CLK_CSSR中的位CSSD被置位,如果CSSIEN為1,則同時(shí)產(chǎn)生一個(gè)中斷。
            如果HSE不是當(dāng)前主時(shí)鐘源,且主時(shí)鐘正在被切換至HSE,則在清除CSSD位之前,必須先清除寄存器CLK_SWCR的SWBSY位。
            如果當(dāng)失效被檢測(cè)到時(shí),HSE被CCOSEL選擇為時(shí)鐘輸出模式(參見(jiàn)時(shí)鐘輸出功能(CCO)),則HSI(HSIDIV)將替代HSE,被自動(dòng)強(qiáng)制選擇為輸出時(shí)鐘。

          時(shí)鐘輸出CCO

          可配置的時(shí)鐘輸出功能使STM8用戶可在外部管腳CCO上輸出指定的時(shí)鐘。STM8S的用戶可選擇下面6種時(shí)鐘信號(hào)之一做為CCO時(shí)鐘:

          • fHSE
          • fHSI
          • fHSIDIV
          • fLSI
          • fMASTER
          • fCPU(可選擇分頻值)

          注意:在所有可能的分頻值下,不能保證信號(hào)的占空比全部為50%

          通過(guò)配置時(shí)鐘輸出寄存器CLK_CCOR中域CCOSEL[3:0]可選擇輸出的時(shí)鐘。用戶需為指定的I/O引腳(參見(jiàn)管腳描述章節(jié))選擇期望輸出的時(shí)鐘。此I/O必須通過(guò)配置寄存器Px_CR1對(duì)應(yīng)的位為1來(lái)設(shè)置為上拉輸入或推挽輸出模式。
          一旦可配置時(shí)鐘輸出寄存器CLK_CCOR的位CCOEN=1,就開(kāi)始輸出所選定的時(shí)鐘信號(hào)。

          如果CCOBSY為1,則表明可配置時(shí)鐘輸出系統(tǒng)正在工作。只要CCOBSY為1,CCOSEL位就會(huì)被寫保護(hù)。
          如果需要,CCO可自動(dòng)激活目標(biāo)振蕩器。當(dāng)所選時(shí)鐘就緒時(shí),CCORDY被置位。

          STM8用戶可通過(guò)清除CCOEN位來(lái)禁用時(shí)鐘輸出功能。CCOBSY位和CCORDY位都將保持為1直到禁用操作結(jié)束。從清除CCOEN位到這兩個(gè)標(biāo)志位被復(fù)位之間的時(shí)間可能會(huì)很長(zhǎng),例如當(dāng)所選的輸出時(shí)鐘相對(duì)于fCPU頻率很低時(shí)。

          時(shí)鐘中斷

          當(dāng)下列事件發(fā)生時(shí),時(shí)鐘控制器可產(chǎn)生中斷:

          • 主時(shí)鐘源切換事件
          • CSS事件

          這兩個(gè)中斷均可被獨(dú)立屏蔽。



          關(guān)鍵詞: STM8時(shí)

          評(píng)論


          技術(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); })();