• 締切済み

AVRマイコンの未使用ピンの処理について

全くのマイコン初心者です。AVRマイコンの未使用ピンの処理について教えて下さい。 未使用ピンは基本的に出力に設定しておけばいいというのは判ったのですが、 1,RS232CのRXD、TXDピンはIN或いはOUTどちらに設定しておけば良いのか? 2,ISPのSCK,MOSI,MISOはRUN中は使いませんが、これもIN、OUTどちらに設定しておけば良いのか? 3,ADCを使わない場合、AVREF,AVCCピンはどう処理するのか? 以上、いろいろ調べたのですが、判りません。 よろしくお願いいたします。

みんなの回答

  • ketchan7
  • ベストアンサー率35% (51/142)
回答No.2

> プルアップは入力に関してだけではないのですか? 出力にプルアップを使用しない場合にHを出力すると、出力最終段のFETがOFF状態つまりオープンドレインとなります。 この場合ハイインピーダンスとなりますで、出力にもプルアップが必要となります。 通常内蔵プルアップを使用するので必要ないように思われるかもしれませんが、リセット直後からポートの設定が完了するまでは上記の状態となります。 > UARTを使用する場合は、どちらにすべきなのでしょうか? 必然的にTXDは出力・RXDは入力となりますが、IOポートの設定は無効になると思いますので気にする必要はないと思います。 どうしても気になる場合、またはプログラムミスでデータ衝突が懸念される場合は両方入力ポートに設定しておくと安心ですね。 またTXD・RXDは通常はラインドライバ・レシーバを使用しますので、この場合どちらの端子もハイインピーダンスにならないのでプルアップ等の処理は原則的には不要です。ラインドライバ・レシーバの外部側は終端抵抗をつけると信頼性が向上します。 > 入力=出力のプログラムを入れて、プルアップしていない端子にさわ ただけで・・・ 一番動作が不安定なのは電源投入後、リセットが解除されまでの期間ですが、ノイズが多い環境では未使用かつ端末未処理のピンがある場合は、浮遊容量(ストレーキャパシティ)によりノイズのAC成分がマイコン内にも侵入します。 これにより電源投入時からのマイコンが暴走する懸念があります。 電源投入時にかかわらず、常にハイインピーダンスになることがないように設計するとこのような懸念はなくなります。 蛇足とは思いますが、終端抵抗の目的は信号の反射の抑制、プルアップ抵抗も電流の吐き出し等以外、終端抵抗のときと同様の効果と、ストレーキャパシティ効果を抑制する効果があります。 とどのつまり、プルアップ抵抗を内蔵している場合でも、プログラムで使用/不使用を選択できるようになっている場合は外部にもプルアップ抵抗をつけておくとノイズ耐性が向上します。 さらに蛇足とは思いますが、未使用ピンがアクティブHかLでプルアップとプルダウンを適切に選択してください。 たとえば、Hアクティブ割り込み入力端子をプルアップすると四六時中割り込み割り込み要求状態となってしまいます。 あと、GNDはできるだけ太く広くをこころがけるとノイズ耐性・システムの安定性が向上します。

kamocat
質問者

お礼

早速ご丁寧にありがとうございました。よーく判りました。 1、プルアップの件、CMOSICを使う機会が有るのですが、IN側は当然ですが、OUT側は通常オープンのままで問題ないので、それとごっちゃにしていました。 2、終端抵抗の件も、考えもしませんでした。485必要、232C不要と何となく覚えていて、意味を深く考えておりませんでした。UART端子-ラインドライバ間のレベルを考えると、そーかー!と。 いろいろほんとに超初心者の愚問につきあって下さり感謝致します。 有り難うございました。まだまだ判らないことばかりですので、また愚問の連発につきあって頂けると幸いです。よろしくお願いいたします。

すると、全ての回答が全文表示されます。
  • ketchan7
  • ベストアンサー率35% (51/142)
回答No.1

未使用ピンの基本的な考え方は、ハイインピーダンスになることを避け、かつ電力消費が最小限であることですね。 たとえば、未使用IOポートを出力に設定してプルアップした場合は出力はHにしておく等。 本題に入ります。 > 1,RS232CのRXD、TXDピンはIN或いはOUTどちらに設定しておけば良いのか? UARTが無効になっていればどちらでもかまいませんが、いずれの場合もプルアップはすべきです。 > 2,ISPのSCK,MOSI,MISOはRUN中は使いませんが、これもIN、OUTどちらに設定しておけば良いのか? 1と同じですね。 > 3,ADCを使わない場合、AVREF,AVCCピンはどう処理するのか? ともにVccへ接続しておけば問題ありません。 AVREFへは1/2Vccが好ましいこともあります。 高い信頼性が必要な用途には別の視点からの注意点もありますが、この点は省略します。

kamocat
質問者

補足

ketchan7様 早速有り難うございます。 まだ私がよく判っていないので、追加質問させて頂きます。どうかよろしくお願い致します。 1、 >未使用IOポートを出力に設定してプルアップ・・・ プルアップは入力に関してだけではないのですか? 2、UARTを使用する場合は、どちらにすべきなのでしょうか? 3、今回AVRを使う目的はちょっとした機械の制御です。 >高い信頼性が必要な用途には別の視点からの注意点・・・ この点も是非ご教授願えませんでしょうか? 入力=出力のプログラムを入れて、プルアップしていない端子にさわっただけで、出力が不安定になるのを観ると怖いものがあります。 いろいろ済みませんが、ご教授よろしくお願いいたします。

すると、全ての回答が全文表示されます。

関連するQ&A