STM32G0 - GPIO
汎用入力／出力インタフェース
レビジョン 1.0

STM32 汎用 IO インタフェースのプレゼンテーションへようこそ。
ここでは、汎用入出力インタフェースと、マイクロコントローラ周辺の環境への接続を可能にする方法について説明します。

1

概要

2

• 外部環境とやりとりするためのインタフェースを提供• 完全に設定可能• 割込みおよびウェイクアップ機能を使用• CPUからIOPORTに直接接続

アプリケーション側の利点• マイクロコントローラを直接ウェイクアップ• 幅広い電源電圧をサポート• IOPORTへの直接接続により、高速なトグル／サンプリング応答が可能

STM32 マイクロコントローラの汎用 IO ピンは、外部環境とのインタフェースを提供します。この設定可能なインタフェースは、マイクロコントローラおよびその他のすべての内蔵ペリフェラルが、デジタルとアナログの両方の信号と接続するために使用されます。
アプリケーション側の利点として、サポートされている IO の電源電圧の幅が広いことや、低消費電力モード時に外部からマイクロコントローラをウェイクアップさせることができることが挙げられます。

2

STM32F0との違い

3• GPIOインタフェースはSTM32F0マイクロコントローラに似ていますが、細かい違いがいくつかあります。

リセット状態
Cortexへの接続

LPモードでのプルアップ／ダウン

STM32F0

STM32G0

入力モード
AHBバス

アナログ･モード
IOPORT

いいえはい（PWRコントローラで設定）

この表は、STM32F0 マイクロコントローラとの違いを示しています。
STM32G0 マイクロコントローラがリセット状態のとき、ほとん
どの IO ポートは、エネルギー消費を最小限に抑えるためにアナログモードで設定されます。
Cortex®-M0+ コアは、シングルサイクル I/O ポートバスを介して GPIO レジスタに直接アクセスできます。これにより、出力の状態を変更したり、入力の状態を読み出したりするための低レイテンシのダイレクトパスが提供されます。
IO ピン用に個別に設定されたプルアップ抵抗またはプルダウン抵抗は、低消費電力モードに入っている間アクティブに維持にすることができます。これは PWR モジュールで設定します。

3

主な機能

4

• 最大60*本のI/Oピンの双方向動作• GPIOA～GPIOFと名付けられた最大5つのGPIOポート間で共有され、1ポートあたり最大16本のI/Oピンを持つ• すべて外部の割込みおよびウェイクアップ機能を使用• BSRRおよびBRRレジスタを使用したアトミックなビット単位のセットおよびビット単位のリセット• I/Oピンごとに独立した設定• GPIOxをIOPORTバスに直接接続• ほとんどのI/Oピンが5Vトレラント* ：部品番号とパッケージによって異なる

汎用 I/O は、入力と出力の双方向動作を提供し、I/O ピンごとに独立した設定になっています。これらは、GPIOA～GPIOD、および GPIOF と名付けられた最大 5 つのポート間で共有されます。
それぞれが最大 16 本の I/O ピンをホストします。I/O ポートは、BSRR および BRR レジスタを介したアトミックなビット単位のセットおよびリセット操作をサポートします。
I/O ポートは、シングルサイクル I/O ポートバスに直接接続されています。これにより、2 クロックサイクルごとにピンをトグルするなど、高速な I/O ピンの操作が可能になります。このCortex®-M0+ ポートは CPU 専用であるため、DMA との競合は発生しません。
ほとんどの I/O ピンは、VDDIOx から 1.6 V を超える電圧が供給される場合、5 V トレラントです。

4

動作モード5

アプリケーションのニーズに最適な柔軟な動作モード• 入力モード• フローティング（プル抵抗なし）、プルアップ／プルダウン付きの入力、アナログ入力のモード• 出力モード• プッシュプル、オプションのプルアップ／プルダウン付きオープンドレイン• 設定可能な出力スルーレート速度、最大56MHz• オルタネート機能モード• I/Oポート設定を固定するロック機構（GPIOx_LCKR）

汎用 I/O ピンは、複数の動作モードで使用するように設定できます。
I/O ピンは、フローティング入力による入力モード、内部プルアップまたはプルダウン抵抗を備えた入力モード、またはアナログ入力として設定できます。
I/O ピンは、プッシュプル出力または内部プルアップまたはプルダウン抵抗付きのオープンドレイン出力を備えた出力モードに設定することもできます。
I/O ピンごとに、スルーレート速度を 4 つの範囲から選択できるので、最大速度と I/O スイッチングによる電磁放射の間の最善の妥協点を求めて、アプリケーションの EMI 性能を調整できます。
I/O ピンは、外部環境とのインタフェースとして他の内蔵ペリフェラルでも使用されます。この場合、ペリフェラル用の設定を選択するためにオルタネート機能レジスタが使用されます。
I/O ポートの設定をロックして、アプリケーションの堅牢性を高めることができます。ロックレジスタに正しい書込みシーケンスを適用して設定がロックされると、I/O ピンの設定は、次のリセットまで変更できません。
5

