Sahara's WebLog

日記のような、備忘録のような、うらみつらみのような、自慢のような…。

PIC24FJ64GB002 + 16 LEDs Test Board Configuration Bits で悩む

作ったばかりの16 LEDs Test BoardをPIC24FJ64GB002で駆動してみた。
ただ全部を点滅させるだけの事なのに結構悩んだので覚書き。

※「悩んだぞ」の1
MCLRをプログラムからDisabledにできない。
PIC18Fとかだと確かMCLRENとかがあって、Degital Outに設定できたような気がするが、このチップではそれが見当たらない。
なので、抵抗をつけてちゃんとプルアップしておかないと動かなかった。
これでしばらく悩んだ。

でさあ、何で0から15まで連続でポートを確保できないのかなあ、せっかく16ビットなのに。
pic24fj64gb002_12ledstestboard_01
PORTBだけでなくてPORTAでも連続では取れない。
プログラムめんどくさそう。

※「悩んだぞ」の2
他はちゃんと点滅するのに、RB4,RB5,RB7-RB9,RA3 が点滅しない。
これはまた例の初期状態ではデジタルI/Oになってないってヤツだなというところまでは気づく。
どうやら、SOSCO,SOSCIと、TDI,TCK,TDOと、OSCOの3組が関連しているらしく、それぞれ以下のようにConfiguration Bitsを設定する必要がある。
#pragma config SOSCSEL = IO // Secondary Oscillator Pin Mode Select (SOSC pins have digital I/O functions (RA4, RB4))
文字通りSOSCピンをデジタルI/Oにする。
#pragma config JTAGEN = OFF // JTAG Port Enable (JTAG port is disabled)
JTAGポートを使用しない。
#pragma config OSCIOFNC = ON // OSCO Pin Configuration (OSCO pin functions as port I/O (RA3))
OSCOピンをI/O ポートにする。

これでめでたく16個のLEDの点滅ができた。

追記
動画を撮ってみた。

このエントリーをはてなブックマークに追加

Posted under: PIC24FJ64GB002, 作例


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Time limit is exhausted. Please reload CAPTCHA.