2010年11月6日土曜日

PIC24FJ64GA002を弄る。02 - ピン割付

PIC24FJ64GA002にはピンごとにどの機能を使うか指定できます。このピンはUARTでここはSPIでここはPWMみたいに手軽に割り当てができます。いままで16F88などであった「UART使ったらSPI使えねぇじゃん」ってことがなくなって非常に便利になりました。まあ外部回路を追加して88UARTSPIを切り替えて使うマゾな人には必要ないかも?またピンを自由に割り付けられるということは、ハンダ付けでめんどくさいジャンプを、うまく行けば0にすることが出来るかもしれません。
ピン割り当てのやり方は簡単。

まず使いたい機能のピン配置を決め、
入出力に応じてTRISレジスタを設定します。
例:TRISB = 0b1111111110111111;

*デジタル入力として使用する場合、デフォルトでアナログ入力となっているので、
デジタルにしてやる必要があります。この設定は
デジタル入力にしたいピンの番号に対応する
AD1PCFGレジスタのビットを1にすればOKです。

次に機能を実際に有効にします。
◯入力の場合
目的の機能のレジスタに使用したいピンの番号を入れます(RP5なら5を入れる)
例: RPINR18bits.U1RXR = 8;// UART1 RX input = RP8

出力の場合
レジスタと入れる値の関係が入力の場合とは逆になるので注意が必要です。
つまり、レジスタはピンごとに用意されています。
例えばRP8,9はRPOR4というレジスタで設定します。
今度はここに使用したい機能の値を入れます。機能と値の関係は以下の通りです。
 例:RPOR4bits.RP9R = 3;//UART TX output = RP9

最後にその機能の設定を行ないますが、これは今回は割愛します。

2 件のコメント:

匿名 さんのコメント...

レポートの参考になりました。
ありがとうございますm(._.)m

北裏@日暮里 さんのコメント...

当方は、mikroBASIC で悩んでいます。
RPOR4bits.RP4R=3 で文法エラーです。
RPOR4.RP4=3 で文法エラーは消えるのですが、
何かアドバイスはありませんでしょうか