久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3612|回復: 0
打印 上一主題 下一主題
收起左側

單片機超頻之PLL鎖相環設置

[復制鏈接]
跳轉到指定樓層
樓主
ID:105323 發表于 2016-3-4 16:51 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

什么是鎖相環呢?
    MCU的支撐電路一般需要外部時鐘來給MCU提供時鐘信號,而外部時鐘的頻率可能偏低,為了使系統更加快速穩定運行,需要提升系統所需要的時鐘頻率。這就得用到鎖相環了。例如MCU用的外部晶振是16M的無源晶振,則可以通過鎖相環PLL把系統時鐘倍頻到24M,從而給系統提供更高的時鐘信號,提高程序的運行速度。51單片機,AVR單片機內部沒有鎖相環電路,其系統時鐘直接由外部晶振提供。而XS128內部集成了鎖相環電路,其系統時鐘既可由外部晶振直接提供,也可以通過鎖相環倍頻后提供,當然,還有由XS128內部的時鐘電路來提供(當其它來源提供的系統時鐘不穩定時,內部時鐘電路就起作用了,也就是自時鐘模式)。
    鎖相環作為一個提供系統時鐘的模塊,是一個基本的模塊,幾乎每次編程序都得用到。下面記一下怎樣配置鎖相環來設定想要的系統時鐘。
    鎖相環PLL、自時鐘模式和前面說的實時中斷RTI、看門狗COP都屬于系統時鐘與復位CRG中的模塊,固前面用到的寄存器,這里有些會再用到。
    在程序中配置鎖相環的步驟如下:
    第一、禁止總中斷;
    第二、寄存器CLKSEL的第七位置0,即CLKSEL_PLLSEL=0。選擇時鐘源為外部晶振OSCCLK,在PLL程序執行前,內部總線頻率為OSCCLK/2。
    CLKSEL_PLLSEL=0時,系統時鐘由外部晶振直接提供,系統內部總線頻率=OSCCLK/2(OSCCLK為外部晶振頻率)。CLKSEL_PLLSEL=1時,系統時鐘由鎖相環提供,此時系統內部總線頻率=PLLCLK/2(PLLCLK為鎖相環倍頻后的頻率)。
   第三、禁止鎖相環PLL,即PLLCTL_PLLON=0。
    當PLLCTL_PLLON=0時,關閉PLL電路。當PLLCTL_PLLON=1時,打開PLL電路。
    第四、根據想要的時鐘頻率設置SYNR和REFDV兩個寄存器。
    SYNR和REFDV兩個寄存器專用于鎖相環時鐘PLLCLK的頻率計算,計算公式是:
                     PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1)
   其中,PLLCLK為PLL模塊輸出的時鐘頻率;OSCCLK為晶振頻率;SYNR、REFDV分別為寄存器SYNR、REFDV中的值。這兩個寄存器只有在PLLSEL=0時才能夠寫入(這里就是第二步的設置原因所在了)。
   第五、打開PLL,即PLLCTL_PLLON=1。
    第六、CRGFLG_LOCK位,確定PLL是否穩定。
    當鎖相環PLL電路輸出的頻率達到目標頻率的足夠小的誤差范圍內時,LOCK位置1,此時說明PLLCLK已經穩定,可以作為系統的時鐘了。該位在正常情況下為只讀位。
    第七、PLLCLK穩定后,允許鎖相環時鐘源PLLCLK為系統提供時鐘,即CLKSEL_PLLSEL=1。
    到這里,鎖相環的設置就完畢了。
    如果想更靈活地配置系統時鐘,就還得用到下面的寄存器了,下面逐一說說:
    1、CRGFLG_LOCKIF鎖相環的中斷標志位。當系統時鐘因為穩定或不穩定而導致LOCK位(上面已提到)變化時,該位置1。此時,如果CRGINT_LOCKIE=1,則產生中斷。CRGINT_LOCKIE=1時,則允許產生鎖相環鎖定中斷。CRGINT_LOCKIE=0時,則不允許。
    2、CLKSEL_PLLWAI是等待模式PLL停止位。當CLKSEL_PLLWAI=1時,系統進入等待模式時,鎖相環PLL停止工作。當CLKSEL_PLLWAI=0時,系統進入等待模式時,鎖相環PLL仍然工作。
   下面順便說一下與自時鐘模式相關的幾個寄存器:
    CRGFLG_SCMIF自時鐘模式中斷標志位。當SCM位變化時,該位置1。此時,如果CRGINT_SCMIE=1,則產生中斷。
    CRGFLG_SCM    自時鐘模式狀態位。當晶振頻率不穩定時,該位置1,系統會進入自時鐘模式,系統的時鐘將由自時鐘模式下的時鐘提供。
    CRGINT_SCMIE自時鐘模式中斷的使能位。當CRGINT_SCMIE=1時,允許產生自時鐘模式中斷。當CRGINT_SCMIE=0時,不能產生自時鐘模式中斷。
    PLLCTL_SCME自時鐘模式使能位。在自時鐘模式下,該位不能被清0。PLLCTL_SCME=1時,晶振時鐘失靈系統將強制進入自時鐘模式。當PLLCTL_SCME=0時,晶振失靈將導致時鐘監控器復位。
   下面附一條鎖相環的初始化程序;
void MCUInit()
{
      DISABLE_INTERRUPTS;          //(1)禁止總中斷
       CLKSEL&= 0x7f;            //(2)CLKSEL的第7位置0,選擇系統時鐘源為OSCCLK
      PLLCTL &=0xbf;             //(3)禁止PLL   ,  PLLCTL.6(pllon)設為0;先關閉PLL
       SYNR =0x01;              //(4)根據需要的時鐘頻率設置SYNR和REFDV寄存器
       REFDV =0x00;            
      PLLCTL |=(1<<6);         //(5)打開PLL    ,PLLCTL.6(pllon)設為1;開PLL
      while (( CRGFLG&0x08) ==0x00);         //(6)通過判斷LOCK位,
                                                      //確定PLL是否穩定
      CLKSEL |=(1<<7);        //(7)時鐘頻率穩定后,允許鎖相環時鐘源作為系統時鐘源;
                                         //本句執行后:BusClock=PLLCLK/2
    }         
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美精品啪啪 | 午夜a级理论片915影院 | 国产精品一区2区 | 91精品国产一区二区三区动漫 | 在线一区二区三区 | 美女久久 | k8久久久一区二区三区 | 亚洲美女一区 | 综合另类 | 久久亚洲精品久久国产一区二区 | 国产亚洲一区二区三区 | 天天天操 | 成人在线电影在线观看 | 色欧美片视频在线观看 | 亚洲免费三级 | 亚洲免费视频播放 | 91久久久久久 | 午夜在线视频一区二区三区 | 国产人成精品一区二区三 | 日韩中文av在线 | 岛国在线免费观看 | 色一情一乱一伦一区二区三区 | 国产日韩欧美精品一区二区三区 | 一本大道久久a久久精二百 国产成人免费在线 | 久久新 | 亚洲精品久久久一区二区三区 | 伊人超碰 | 亚洲男人的天堂网站 | 成人妇女免费播放久久久 | 黄色一级大片在线免费看产 | 精品一区二区久久久久久久网站 | 免费成人高清在线视频 | 91一区二区三区 | 91亚洲国产| 亚洲精品aⅴ | 国产精品成人一区二区三区夜夜夜 | 亚洲在线高清 | 国产69精品久久久久777 | 欧美日韩国产中文字幕 | 国产精品久久国产精品99 | 国产精品久久久久久久久免费相片 |