オルタネート機能

6

I/Oピンの構造は、他の内蔵ペリフェラルによってインタフェースとして使用• 複数の内蔵ペリフェラルが同じI/Oピンを共有• USARTx_TX、TIMx_CHx、SPIx_MISO、EVENTOUT、… などが含まれる。

• オルタネート機能マルチプレクサによってI/Oピンに接続されるペリフェラルを選択• 特定のI/Oピンには、一度に1つのオルタネート機能しか接続できない• GPIOx_AFRL およびGPIOx_AFRH レジスタによって設定可能（x = A..D、F）
AF0
AF1
AF2ピン x（0…15）

AF7

USART、タイマ、SPI などのいくつかの内蔵ペリフェラルは、外部環境とインタフェースを取るために同じ I/O ピンを共有します。
ペリフェラルはオルタネート機能マルチプレクサを通じて、一度に 1 つのペリフェラルのみが I/O ピンに接続されるように設定されます。もちろん、この選択は、アプリケーションの実行中にGPIOx_AFRL および AFRH レジスタを介して変更できます。

6

IOピン設定
GPIOx_MODER[MODEi]

GPIOx_OTYPER[OTi]0b00（入力）

0b01（出力）0（プッシュプル）1（オープンドレイン）

0b10（オルタネート機能）

0（プッシュプル）1（オープンドレイン）

0b11（アナログ）x

GPIOx_PUPDR[PUPDi]

7

I/O 設定0b00（プルアップ／プルダウンなし）

入力、フローティング

0b01（プルアップ）

入力、プルアップ0b10（プルダウン）

入力、プルダウン0b00（プルアップ／プルダウンなし）

GP 出力、プッシュプル、フローティング0b01（プルアップ）

GP 出力、プッシュプル、プルアップ0b10（プルダウン）

GP 出力、プッシュプル、プルダウン0b00（プルアップ／プルダウンなし）

GP 出力、オープンドレイン、フローティング0b01（プルアップ）

GP 出力、オープンドレイン、プルアップ

0b10（プルダウン）

GP 出力、オープンドレイン、プルダウン0b00（プルアップ／プルダウンなし）

AF 出力、プッシュプル、フローティング0b01（プルアップ）

AF 出力、プッシュプル、プルアップ

0b10（プルダウン）

AF 出力、プッシュプル、プルダウン0b00（プルアップ／プルダウンなし）

AF 出力、オープンドレイン、フローティング0b01（プルアップ）

AF 出力、オープンドレイン、プルアップ

0b10（プルダウン）

AF 出力、オープンドレイン、プルダウン

0bxx

アナログ入力IO ピンの設定は以下の 3 つのレジスタを通して行われます：
GPIOx_MODER、GPIOx_OTYPER、GPIOx_PUPDR。
• レジスタ GPIOx_MODER は、IO ピンの機能を選択しま
す：デジタル入力、デジタル出力、デジタルオルタネート機
能、またはアナログ。
• レジスタ GPIOx_OTYPER は、ピンが出力の場合に関係します：オープンドレイン操作かプッシュプル操作を選択します。
•• レジスタ GPIOx_PUPDR は、ピンがアナログモードで設定されていない場合に関係します。プルアップ抵抗とプルダウン抵抗を有効／無効にします。

7

再配置可能なGPIO

8• PA12とPA11の2つのGPIOは、それぞれPA10とPA9によって再配置できます。これにより、ピンがパッケージでネイティブに使用できない場合にそれらの機能にアクセスできます。
• 再配置は、SYS_CFGレジスタを介して処理されます。
上面図

PA9 と PA10 の 2 つのピンによって、それぞれ PA11 と PA12の 2 つの GPIO を再配置できます。これにより、ピンがパッケージでネイティブに使用できない場合にそれらの機能にアクセスできます。
この再配置により、PA9 と PA10 のピンに関連するオルタネート機能を使用できます。
この再配置は、パッケージが PA9 と PA10 のピンを独立したピンとしてサポートしている場合にも適用されることに注意してください。

8

I/Oピンに関する特筆事項

9リセット時はデバッグ･ピンのみがAFモードを維持• リセット中とリセット後は、オルタネート機能はアクティブではない• I/Oポートのデフォルト状態はアナログ･モード• リセット中およびリセット後の消費電流を節約（シュミット･トリガはオフ）• SWDデバッグ･ピンのみがAFプルアップ／プルダウン設定を維持• PA13：SWDIO• PA14：SWCLK（BOOT0）

