PIC24Fのオーバークロック

 PIC24Fでは、OSCTUNレジスタを操作することによって、内蔵 FRCのクロックを 8MHz±12%まで変更することができます。また 4倍の PLLを内蔵していますので、標準のクロック 8MHz * 4 = 32MHz (Fcy = 16MHz) を超えてオーバークロック状態で動作させることができます。

 これまで確認したところでは、特に目立った発熱もなく極めて安定して動作しているようです。また大変都合の良いことに、クロックを一番上まで上げた状態 (Fcy = 17.92MHz) だと、UARTのボーレート計算結果がよく、とても使いやすいです (fileOSCTUN and UART for PIC24F.xls)。

OpenSSMでは、OSC 8.96MHz, Fcy = 17.92MHz, Fcpu = 35.84MHz に設定しています

サンプルコード

 CLKDIVと OSCTUNレジスタを操作して、CPUクロックを変更します。また、この操作はいつでも実行できます。省電力にさせたいときはクロックを下げるなど、いろいろ使い道があります。

 詳しくは、PIC24Fのデータシートを参照してください

#include <p24FJ64GA002.h>

_CONFIG1(   JTAGEN_OFF &
            GCP_OFF &
            GWRP_OFF &
            BKBUG_OFF &
            WINDIS_OFF &
            COE_OFF &
            ICS_PGx1 &
            FWDTEN_ON &
            WDTPS_PS256) 

_CONFIG2(   IESO_OFF &
            FNOSC_FRCPLL &
            FCKSM_CSDCMD &
            OSCIOFNC_ON &
            IOL1WAY_OFF &
            I2C1SEL_PRI &
            POSCMOD_NONE)

int main(void)
{
    /* Fosc = 8.96MHz, Fcy = 17.92MHz, Core 35.84MHz */
    CLKDIV = 0;
    OSCTUN = 0b0000000000011111;

    while(1){
        ClrWdt();
    }

    return(0);
}

OSCTUNレジスタと CPUクロックの関係

OSCTUNOFFSETFRC (Hz)Fcy (Hz)
011111310.1200008,959,99817,919,996
011110300.1161298,929,03017,858,061
011101290.1122588,898,06317,796,125
011100280.1083878,867,09517,734,190
011011270.1045168,836,12717,672,255
011010260.1006458,805,16017,610,319
011001250.0967748,774,19217,548,384
011000240.0929038,743,22417,486,449
010111230.0890328,712,25717,424,513
010110220.0851618,681,28917,362,578
010101210.0812908,650,32117,300,643
010100200.0774198,619,35417,238,707
010011190.0735488,588,38617,176,772
010010180.0696778,557,41817,114,836
010001170.0658068,526,45117,052,901
010000160.0619358,495,48316,990,966
001111150.0580648,464,51516,929,030
001110140.0541938,433,54816,867,095
001101130.0503228,402,58016,805,160
001100120.0464528,371,61216,743,224
001011110.0425818,340,64416,681,289
001010100.0387108,309,67716,619,354
00100190.0348398,278,70916,557,418
00100080.0309688,247,74116,495,483
00011170.0270978,216,77416,433,548
00011060.0232268,185,80616,371,612
00010150.0193558,154,83816,309,677
00010040.0154848,123,87116,247,741
00001130.0116138,092,90316,185,806
00001020.0077428,061,93516,123,871
00000110.0038718,030,96816,061,935
00000000.0000008,000,00016,000,000
111111-1-0.0037507,970,00015,940,000
111110-2-0.0075007,940,00015,880,000
111101-3-0.0112507,910,00015,820,000
111100-4-0.0150007,880,00015,760,000
111011-5-0.0187507,850,00015,700,000
111010-6-0.0225007,820,00015,640,000
111001-7-0.0262507,790,00015,580,000
111000-8-0.0300007,760,00015,520,000
110111-9-0.0337507,730,00015,460,000
110110-10-0.0375007,700,00015,400,000
110101-11-0.0412507,670,00015,340,000
110100-12-0.0450007,640,00015,280,000
110011-13-0.0487507,610,00015,220,000
110010-14-0.0525007,580,00015,160,000
110001-15-0.0562507,550,00015,100,000
110000-16-0.0600007,520,00015,040,000
101111-17-0.0637507,490,00014,980,000
101110-18-0.0675007,460,00014,920,000
101101-19-0.0712507,430,00014,860,000
101100-20-0.0750007,400,00014,800,000
101011-21-0.0787507,370,00014,740,000
101010-22-0.0825007,340,00014,680,000
101001-23-0.0862507,310,00014,620,000
101000-24-0.0900007,280,00014,560,000
100111-25-0.0937507,250,00014,500,000
100110-26-0.0975007,220,00014,440,000
100101-27-0.1012507,190,00014,380,000
100100-28-0.1050007,160,00014,320,000
100011-29-0.1087507,130,00014,260,000
100010-30-0.1125007,100,00014,200,000
100001-31-0.1162507,070,00014,140,000
100000-32-0.1200007,040,00014,080,000

