找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 3218|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

msp430F5529超頻到40Mhz以上(官方給的25Mhz)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
CCS10環(huán)境下的工程文件,使用4Mhz的XT2晶振分頻后,作為FLL參考頻率

單片機(jī)源程序如下:
  1. //#include <msp430.h>
  2. #include "msp430F5529.h"
  3. /*
  4. * Jeason 2019.05.09 于 青島大學(xué)
  5. */
  6. void clock_init(unsigned char Fre);
  7. // 主頻初始化函數(shù) 可以設(shè)置指定的頻率
  8. // 理論參數(shù)是 1~ 40+ 的整數(shù) 建議不要超過45  (具體性能還要考慮自身芯片體質(zhì)�。。。�
  9. //實(shí)際使用中建議參數(shù)大于5  當(dāng)參數(shù)小于5以后會(huì)導(dǎo)致頻率卡在3.5MHz,原因未知
  10. void main(void)
  11. {
  12.     int i;
  13.     WDTCTL = WDTPW | WDTHOLD;       // stop watchdog timer
  14.     clock_init(45);
  15.     P2DIR |= BIT2;  // 配置P2.2為輸出模式
  16.     P2SEL |= BIT2;  // 功能復(fù)用:SMCLK輸出 (子系統(tǒng)主時(shí)鐘)
  17.     P7DIR |= BIT7;  // 配置P7.7為輸出模式
  18.     P7SEL |= BIT7;  // 功能復(fù)用:MCLK輸出    (主系統(tǒng)時(shí)鐘)
  19.     P1DIR |= BIT0;  // 配置P1.0為輸出模式
  20.     while(1)
  21.     {
  22.     }
  23. }

  24. void clock_init(unsigned char Fre)
  25. {

  26.     P5SEL |= BIT2|BIT3|BIT4|BIT5;//開啟外部兩個(gè)時(shí)鐘

  27.     UCSCTL6 |= XCAP_3|XT1OFF;          // XT1 相關(guān) 配置
  28.     UCSCTL6 |= XT2DRIVE_0 |XT2OFF;     // XT2 相關(guān) 配置
  29. //以下是提升核心電壓部分的代碼
  30.     PMMCTL0_H = 0xA5;                                         //開PMM電源管理
  31.     SVSMLCTL |= SVSMLRRL_1 + SVMLE;                            //配置SVML電壓
  32.     PMMCTL0 =  PMMPW + PMMCOREV_3;                             //配置內(nèi)核電壓
  33.     while((PMMIFG & SVSMLDLYIFG ) == 0);                       //等待設(shè)置完成
  34.     PMMIFG &= ~(SVMLVLRIFG + SVMLIFG + SVSMLDLYIFG);
  35.     if((PMMIFG & SVMLIFG) == 1)                                //判斷內(nèi)核電壓是否上升到VSVML
  36.          while((PMMIFG & SVMLVLRIFG) == 0);                    //如果沒有等待
  37.     SVSMLCTL &= ~SVMLE;                                        //關(guān)掉SVML模塊
  38.     PMMCTL0_H = 0X00;

  39.     __bis_SR_register(SCG0);                 //該語法為固定格式,意為將括號(hào)內(nèi)的變量置位,SCG0與系統(tǒng)工作模式有關(guān),此時(shí) MCLK 暫停工作
  40.     UCSCTL0 = 0;                             //先清零,F(xiàn)LL 運(yùn)行時(shí),該寄存器系統(tǒng)會(huì)自動(dòng)配置,不用管
  41.     UCSCTL6 = (UCSCTL6&(~(XT2OFF|XT1OFF))|XCAP_3|XT2DRIVE_0);
  42.     UCSCTL3 = (5<<4)|(2<<0);                 // 選擇 XTAL2 的時(shí)鐘信號(hào)作為參考信號(hào) 并且分頻到1MHz
  43.     if(Fre < 5)
  44.         UCSCTL1 = DCORSEL_2;
  45.     else if(Fre<15)
  46.         UCSCTL1 = DCORSEL_4;
  47.     else
  48.         UCSCTL1 = DCORSEL_7;
  49.    UCSCTL2 = (Fre-1);
  50.     __bic_SR_register(SCG0);
  51.     __delay_cycles(782000);
  52.     while (SFRIFG1 & OFIFG) {                               // Check OFIFG fault flag
  53.       UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG);           // Clear OSC flaut Flags
  54.       SFRIFG1 &= ~OFIFG;                                    // Clear OFIFG fault flag
  55.     }
  56.     UCSCTL4 = UCSCTL4&(~(SELS_7|SELM_7))|SELS_3|SELM_3;
  57. }
復(fù)制代碼

以上代碼51hei附件下載:
bilink.7z (34.61 KB, 下載次數(shù): 5)

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:767423 發(fā)表于 2021-9-17 15:34 | 只看該作者
厲害了,原來單片機(jī)也可以這樣干的。以前接外部晶振的單片機(jī)都不敢超一點(diǎn)點(diǎn)。玩玩應(yīng)該可以,做產(chǎn)品可不敢超頻用。
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表