STM32H7 - GPIO
汎用入出力インタフェース

1.0版

STM32汎用I/Oインタフェースのプレゼンテーションにようこそ。
汎用入出力インタフェースと、それがSTM32マイクロコントローラの周辺環境に対するコネクティビティを可能とする方法の説明を行います。

1

概要

2

• 外部環境との相互作用に対するインタフェースを提供• 完全に設定可能• 割込みとウェイクアップの機能• AHBブリッジに直接接続

アプリケーション側の利点• マイクロコントローラを直接ウェイクアップ• 広範囲な電源電圧に対応• AHBへの直接接続により高速なトグル反応が可能

STM32製品の汎用I/Oピンは、外部環境とのインタフェースを提供します。この設定可能なインタフェースは、MCUとその他すべての搭載ペリフェラルによって、デジタルとアナログの両方の信号を用いたインタフェースに使用されます。
アプリケーション側の利点の中には、広範囲なI/O電源電圧対応や、MCUを低電力モードから外部的にウェイクアップ可能であることなどが含まれます。

2

主な機能

3

• 最大168*本のI/Oピンの双方向動作• GPIOA～GPIOKという名称の11つのGPIOxポートで共有され、ポート当たりのI/Oピンは最大16本• すべて外部割込みとウェイクアップの機能に対応• BSRRレジスタとBRRレジスタを用いたビット単位のセット／リセット操作• 各I/Oピンを独立に設定可能• リセット後のI/Oピンはアナログモード• GPIOレジスタ･インタフェースはD3 AHB4バスに直接接続• ほとんどのI/Oピンは、VDDが1.62V以上であれば5V耐圧*：製品型番とパッケージによります

汎用I/Oポートは、入力メモリマップに従った双方向動作を行います。
I/OポートはAHBバスに直接接続されています。これにより、I/Oピンは独立に設定可能であり、トグルや出力など、I/Oピンの高速動作が可能です。GPIOA～GPIOKという名称の11ポートに共有されており、それぞれのポートに最大16本のI/Oピンがあります。リセット後には、消費電力を低減するために、すべてのGPIOがアナログモードにセットされます。
I/Oポートは、BSSRRレジスタとBRRレジスタを用いたビット単位のセット／リセット操作に対応しています。これにより、2クロックサイクルごとにI/Oトグルが可能です。
ほとんどのI/Oピンは、VDD電源が1.62V以上であれば5V耐圧です。

3

動作モード

4

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

汎用I/Oピンは、いくつかの動作モードに設定可能です。
I/Oピンは、フローティング入力モード、内部プルアップ／プルダウン抵抗付きの入力モード、またはアナログ入力に設定可能です。
さらに、I/Oピンは、内部プルアップ／プルダウン抵抗付きのプッシュプル出力モード、またはオープンドレイン出力モードに設定することもできます。
最高速度とI/Oスイッチングによるエミッションのバランスや、アプリケーションのEMI性能において最適に調整するために、それぞれのI/Oピンに対して、スルーレートは4種類の異なるレンジから選択可能です。
I/Oピンは、その他の搭載ペリフェラルが外部環境とインタフェースするためにも使用されます。オルタネート機能レジスタは、この場合のペリフェラルの設定選択に用いられます。
I/Oポートの設定をロックして、アプリケーションの堅牢性を向上することができます。一旦、ロックレジスタに正しい書込みシーケンスを適用して設定をロックすると、I/Oピンの設定は次のリセットまで修正できなくなります。

4オルタネート機能

5

I/Oピンの構造はインタフェースとして他の搭載ペリフェラルから使用• 複数の搭載ペリフェラルが同じI/Oピンを共有• USARTx_TX、TIMx_CHx、SPIx_MISO、EVENTOUTなど• オルタネート機能マルチプレクサがI/Oピンに接続されるペリフェラルを選択• ある特定のI/Oピンには、一度に1つのオルタネート機能のみ接続可能• GPIOx_AFRLレジスタとGPIOx_AFRHレジスタにより設定可能

AF0
AF1
AF2
ピン x（0～15）

AF15

