PIC24FのI/Oピン


【I/Oピン】

 少ピンのPIC24Fファミリの各入出力ピンはいろいろな用途に多重使用されるようになっています。
その内部構成は下図のようになっています。



 基本的な動作はこれまでのPICと同じで、ディジタル入力の場合には入力にも出力にも使えます。
この入出力の切り替えはTRISレジスタで行いますが、このTRISレジスタの各ビットに対応するのが
図中のTRIS Latchのフリップフロップになります。

 PIC24Fファミリでは、これまでのPORTレジスタにLATレジスタが加えられて、入出力が2種類に
なりました。出力の場合には、どちらに出力してもまったく同じ動作で、最終的にPORT Latchに
書き込み、出力モードになっていればそれがピンに出力されます。

 入力の場合は異なっていて、PORTレジスタ入力は、これまでどおりピンの状態を直接入力しますが、
LATレジスタ入力は、PORT Latchの状態を読み込むだけで外部ピンの状態は読み込みません。

 出力のドライブは、これまでと同じプッシュプル構成ですので、最大25mAの電流を吸い込むことも
吐き出すこともできます。
 他の内蔵モジュールで入出力ピンを使用しているときは、汎用の入出力ピンとしては使えなくなります。
 さらにアナログ入力ピンと共用になっているピンは、リセット後のデフォルト状態ではアナログ入力
ピンとなっていますので、デジタルピンとして使うためには、ADxPCFGレジスタを使ってアナログ入力
からデジタルに切り替える必要があります。

【入出力ピンのインターフェース仕様】

 PIC24Fファミリは、標準の電源電圧が3.3V仕様になっていて、入出力ピンのインターフェース仕様は
下図に示すような電圧となっています。この図からわかるように、アナログ入力と兼用になっていない
デジタル専用の入力ピンは、5.5Vまでの入力電圧に耐えられるようになっていますので、これまでの
5V電源のICと直接接続して入力することができます。





 逆に出力の場合は電源が3.3VですからHighの場合でも2.6Vが標準電圧です。この電圧の場合、
出力する相手が5V電源のとき、入力がTTLインターフェースの場合には大丈夫ですが、シュミット
トリガ入力の場合には、High電圧が不足してしまいます。
 このような場合には、PIC24Fファミリは大部分の出力ピンがオープンドレインの回路構成にすること
ができますので、下図のようにPIC側をオープンドレインとして外部プルアップ抵抗で相手の電圧に
プルアップすることで、5Vインターフェースでも問題なくインターフェースすることができます。
オープンドレインの制御はODCxレジスタで行うことができます。





【入出力ピン用制御レジスタ】

PIC24Fファミリの入出力ピンに関連する特殊機能レジスタ(SFR)は下図のようになります。
図のように入出力ピンの入出力に直接関連するSFRには下記があります。

  TRISxレジスタ : 入出力方向設定レジスタ
  PORTxレジスタ : 入出力ポートレジスタ
  LATxレジスタ  : 出力ラッチレジスタ
  ODCxレジスタ  : オープンドレイン設定レジスタ
              (注)xはA,B,Cなどのポート名を、nは1,2の数字を表す。
各レジスタの1ビットが1ピン分の制御ビットになります。



 これらの各レジスタは、全ビットが実装されているわけではなく、デバイスごとに実装されている
ビットが異なっています。したがって、使うデバイスのデータシートで、どのビットが存在するかを
確認して使う必要があります。
 通常の使い方ではTRISレジスタで入出力モードを決めてから、慣用的に、出力はLATレジスタで、
入力はPORTレジスタで行います。LATレジスタで入力をすると、単に内部の出力レジスタの値を
読むだけで、ピンの状態入力にはならないので注意が必要です。

(1) TRISxレジスタ
  ピンを入力にするか出力にするかを決定するレジスタで、このレジスタのビットが1の場合は
  対応するピンが入力に、0のときは出力に設定されます。
  リセット後は、全ピンが入力とされます。
(2) PORTxレジスタ
  入出力ピンの出力用ラッチレジスタです。ピンへ出力するとこのPORTxレジスタに書き込まれ、
  それがドライバ経由でピンに出力されます。入力の場合には、ピンの状態が直接読み込まれます。
(3) LATxレジスタ
  PORTxレジスタと同じレジスタを指します。出力の場合はPORTxレジスタを制御するので同じですが、
  LATxレジスタの入力は、PORTxレジスタそのものの状態を読み込み、入出力ピンの外部入力を
  するわけではありません。
(4) ODCxレジスタ
  ピンをオープンドレインにするかしないかを決めるレジスタで、このビットを「1」にすると対応する
  ピンがオープンドレイン構成となります。
  リセットでは0になりますので、リセットで通常のトーテンポール構成の出力構成となります。




   目次ページへ