【dsPIC33FJ128MC802】内部発振で最高速にて使ってみる。クロックの設定

2020年4月4日


◆dsPIC33FJ128MC802を内部発振で最速で動作させたいと思います。
最高40MIPSで動作可能です。ということは4000万cycle/secでしょうか!?
0)パーツ
チップワンストップで購入しました。
dsPIC33FJ128MC802-E/SP
@764円で購入しました。
DIPの28pinなのでブレッドボードでの実験にはもってこいです!

1)コンフィグレーション
コンフィグレーションはp33FJ128MC802.incの5315行目を参照しました。

_FOSCSEL(FNOSC_FRCPLL)

PLL併用のFRCオシレータとなります。
2)レジスター
リファレンスマニュアル70596Aを参照にしました。
ここではPLLの設定となります。
Fosc=Fin(M/N1×N2)・・・式①
・M=PLLDIV+2・・・式②
・N1=PLLPRE+2・・・式③
・N2=2(PLLPOST+1)・・・式④
Finは入力周波数なので7.37MHzになります。
Page48にサンプルコードがあるので拝借しました。
M:43、N1:2、N2:2を実際に上記②~④に代入のち①に代入して計算してみると
Fosc=7.37MHz(43/2×2)=79.2275MHzとなります。
命令サイクルクロックFcy=Fosc/2なので、39.61MHzとなります。
内部発振では39.61MIPSとなります。
3)プログラム例
プログラムの例はこちら↓

PLLFBDbits.PLLDIV = 41;   //M=PLLFBD+2
CLKDIVbits.PLLPOST = 0;   //N2=2
CLKDIVbits.PLLPRE  = 0;   //N1=2
OSCTUN = 0;            //TuneFRC:7.37MHz
RCONbits.SWDTEN = 0;            //Disable Watch Dog
while(OSCCONbits.LOCK != 1);    //wait for PLL Lock

列が揃ってない・・・

よろしければバナーをクリックお願いします!