8.96MHzのときのボーレート設定一覧

 Low MODE / High MODEは、UARTの BRGHレジスタの設定を指しています。詳しくは、PIC24Fのデータシートを参照してください。

BaudrateFosc (MHz)PLLFcy (MHz)Low MODEHigh MODE
Calc BRGBRGCalc BaudrateErrorCalc BRGBRGCalc BaudrateError
92160089599982179199960.21527750701119999.7521.528%3.8611100264895999.80-2.778%
57600089599982179199960.944444011559999.88-2.778%6.7777760427559999.88-2.778%
50000089599982179199961.23999951559999.8812.000%7.9599988497777.67-0.444%
46080089599982179199961.4305550131559999.8821.528%8.7222200529447999.90-2.778%
25600089599982179199963.3749990233279999.949.375%16.4999960916263529.352.941%
25000089599982179199963.4799993279999.9412.000%16.91999617248888.83-0.444%
23040089599982179199963.8611100264223999.95-2.778%18.444440118235789.422.339%
15360089599982179199966.2916650396159999.964.167%28.1666601628154482.720.575%
12800089599982179199967.7499980478124444.42-2.778%33.9999921934127999.97-0.000%
11520089599982179199968.7222200529111999.98-2.778%37.8888802138114871.77-0.285%
76800895999821791999613.583330081474666.65-2.778%57.333320315777241.360.575%
64000895999821791999616.499996091665882.342.941%68.999984386963999.99-0.000%
57600895999821791999618.44444011858947.362.339%76.777760427757435.88-0.285%
56000895999821791999618.999995541955999.99-0.000%78.999982147955999.99-0.000%
51200895999821791999620.874995122150909.08-0.568%86.499980478651494.240.575%
38400895999821791999628.166660162838620.680.575%115.666640611638290.59-0.285%
28800895999821791999637.888880213828717.94-0.285%154.555520815528717.94-0.285%
19200895999821791999657.333320315719310.340.575%232.333281323219227.460.143%
16000895999821791999668.999984386916000.00-0.000%278.999937527916000.00-0.000%
14400895999821791999676.777760427714358.97-0.285%310.111041731014405.140.036%
96008959998217919996115.66664061169572.65-0.285%465.66656254669593.15-0.071%
72008959998217919996154.55552081557179.49-0.285%621.22208336217202.570.036%
48008959998217919996232.33328132324806.870.143%932.3331259324801.710.036%
40008959998217919996278.99993752794000.00-0.000%1118.9997511194000.00-0.000%
24008959998217919996465.66656254662398.29-0.071%1865.6662518662399.57-0.018%
18008959998217919996621.22208336211800.640.036%2487.88833324881799.92-0.004%
12008959998217919996932.3331259321200.430.036%3732.332537321200.110.009%
60089599982179199961865.666251866599.89-0.018%7465.6657466599.97-0.004%
30089599982179199963732.33253732300.030.009%14932.3314932300.010.002%

添付ファイル: fileOSCTUN and UART for PIC24F.xls 4338件 [詳細]