【組み込みマイコン基礎】GPIOとは?仕組み・設定・注意点までわかりやすく解説

今回は、組み込みマイコン開発の基礎として GPIO(汎用入出力) について紹介します。

GPIOはその名の通り、マイコンのピンを 入力出力 のどちらとしても使える便利な機能です。 この記事では、GPIOの内部構造、設定方法、入力・出力の動作、注意点までまとめて解説します。

スポンサーリンク

GPIOとは?基本の役割

GPIO(General Purpose Input/Output)は、マイコンに備わっている 汎用的な入出力ピン のことです。

  • 入力モード:外部の電圧変化を読み取る
  • 出力モード:マイコンから電圧を出して外部を制御する

用途が幅広く、スイッチ入力、LED点灯、センサー制御など、あらゆる場面で使われます。

GPIOの内部構造(MSP430を例に)

ここでは、Texas Instruments の MSP430 のデータシートを参考に、GPIOの内部構造を簡単に見ていきます。

実際の回路図は複雑ですが、重要なのは「どう制御するか」です。
GPIOは、マイコン内部の レジスタ を書き換えることで設定します。

GPIO設定に使う4つのレジスタ

GPIOの設定は、主に次の4種類のレジスタで行います。

1. Direction(方向設定)

  • ピンを 入力 にするか 出力 にするかを決める

2. Output(出力値)

  • 出力モードのとき → このレジスタを 1 にすると電圧を印加(HIGH) → 0 にするとLOW

3. Select(機能選択)

GPIOピンは、GPIO専用ではなく、

  • ADC(A/Dコンバータ)
  • UART
  • I²C など、他の機能(ペリフェラル)と兼用されていることがあります。

Selectレジスタで

  • GPIOとして使うのか
  • 別の機能として使うのか を選択します。

4. Enable(内部抵抗の設定)

GPIOピンには内部に抵抗があり、これを

  • プルアップ
  • プルダウン
  • フローティング(未接続) のいずれかに設定できます。

● プルアップ

抵抗を電源側につなぐ → ピンは基本的にHIGH

● プルダウン

抵抗をGND側につなぐ → ピンは基本的にLOW

● フローティング

どこにもつながない状態 → ノイズを拾って誤動作しやすいため、基本的に避ける

プルアップ・プルダウンの使い方は奥が深いので、別記事で詳しく解説します。

GPIO入力の仕組み:しきい値で割り込みが発生

GPIOを入力として使う場合、マイコン内部で決められた しきい値電圧 を基準に動作します。

例:MSP430(電源3V時)

  • 上昇エッジ(LOW → HIGH)で割り込み → 約 1.5〜2.1V を超えた瞬間に発生
  • 下降エッジ(HIGH → LOW)で割り込み → 約 0.75〜1.65V を下回った瞬間に発生

このように、GPIO入力は電圧の変化を検出して割り込みを発生させる仕組みになっています。

GPIO出力の注意点:電流はあまり流せない

GPIOを出力にした場合、マイコンと同じ電圧を出力できますが、 流せる電流には限界があります。

一般的には 数mA〜数十mA程度。 MSP430の場合も、良くて 50mA程度 です。

● LED程度ならOK

10mA程度なので問題なし。

● モーター・ソレノイド・リレーはNG

数百mA〜数Aが必要 → GPIOでは絶対に足りない。

無理に直接つなぐと

  • 電源電圧が落ちる
  • マイコンがリセットする
  • 最悪、マイコンが破損する といったトラブルにつながります。

● 対策

大電流が必要な部品は、

  • トランジスタ
  • MOSFET
  • リレー などを介して制御するのが基本です。

まとめ

最後に、GPIOのポイントを整理します。

  • GPIOは 入力出力 の両方で使える
  • 設定は Direction / Output / Select / Enable の4つのレジスタで行う
  • 入力時は しきい値電圧 を基準に割り込みが発生
  • 出力時は 流せる電流が小さい ため、大電流デバイスは直接駆動しない
  • 内部抵抗(プルアップ・プルダウン)の設定も重要

GPIOはマイコン制御の基本中の基本なので、ぜひ押さえておきましょう。

error: コンテンツ保護のため右クリック使用禁止