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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > MSP430F5418學(xué)習(xí)筆記----UCS時鐘模塊配置

          MSP430F5418學(xué)習(xí)筆記----UCS時鐘模塊配置

          作者: 時間:2016-11-28 來源:網(wǎng)絡(luò) 收藏
          引言:一年前開始用TI公司的x14x系列超低功耗單片機MSP430F149,感覺與普通的51系列相比,各個外設(shè)的功能強大了一些,使用起來沒有很大的區(qū)別,但有一個重要的區(qū)別就是外部晶振需要正確配置才能使用?,F(xiàn)在在用TI的x54x系列的MSP430F5418芯片,發(fā)現(xiàn)它的各個外設(shè)的集成度更高了(比如所有的外部時鐘和內(nèi)部時鐘由一個Unified Clock System(UCS)模塊統(tǒng)一管理,內(nèi)部Uart,IIC,SPI之類的串行接口由Universal Serial Communication Interfaces(USCI)模塊統(tǒng)一管理),使用起來更靈活了,由此帶來的影響就是配置起來也就更麻煩了。(呵呵,要想擁有更強大的功能,還不得花更多的精力去研究它的使用方法?)

          剛剛才把F5418的UCS模塊調(diào)通,特此慶祝一番~~

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

          動手之前,首先要閱讀TI提供的430x54x Family User Guide(slau208d)和MIXED SIGNAL MICROCONTROLLER,了解一下這種全新的芯片的時鐘模塊的框圖,有個整體把握:



          下面是我翻譯的MIXED SIGNAL MICROCONTROLLER第18頁對UCS的介紹(覺得翻譯不好可別拍磚哦):

          @振蕩器和系統(tǒng)時鐘 (MIXED SIGNAL MICROCONTROLLER, P18)

          在MSP430x5xx家族的器件中,時鐘系統(tǒng)由統(tǒng)一時鐘系統(tǒng)Unified Clock System(UCS)模塊提供,它包含了一個32KHz鐘表石英晶體(XT1 LF Mode),一個內(nèi)部低功率,低頻率震蕩器(VLO),一個內(nèi)部平衡的低頻震蕩器(REFO),一個集成的內(nèi)部數(shù)字可控震蕩器(DCO),和一個高頻石英晶體振蕩器(XT1 HF模式或XT2).這個UCS模塊的設(shè)計符合了系統(tǒng)對低成本和低功耗的要求,它包含數(shù)字鎖頻環(huán)(FLL),通過連接一個數(shù)字的調(diào)制器,使DCO頻率穩(wěn)定成一個可編程倍數(shù)的鐘表石英晶體頻率.其內(nèi)部DCO提供了一個快速開啟的時鐘源,并能夠在低于5us內(nèi)穩(wěn)定.
          統(tǒng)一時鐘系統(tǒng)模塊提供了如下時鐘信號:
          ·Auxiliary輔助時鐘(ACLK),可由32KHz鐘表晶體,高頻晶體,內(nèi)部低頻振蕩器(VLO),平衡的低頻振蕩器(REFO)或內(nèi)部數(shù)字控制振蕩器(DCO)提供.
          ·Main系統(tǒng)時鐘(MCLK),供CPU使用,信號提供與ACLK相同.
          ·Sub-Main系統(tǒng)子時鐘(SMCLK),供外設(shè)模塊使用,信號提供與ACLK相同.
          ·ACLK/n,由ACLK分頻后緩沖輸出,分頻系數(shù)可為1,2,4,8,16,32.

          當(dāng)你不做任何時鐘配置時,你仍然可以像使用普通單片機一樣正常使用它,那么它是時鐘默認(rèn)是怎么配置的呢?這時候你就得了解USC模塊的默認(rèn)配置了,這部分在430x54x Family User Guide中第64頁有講解。我的翻譯:

          @Unified Clock System(UCS)操作---430x54x Family User Guide slau208d,P64

          在上電清除信號(PUC)之后,UCS模塊的默認(rèn)配置是:
          ·XT1 低頻模式被選擇為XT1CLK時鐘的振蕩器。XT1CLK被選擇為ACLK的時鐘源。
          ·DCOCLKDIV作為MCLK的時鐘源。
          ·DCOCLKDIV作為SMCLK的時鐘源。
          ·FLL(鎖頻環(huán))運行被使能,XT1CLK作為FLL參考時鐘,即FLLREFCLK。
          ·XIN和XOUT引腳被設(shè)置為通用IO時,XT1保持禁能直到IO口置為XT1操作模式。
          ·如果XT2IN和XT2OUT引腳被設(shè)置為通用IO,XT2被禁能。
          在初始狀態(tài),F(xiàn)LL以XT1為參考時鐘的運行默認(rèn)使能,但XT1被禁止。要使能XT1,相應(yīng)管腳的PSEL位必須置位。當(dāng)一個32.768KHz的晶振用作XT1CLK時,出錯的控制邏輯電路直接造成REFOCLK作為ACLK的時鐘源,因為XT1不會立即穩(wěn)定。一旦振蕩開始信號被獲取到了,F(xiàn)LL就使MCLK和SMCLK穩(wěn)定到1.048576MHz,f(DCO)=2.097152MHz。
          狀態(tài)寄存器控制位(SCG0,SCG1,OSCOFF和CPUOFF)配置MSP430的運行模式,還使能或禁能UCS模塊的部分功能(參考系統(tǒng)復(fù)位,中斷,運行模式等章節(jié))。寄存器UCSCTL0到UCSCTL8配置UCS模塊。

          廢話別太多,下面直接看程序:

          如果想將MCLK、SMCLK的時鐘源設(shè)為外部高速晶振(我接的是16MHz),在初始化時加入以下程序段

          //使用XT2振蕩器
          P5SEL |= BIT2 + BIT3;//配置管腳為晶振輸入
          UCSCTL6 &= ~XT2OFF; //打開XT2振蕩器
          do
          {
          UCSCTL7 &= ~(XT2OFFG; //清除振蕩器XT2失效標(biāo)志
          SFRIFG1 &= ~OFIFG; // 清除振蕩器失效標(biāo)志
          //上面這句必須有,否則起振了也不會分配成功
          }
          while (UCSCTL7 & XT2OFFG); //判斷XT2是否起振
          UCSCTL6 &= ~XT2DRIVE0;//設(shè)置驅(qū)動電流最小以降低功耗
          UCSCTL4 |= SELM__XT2CLK + SELS__XT2CLK; //選擇MCLK、SMCLK為XT2
          //UCSCTL5 |= DIVS__2;//SMCLK設(shè)為2分頻

          如果想讓外部的XT1,XT2和內(nèi)部DCO同時使用,并從端口輸出以便于測試,連接圖示意(參考ti例程)
          // MSP430F5418
          // -----------------
          // /| | XIN|-
          // | | | 32kHz
          // ---|RST XOUT|-
          // | |
          // | |
          // | XT2IN|-
          // | | HF XTAL or Resonator (add capacitors)
          // | XT2OUT|-
          // | |
          // | P1.0|--> ACLK = 32kHz Crystal Out
          // | |
          // | P1.6|--> SMCLK = High Freq Xtal or Resonator Out
          // | |
          // | P2.0|--> MCLK = Default DCO Frwequency
          // | |
          // | |


          在初始化是加入以下程序段:


          P1DIR = BIT6 + BIT0; //
          P1SEL = BIT6 + BIT0; // 配置管腳為時鐘 SMCLK, ACLK輸出
          P2DIR = BIT0; //
          P2SEL = BIT0; // 配置管腳為時鐘 MCLK輸出

          P5SEL |= 0x0C; // 配置管腳為晶振XT2輸入
          P7SEL |= 0x03; // 配置管腳為晶振XT1輸入


          UCSCTL6 &= ~(XT1OFF + XT2OFF); // 打開XT1,XT2振蕩器
          UCSCTL6 |= XCAP_3; // 為XT1加載內(nèi)部電容


          // 循環(huán)直到XT1,XT2 和 DCO 穩(wěn)定起振
          do
          {
          UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG);
          // 清除振蕩器XT2,XT1,DCO失效標(biāo)志
          SFRIFG1 &= ~OFIFG; // 清除振蕩器失效標(biāo)志
          }while (SFRIFG1&OFIFG); // 判斷所有晶振是否起振


          UCSCTL6 &= ~XT2DRIVE0; // 根據(jù)晶振頻率減小XT2驅(qū)動電流以降低功耗
          UCSCTL4 |= SELA__XT1CLK + SELS__XT2CLK;


          // 選擇SMCLK時鐘源為XT2, ACLK時鐘源為XT1,MCLK默認(rèn)為DCO/2



          關(guān)鍵詞: MSP430F541UCS時鐘模塊配

          評論


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