外部環境とのインタフェースのため、USART、タイマ、SPIなど複数の内蔵ペリフェラルが同じI/Oピンを共有します。
1本のI/Oピンに対して一度に接続されるペリフェラルは1つのみで、ペリフェラルはオルタネート機能マルチプレクサを通じて設定されます。また、この選択は、GPIOx_AFRLレジスタとGPIOx_AFRLレジスタを通じて、アプリケーションの動作中に変更可能です。

5

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

6

リセット時はデバッグ･ピンのみがAFモードを維持• リセット中とリセット後は、オルタネート機能は有効ではない• I/Oポートのデフォルト状態は入力モード• 消費電流を削減するためI/Oはアナログ･モードに設定可能• AFプルアップ/プルダウン設定では、JTAG/SWDデバッグ･ピンのみが維持される• PA13：JTMS/SWDIO• PA14：JTCK/SWCLK• PA15：JTDI• PB3：JTDO• PB4：NJTRST

リセット中とリセット後は、オルタネート機能は有効ではありません。デバッグピンのみAFモードで維持します。
AF設定モードで維持されるJTAG/SWDデバッグピンは、このスライドにリストアップされています。

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

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

OSC32_IN

OSC32_OUT
OSC32_IN

OSC32_OUT

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

7

I/O補正セル

8• このセルは、I/O転流スルーレートを制御するために使用される• 2つの構成モードが使用可能:• 電流PVT(プロセス電圧温度)のセルで計算された最適な構成コードを使用• このコードが生成され、CSIクロックが有効でセルが有効な場合にREADYフラグがセット• ソフトウェア･プログラム･コードを使用して、I/Oスルーレートをコントロール• I/O補正セルは、1.62~2.0V、2.7~3.6Vの2つの電圧範囲を備える

このセルは、電源装置のI/Oノイズを低減するために、I/O転流スルーレート(tfall/trise)を制御するために使用されます。
セルは2つのブロックに分割されます。最初のブロックは、電流プロセス電圧温度(PVT)に最適なコードを提供します。このブロックに格納されているコードは、SYSCFG_CCSRレジスタのREADYフラグが設定されている場合に読み取ることができます。
2番目のブロックは、I/Oスルーレートを制御します。ユーザは適用するコードを選択し、ソフトウェアでプログラムします。
I/O補正セルは、1.62~2.0V、2.7~3.6Vの2つの電圧範囲を備えています。

8

I/Oスピード最適化

9• 低電圧で通信インタフェースに妥協なし• SYSCFG_CCCSRレジスタ内の高速I/O構成ビット• HSLVビットを有効にすると、供給電圧が2.7V未満の場合にIO性能を向上させることが可能• 製品の供給電圧が2.7V未満の場合にのみ使用する必要がある
VDDが2.7Vを超える場合にこのビットを設定すると、破壊される可能性がある• このビットは、IO_HSLVユーザー･オプションビットがFLASH_OPTSRレジスタに設定されている場合にのみアクティブにできる

SYSCFG_CCCSRレジスタの高速IO構成ビットをセットすることにより、製品電圧が低い場合のI/O速度の最適化が可能になります。
このビットは、IO_HSLVユーザオプションビットがFLASH_OPTSRレジスタに設定されている場合にのみアクティブになります。製品の供給電圧が2.7V未満の場合にのみ使用する必要があります。VDDが2.7Vを超える場合にこのビットを設定すると、破壊される可能性があります。

9

ADCへの直接パス

10• 一部のピンは、アナログ-デジタル･コンバータ（ADC）に直接接続される• PA0_C• PA1_C• PC2_C• PC3_C• アナログ･スイッチは、これらのピンをADCアナログ入力に直接接続可能• 接続はシステム設定コントローラ(SYSCFG)を介して処理される

ピン/ボールの一部は、PA0_C、PA1_C、PC2_C、およびPC3_C
ADCアナログ入力に直接接続されています。Pxy_CとPxyピン/ボールの間には、アナログスイッチを介して直接パスがあります。
接続は、システム設定コントローラ(SYSCFG)を介して処理されます。

10