picマイコンの使い方

PICマイコンの8bitマイコンから32bitマイコンまで使いこなすぞ! 周辺機能やアセンブラ、C言語を使いこなすぞ。ARMには負けないぞ! 頼みの綱はPIC32MZだ!たのしみだなー

設定

【PIC32MX370F512H】96MHzでつかってみる。①コンフィグレーションの設定


◆最大100MHzで動作可能なPIC32MX370F512Hを96MHzで使ってみます!
今回はコンフィグレーションの設定です。


1)パーツ
・PIC32MX370F512Hのパッケージは2種類あり
実装の容易なPIC32MX370F512H-I/PTをチップワンで購入しました。
このままでは実験が難しいく変換基板に実装する必要があります。
秋月電子の0.5mmピッチQFP(64ピン)変換基板を購入します。

1)コンフィグレーションを参照
"C:¥Program Files (x86)¥Microchip¥xc32¥v1.32¥docs¥config_docs"に各デバイス名でhtmlがありますので
クリックして開きます。お好みに合わせてコンフィグレーションビットを設定します。

2)96MHzの設定
内部高速発振を利用して96MHzにしたいと思います。
①FNOSCオシレータモード設定
「#pragma config FNOSC=FRCPLL」
「#pragma config POSCMOD=OFF」
内部高速発振とPLL併用を選択します。
②内部高速発振分周の設定
「#pragma config FPLLIDIV=DIV_2」
内部高速発振:8MHzでPLLの入力周波数FINは4~5MHzの範囲なので2分周します。
しかしながらDS61112HのP16の6.3.1.3.2に記載の通り
PLL併用FRCオシレータモードの場合は
デフォルトで「FPLLIDIV=DIV_2」固定となりFINは4MHzとなります。
③PLLの設定
「#pragma config FPLLMUL=MUL_24」
FIN:4MHzを24逓倍し96MHzとします。
④PLL出力分周の設定
「#pragma config FPLLODIV=DIV_1」
1分周にします。

続きはタイマーを使って動作確認をします!

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


◆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


列が揃ってない・・・

【PIC12F1822】システムクロックを32MHzで使う



PIC12F1822をシステムクロック32MHzで使うには?
OSCCONレジスタを下記の様に設定する必要があります。



(データシートP68参照)
・「SPLLEN(B7)=1」→PLL×4
・「IRCF(B6~B3)=1110」→8MHz
・「SCS(B1,B0)=00」→P61参照

OSCCON = 0B11110000;(0xF0)
システムクロック8MHz×PLL4=32MHzとなります。
1サイクル=4クロックかかるので実質8MHzですね
右上の写真はLATA1をパタパタさせたときの波形です。
BSFとBCFの間に
GOTO $+1 ←4回
NOP    ←1回
計10サイクル入れて見やすくしてます。
オシロ実測では1.25usec(10×0.125usec)なので、まあ合ってるのかな
12F675の時は1usecだから8倍速ですね。同じ8pinなのにスゴイ!
間違ってたらゴメンネ!



ギャラリー
  • 【PIC32MZ2048ECH144-I/PH】PIC32MZ2048ECH144を買いました!
  • 【PIC32MX370F512H】タイマーを使ってみる。
  • 【dsPIC33FJ128MC802】PMP接続のDMA転送でaitendoの1.44インチ液晶TFT(ZY-FGD)を使ってみる。その3
  • 【dsPIC33FJ128MC802】PMP接続のDMA転送(連続転送)でaitendoの液晶を使ってみる。
  • 【dsPIC33FJ128MC802】PMP接続のDMA転送(連続転送)でaitendoの液晶を使ってみる。
  • 【dsPIC33FJ128MC802】PMP接続のDMA転送(連続転送)でaitendoの液晶を使ってみる。
  • 【dsPIC33FJ128MC802】PMP接続のDMA転送(連続転送)でaitendoの液晶を使ってみる。
  • 【dsPIC33FJ128MC802】aitendoの1.44インチ液晶TFT(ZY-FGD)をPMP接続で使ってみる!
  • 【dsPIC33FJ128MC802】aitendoの1.44インチ液晶TFT(ZY-FGD)をPMP接続で使ってみる!
メッセージはこちちらからお願いします。

名前
メール
本文
アクセスカウンター
  • 今日:
  • 昨日:
  • 累計:

ブログパーツ
  • SEOブログパーツ
にほんブログ村 その他趣味ブログ 電子工作へ
にほんブログ村
アクセスカウンタ
アクセスランキング