リセット中およびリセット後は、オルタネート機能はアクティブではなく、オルタネート機能モードではデバッグピンのみを使用できます。
ピン PA14 は BOOT0 機能と共有されています。デバッグデバイスは、ブートモードを選択する BOOT0 端子の値を操作できるため、注意が必要です。

9

HSE/LSIピンに関する特筆事項

10• オシレータ･ピンを標準I/Oピンとして使用可能• オシレータがオフにされている場合、関連ピンはI/Oピンとして動作• HSE / LSEの両方に対して有効• この状態がリセット後のデフォルト• ユーザ外部クロック･モードが使用される場合、2番目のピンはI/Oピンとして動作• OSC_INまたはOSC32_INのみをクロックソースとして使用• OSC_OUTおよびOSC32_OUTは標準I/Oピン

負荷コンデンサ

外部ソース

外部オシレータがオフにされている場合、このオシレータに関連するピンは標準 I/O ピンとして使用できます。これは、デバ
イスリセット後のデフォルト状態となります。
水晶発振器の代わりに外部クロックソースが使用されている場
合、関連する OSC_IN ピンのみがクロックに使用され、OSC_OUT ピンは標準 I/O ピンとして使用できます。

10

複数電源I/O ピン

11• 一部のI/Oピンは異なる電源から供給可能• 新しいI/Oピン電源供給スキームにより、新規のI/Oピン構造と名称を導入• FT（5Vトレラント）の定義は新規の略称サフィックスで拡張される• 最大VINは、特定のI/Oピンの構造に接続された最小電源電圧によって定義される• たとえば、FT_aピンに対しては、VIN < min (VDD, VDDA) + 4.0Vの式が適用される
略称サフィックス説明例_f

VDDから電源供給を受けるFm+機能のI/O 高速モード･プラス（Fm+）では最大1Mbit/sのビットレートを実現し追加の出力駆動I/Oを搭載

FT_f_aVDDAから電源供給を受けるアナログ･スイッチ機能の I/O

FT_a_cI/O、USB Type-C PD対応

FT_c

I/O ピンの新しい複数電源供給スキームにより、新規の I/O ピン構造が導入されています。これまで使用されてきた FT（5 Vトレラント）および TT（3 V トレラント）という名称は、FT と TTの各 I/O ピンに対する別電源を強調する略称サフィックスで拡張されています。
Fm+ 対応のピンに対してこれまで使用されてきた FTf という名称は FT_f に変更されました。サフィックス _a は、アナログ電源から供給されるピンを示します。サフィックス _c は、USB
Type-C Power Delivery をサポートするピンに使用されます。
各 I/O ピンに対する絶対最大定格は、各 I/O ピンにリストアップされた電源の中の最小電圧によって定義されます。

11

低消費電力モード

12I/O の説明

モード
RUN

アクティブ。

SLEEP

アクティブ。

低消費電力RUN

アクティブ。

低消費電力
SLEEP

アクティブ。

STOP 0

アクティブ。

STOP 1

アクティブ。

STANDBY

内部プルアップ、プルダウン、フローティングの入力としてのみ。
終了すると設定が失われます。

SHUTDOWN
リセット

マイクロコントローラのリセット中は強制的にアナログ入力モードになります。

STANDBY と SHUTDOWN を除くすべてのモードで I/O ピンはアクティブに維持され、使用可能な設定は、内部プルアップ／プルダウン抵抗付きの入力とフローティング入力のみとなります。
SHUTDOWN モードを終了すると、I/O 設定は失われます。
マイクロコントローラのリセット中には、I/O ピンは強制的にアナログ入力モードとなります。

12GPIOに関するSTM32G0の制限

13• デバイスの一部のGPIOでは、他の内部機能にリンクされた機能が制限されている。
• UCPD CCライン：これらのラインは出力速度が制限されます。
• UCPD DBライン：これらのIOの電圧レベルは、CCラインのプルダウンを有効にする可能性があります。この状況を克服するために、ユーザがその影響を確認できないようにするため、
SYSCFGレジスタに2つのSTROBEビットが存在します。
• VBATドメインのGPIO：他のデバイスと同様に、これらのIOの駆動電流は制限されています。

VBAT ドメインの GPIO：PC13、PC14、および PC15 は電源スイッチを経由して接続されます。スイッチに流すことができる電流は限られているので（3 mA）、出力モードでの GPIO
PC13～PC15 の使用には制限があります。
• 最大負荷 30 pF で最大速度が 2 MHz を超えてはなりません• これらの GPIO を電流ソースとして使用することはできません（たとえば、LED を駆動するなど）。

13