ラズパイのGPIOの初期状態を調べる
■初期状態はGPIOのピンによっていろいろ
I2C-1のSDAとSCL信号は1.8kΩのプルアップ抵抗が入っているのでHighです。I2C-0はプルアップ抵抗は入っていないので、HighかLowかはわかりません。SPIのCE0、CE1は負論理なので、初期状態ではHighです。
特別なI/Oになっていない普通のGPIOは初期状態ではHighでしょうかそれともLowでしょうか。負論理のリレーをつなぐと、初期状態がLowのリレーだと電源が入った時点でONになってしまいます。
●GPIOの状態を表示
gpio readallでGPIOの状態を読み出せます。2017年1月現在、カーネルのバージョンは4.4.38-v7+です。ラズパイ3を使っています。
●電源が入って約90秒、端子電圧をロギングした
縦軸のスケールはオートです。ロギングにはKeysight 34461AとBenchVueソフトウェアを使いました。
●http://elinux.org/RPi_BCM2835_GPIOsの情報と比較する
公開されている情報と測定したデータを比べました。1-WireとUARTのデータは異なりましたが、GPIOはいずれも同じロジック・レベルでした。
eLinux-ロギング | 名称 | 物理ピン 番号 |
物理ピン 番号 |
名称 | eLinux-ロギング |
---|---|---|---|---|---|
3.3V | 1 | 2 | 5V | ||
High-High |
GPIO2 I2C-1-SDA |
3 | 4 | 5V | 省略 |
High-High |
GPIO3 I2C-1-SCL |
5 | 6 | GND | 省略 |
High-[High->Low] |
GPIO4 1-Wire |
7 | 8 |
GPIO14 UART TxD |
Low-High |
GND | 9 | 10 |
GPIO15 UART RxD |
Low-High | |
Low-Low | GPIO17 | 11 | 12 |
GPIO18 I2S BLK |
Low-Low |
Low-Low | GPIO27 | 13 | 14 | GND | |
Low-Low | GPIO22 | 15 | 16 | GPIO23 | Low-Low |
3.3V | 17 | 18 | GPIO24 | Low-Low | |
Low-Low |
GPIO10 SPI-MOSI |
19 | 20 | GND | |
Low-Low |
GPIO9 SPI-MISO |
21 | 22 | GPIO25 | Low-Low |
Low-Low |
GPIO11 SPI-CLK |
23 | 24 |
GPIO8 SPI-CE0 |
High-High |
GND | 25 | 26 |
GPIO7 SPI-CE1 |
High-High | |
High-High | I2C-0 SDA | 27 | 28 |
I2C-0 |
High-High |
High-High | GPIO5 | 29 | 30 | GND | |
High-High | GPIO6 | 31 | 32 | GPIO12 | Low-Low |
Low-Low | GPIO13 | 33 | 34 | GND | |
Low-Low |
GPIO19 I2S LRCK |
35 | 36 | GPIO16 | Low-Low |
Low-Low | GPIO26 | 37 | 38 | GPIO20 | Low-Low |
GND | 39 | 40 |
GPIO21 I2S DATA |
Low-Low |