開発のヒント
周辺機能、I/O、メモリ
GPIOの初期値
GPIO ポートモード・レジスタの初期値は”00″ですので、GPIOは入力端子としてスタートします。 入力端子の場合、JTAG用端子などの一部の端子を除けば、Hi-Z(ハイ・インピーダンス)状態です。
初期値とは、リセットが解除された直後の状態を示しますが、リセット端子のNRSTのLowレベルがマイコン内部に反映された時点から入力端子になりますので、リセット解除の前もHi-Z状態です。
Hi-Zの場合、GPIOを誰もドライブしませんので、不安定な電位になります。周辺の環境によっては、Highレベルになったり、Lowレベルになったり、中間電位になる場合もあります。一部の製品を除き、中間電位になるとGPIOの入力バッファに貫通電流が流れますので、微小ですが消費電流が増えます。また、LCD兼用端子でLCDパネルにつながっている場合はLCDの表示がチラチラする弊害も起きます。
Hi-Zを防ぐためには、外付け抵抗でプルアップまたはプルダウンします。するとGPIOの電位は固定されます。ソフトウェアで内蔵プルアップ抵抗またはプルダウン抵抗をONしても良いのですが、ソフトウェアが走りだすまではHi-Zが保持されますので、電源投入時から電位を固定したい場合は、外付け抵抗をおすすめします。
※GPIOの初期値は、使用するデバイスのリファレンス・マニュアルを参照ください。
過去の開発のヒントはこちら