Edited at

RaspberryPi GPIO Pinアサインと各種規格・仕様についてまとめ

◆夏季休暇中のメインイベント

★16日追記 (ピンアサイン表は前パターン網羅しておくべきでしたね。またそのうち更新します)

お盆休みはAzureとラズパイを遊びつくす!!

社会人になるとなかなかまとまった時間がとれないので、やりたいなーと思いつつやれていなかった azure と IoT。

本日夏季休の中盤。azure 夏季休暇前半で アカウント開設 / VNET環境構築 / Virtual Machine / Azure Load Balancer / 一般化済OSイメージ作成 / Blob Storage / VDI (DaaS) といろいろ楽めました。後半はラズパイやろうかなーとラズパイ本体を探します。

発売当初、WiiリモコンでLEDを点灯させてみたり、LinuxやFreeBSDが動く小さなワンボードコンピュータとしていろいろ遊んだラズパイ。2019年、ふと温度・湿度・二酸化炭素濃度などの空気センサーで遊びたくなったので、ラズパイを設置・結線しつつ、I/O の仕様等を改めて調べてみました。また、センサーのデータ読み取り&可視化をやるための環境構築としてOSのインストールや Python3.6 のビルドを行っているのですが、コンパイルがぜんぜん終わらないので、待ち時間に本記事を執筆を開始。次からはクロスコンパイル環境作ろうと思った次第。

普段は明日の仕事に備えて早めに寝るsuttonですが、今日は寝ない。明日のことは心配しなくて良い。深夜3時くらいにOSのダウンロードと構築が完了。次はpython3.6のビルド。python3.6 のビルドを深夜に始め、朝方5時頃についに寝落ち。翌朝からpython3.6のビルドを再開するも、なぜビルドコマンドを実行しないで寝てしまったのか・・。寝る前にちゃんとやってたら、眠っている間に終わっていたのに orz 

さて、ここから本題。

◆PINアサイン

Raspberry Pi A+ B+ 2B 3B の GPIO 40ピンのPINアサイン



画像は raspberrypi.zyx さんより引用させて頂きました。

◆ラズパイI/Oピンの規格・用語・用途

Model A / Model +A / Model B で利用されている Broadcom BCM2835 で利用可能な通信方式・機能・規格を自分用にメモ・忘備録として記載。ピンアサインの図などを見ていて、これは何をするところなのか?と不明点がでた場合の参考となれば幸いです。

*ALT0~ALT6の切り替えでGPIOのピンの機能・役割が変わり、下記のようにたくさんの規格や方式が使用できます

pin表記
名称
分類
簡単な説明

GPIO
General Purpose Input/Output

集積回路/マイコンの一般的な入出力ピン

3.3V
3.3 volt
Electricity
3.3Vの電力供給

5V
5.0 volt
Electricity
5Vの電力供給

GND
Ground
Electricity
グラウンド アース 接地 (電位0 Volt)

SCL
Serial Clock
I2C
クロック (ICやデバイス間の同期用)

SDA
Serial Data
I2C
データ通信(同期シリアル通信)

MISO
Master In Slave Out
SPI
デバイスからマスタへデータ送信

MOSI
Master Out Slave In
SPI
マスタからスレーブのデバイスへデータ送信

SCLK
Serial Clock
SPI
データ転送同期のクロック(マスタが生成)

CS
Chip Select
SPI
チップセレクト/スレーブセレクト (どのデバイス・チップと通信するか)

CE
Chip Enable
SPI
チップ有効化⇒セレクト/スレーブセレクトと同じ

TxD
Transmit Data
UART
データ送信(非同期シリアル通信)

RxD
Receive Data
UART
データ受信(非同期シリアル通信)

CTS
Clear to Send
UART
データ送信可能を通知

RTS
Request to Send
UART
データ送信を要求

SD CLK
SDIO Clock
SDIO
SDIO通信のクロック

SD CMD
SDIO Command
SDIO
SDIOのコマンド

SD DAT
SDIO Data
SDIO
SDIOのデータ通信

PCM_CLK
PCM Clock
PCM
PCMクロック

PCM_FS
PCM Frame Sync
PCM
PCMフレーム同期

PCM_DIN
PCM Data In
PCM
PCMデータ入力

PCM_DOUT
PCM Data Out
PCM
PCMデータ出力

H-SYNC
Horizontal Synchronizing Signal
DPI
水平同期信号(1走査線の書き換えタイミング)

V-SYNC
Vertical Synchronizing Signal
DPI
垂直同期信号(1画面の書き換えタイミング)

CLK
Clock
DPI
ディスプレイクロック

DE / DEN
DPI Enable
DPI
表示開始信号

DPI_D
Data(Red/Green/Blue)
DPI
RGB (Red/Green/Blue)の色データ

1W Data
W1-GPIO Data
1-Wire
1-Wireインターフェース用データ

GPCLK
General Purpose Clock
GPCLK
ソフトウェア制御によらずピン固定の周波数を出力

TDI
Test Data In
JTAG
デバッグ用データ入力

TMS
Test Mode Select
JTAG
デバッグモード選択

TRST
Test Reset
JTAG
JTAG機能のリセット

TDO
Test Data Out
JTAG
デバッグ用データ出力

TCK
Test Clock
JTAG
ターゲット JTAG ポートへのテストクロック信号

RTCK
Return Test Clock
JTAG
ターゲット JTAG ポートからのリターンテストクロック信号

ID_SC
Serial Clock for HAT EEPROM
I2C
HAT EEPROM 用クロック *1

ID_SD
Serial Data for HAT EEPROM
I2C
EEPROM 用シリアルデータ通信 *1

*1 HAT I2C EEPROM RaspberryPiの仕様を熟知した人以外は使用非推奨とのこと

用語
名称
簡単な説明

I2C
Inter Intergrated Circut
シリアル通信(同期)の方式。

SPI
Serial Peripheral Interface
シリアル通信(同期)の方式。

UART
Universal Asynchronous Receiver Transmitter
非同期シリアル通信の方式。ラズパイではコンソール接続機能を提供

SDIO
Secure Digital Input/Output
SDカードと同じインターフェースでデータ入出力する規格 (SDカードインターフェース)

PWM
Pulse Width Modulation
パルス幅変調。パルス波の時間幅を変化させて変調する変調方式

PCM
Pulse Code Modulation
パルス符号変調。アナログ信号に対して標本化及び量子化を行いデジタル信号に変換する変調方式

DPI
Display Parallel Interface
ディスプレイ映像出力用パラレルインターフェース

1-Wire
One Wire Interface
信号+給電の線とGNDだけで低速データ転送を行う。1-Wireセンサなどを接続して利用

JTAG
Joint Test Action Group
IEEE1149.1 集積回路や基板の検査およびテスト・デバッグの標準規格

WiringPi
-
RaspberryPiのGPIOを簡単に利用できるように作られたC言語ライブラリ。ラッパーが用意されているのでphpやpythonからも利用可能

HAT
Hardware Attached on Top
ラズベリーパイの拡張端子の名称。拡張基盤用のEEPROMを接続する機能を提供

◆あとがき

記事執筆終わったーと思ったら、ちょうどいいタイミングで python3.6 のコンパイルも完了!いいタイミング!いよいよセンサーなどを接続して遊んでいこうと思います。皆さんも良きラズパイライフを!