• 締切済み

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

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

    AVRマイコンの未使用ピンの処理について AVRマイコンの未使用ピンをアートワークの関係上、GNDに落としたいのですが(ピン設定は『入力、内部プルアップ無し』)、何か問題はございませんか? よろしくお願い致します。

  • マイコン 未使用ピンについて

    マイコンのGPIO未使用ピンについて教えてください。 データシート上、該当ピン(I/O)が内蔵プルアップと記載されています。 その場合、このピンを使用しない場合はオープンで良いでしょうか。 また出力ピンで初期値がLowのピンがあります。ここもオープン処理でよいのでしょうか。

  • atmegaxマイコンのPDI端子

    現在Atmel Studio6.2 + JTAGICE3でプログラミングを行っています。ATxmega64Aマイコンを使用してプログラミングを行っていこうと思っているのですが、ファームウェアの書き込みやデバッグなどを今まで使用していたATmega88マイコンなどではmiso,mosi端子などを使用して行っていましたが、ATxmega64AマイコンにはPDI,PDO端子というのが設けられていますが、 この端子だけでJTAGICE3でのファームウェアの書き込みやデバッグは可能でしょうか? miso,mosiの端子は書き込みやデバッグでは必要なくなり、SPI通信専用端子として使用できるようことでしょうか? どうぞ、ご教示頂きますよう、よろしくお願い致します。

  • AVRのUSART接続で困っています。

    AVRのUSART接続で困っています。 AVR初心者です。Atiny2313に送受モニタ用のLED2個と秋月のFT232Rシリアル-USB変換モジュールのみを接続した簡単な回路を組み、双方のTXD,RXD同士を交差接続し、PCとUSART経由でデータ転送をする実験をしています。変換モジュールの電源はUSBバスから、AVR側の電源は安定化電源またはモジュール経由でUSBバスから供給しました。データの送受信自体は何の問題もないのですが、わからないことがありご教示下さい。 1)変換モジュールのTXD,RXDをAVR側のRXD,TXDに接続しただけで、AVRに電源が供給されてしまい、わざわざ別電源を供給しなくともAVRが勝手に動いてしまいます。各部の電圧は正規に電源を供給した時よりも0.5V程度低めにでますが、AVR自体の動作はUSARTを使う使わないにかかわらず(例えばLEDポートの初期化のみでも)正常です。AVR側の配線とソフトは何度もチェックして間違いないと確信しています。こんなものなのでしょうか? 2)USART初期化ルーチンで教科書どおり下記の様に書きました。デバッガで追跡すると最初はUBRRHにゼロが入るのですが、なぜか6行目を実行するとUCSRCの内容と同じものがUBRRHにも入ってしまいます。 ldi r16, 0 out UBRRH, r16 ldi r16, 0x19 ;bau rate 2400 at 1MHz out UBRRL, r16 ldi r16, 0b00000110 ;async, no parity out UCSRC, r16 ;1 stop bit data 8bit いろいろ検討したところ、UCSRCのMSBを1(ldi r16, 0b10000110)としてやるとUBRRHにははいらないことがわかりました。ATMELのマニュアルではこのビットはリザーブなおでさわるなとありそれ以上の説明はありません。何かおかしなことをやっているのでしょうか? この簡単な6行だけのプログラムですら1)、2)の問題が起きます。一体何が悪いのか切り分けができず困っています、アドバイスをお願いします。

  • IAR社のAVRマイコン用の無償版コンパイラ

    最近、AVRマイコンを使用し始めたのですが、 訳あってIAR社のコンパイラを使用しようと考えています。 試しに、IAR社のAVRマイコン用の無償版コンパイラを ダウンロードしました。 コンパイルすると、実行形式ファイルが、3個生成されました。 test.hex(おそらく本体), test_data.hex, test_eeprom.hexです。 ISPを使用してダウンロードしようとしたのですが、 ファイルを3つもダウロードできないようです。 試しにtest.hexをダウンロードしましたが、 動作しませんでした。 何か、実行形式ファイルの出力設定などがあるのでしょうか? また、簡単なサンプルプログラムなどお持ちの方いらっしゃらないでしょうか? マイコンは、Atmega128です。 ご存知の方がいらっしゃいましたら、ご教授お願い致します。

  • マイコンのピンの機能切り替え

    マイコン初心者です。 マイコンの各ピンには複数の機能が備わっているようですが、普通はデジタル信号を扱っているピンを、アナログ信号を受け付けるようにするには、一般論でよいのですが、どうすればよいのでしょうか? 例えば PIC16F628A というマイコンでは、第一ピンは RA2/AN2/VREF と3つの機能を持っていて、データシートではより詳しく RA2 はbidirectional I/O port, AN2 は Analog comparator input, VREFは Vref output と書かれています。 例えばCMCON レジスターを使っていろいろな設定をしてコンパレーター・モジュールを使う準備をすると、自動的にアナログを受け入れるピンになるのでしょうか?それともCMCON レジスター設定前にアナログで使用したいことを何かほかのレジスターで設定するのでしょうか? 詳しい方、どうぞよろしくお願いします。

  • シリアル通信について

    PICの出力をシリアル出力(DB9のオス型)にしたいんですが、どのピンをどのピンに接続していいかがわかりません。 レベル変換には、MAX232の互換品のADM3230を使用していて、 14(T1out)→2(RXD) 7(T2out)→8(CTS) 13(R1IN)→7(RTS) 8(R2IN)→3(TXD) 左がADM3230で、右がDB9ピンの番号です。これであっていますでしょうか?いろんなページみても、いろいろ違っててわからないです>< どなたかよろしくお願いしますm(__)m

  • マイコンのインターフェイスについて

    今現在、下記のような回路の為の部品選定をしているのですが、、、 アナログ電圧入力(DC) → ADC(分解能24bit) → マイコン(H8)にて演算処理 → DAC(電流出力) ADC →(1)→ マイコン 上記(1)のインターフェイスのことについて質問させていただきます。 24ビットの高分解能ADCが実装されているマイコンが見つからなかったため 現在外付けのADCを選定しております。 それで、いくつかのADCのデーターシートを参照すると、 I2C準拠のシリアルインターフェイスが付いているものや、SPIのものやら あるのですが、それらシリアルインターフェイスがついていないADC 例えば↓ http://www.analog.com/jp/analog-to-digital-converters/ad-converters/AD9283/products/product.html などはデーターシートの出力にはTTL、CMOSコンパチと謳われておりますが こういったADCとマイコンを接続する時はマイコン側のインターフェイスは I/Oポートを使用するのでしょうか? とんちんかんなことを言っていたら申し訳無いのですが、 宜しくお願いいたします。

  • h8/3694fで文字送信のために作った回路について不具合

    h8/3694fのシリアル通信で文字を送信するための回路(マイコンでの書き込みはマザボでやるんで送信のみ)を作成したんですが送信できません。 回路はVccとAVccに5V(GNDもきちんとつないでいます)を入れて、RXD、TXDおよびGNDをrs232cに接続しているだけの簡単な回路です 一応、sの文字を連続的に送るプログラムを組んで試してみたんですが送信されませんでした。(実行中マイコンのピンに触れたときsでなくFという文字がかわりに連続的にでましたが、ビットレートはあっているので回路がおかしいんだと思います) もしどこがいけないかわかれば教えていただきたいんですが。 よろしくお願いいたします

  • マイコン未使用端子の処理について。

    次の回路1、2の未使用端子の処理を考えた場合、 回路1ではport1を入力に設定すれば良いと思いますが、 回路2ではport2を  (1) 入力に設定する。  (2) 出力に設定し"L"レベル出力とする。   どちらの処理が良いのでしょうか(▽はLEDです)。 目的は消費電流の低減です。 通常、回路1でport1を出力で"L"レベルに設定した場合、 port1の電位とGNDで電位差が発生し電流が流れる可能性があるので、 推奨できないと思いますが、 回路2で考えた場合、多少の電差(LEDの順方向電圧以下)であれば、 LEDがハイインピーダンス状態となる(←ほんと??)ような気がするため、 電流はほとんど流れないと思って質問しました。。 回路1  | ̄ ̄ ̄ ̄|port1  |マイコン | ̄ ̄|  |       | 抵抗R1  |____|   |             GND  回路2  | ̄ ̄ ̄ ̄|port2  |マイコン | ̄ ̄|  |       |  ▽  |____|   |             抵抗R1              |              GND ※▽:LED