はじめに
Elixir Nerves で構築した Raspberry Pi Zero WH に対して、 FTDI ケーブルを使ってシリアル通信してみます。
対象デバイスと直接シリアル通信するので、メンテナンスやファームウェアに異常がある場合のデバッグに有用です。ブート時のオペレーティングシステム(OS)のログも見れます。
また、Wi-Fi や Ethernet が使えない環境でも通信できるので便利です。
Elixir と Nerves で Raspberry Pi を氣樂に試す
電子工作におけるシリアル通信
FTDI ケーブルとは
- FTDI チップを内蔵した USB シリアル変換ケーブル
- 対象デバイスの基板上にピンヘッダを用意するだけで PC とのシリアル通信が可能
- 内蔵されたチップに対応するドライバーを PC にインストールする必要があり
FTDI チップでないチップ(SiLabs CP210x、Prolific PL2303 等)を内蔵した USB シリアル変換ケーブルもあります。それらは厳密にいうと FTDI ケーブルではありませんが、使い方は同じようです。
FTDI のドライバーをインストール
FTDI ケーブルのピン
FTDI ケーブルの USB コネクタでない方は製品により、ピンが 4 個のものや 6 個のものがあるそうですが、Elixir Nerves での使い方は同じです。
Raspberry Pi には既に電源が供給されているので FTDI ケーブルの電源のピンは使いません。
FTDI ケーブル ピン名 | 説明 |
---|---|
RX | 受信用ピン |
TX | 送信用ピン |
GND | グランド |
VCC | 電源を出力 |
ネットワーク通信の文脈では「TX (送信)」「RX (受信)」という言葉がよく使用されるようです。
FTDI ケーブル | 通信の方向 | Raspberry Pi |
---|---|---|
TX (送信) | → | RX (受信) |
RX (受信) | ← | TX (送信) |
FTDI ケーブルの接続方法
Raspberry Pi のピン 6、8、10 が便利です。
- FTDI ケーブルの GND は、Raspberry Pi の GND に接続
- FTDI ケーブルの RX は、Raspberry Pi の UART TX に接続
- FTDI ケーブルの TX は、Raspberry Pi の UART RX に接続
FTDI ケーブル ピン名 | Raspberry Pi ピン名 | Raspberry Pi ピン番号 |
---|---|---|
RX | UART TX (GPIO 14) | 8 |
TX | UART RX (GPIO 15) | 10 |
GND | GND | 6 |
Elixirで Raspberry Pi のピン配置を確認することもできます。
シリアル接続 CLI クライアントをインストール
FTDI ケーブルは、テキスト出力を標準のシリアル USB ポートに変換します。
シリアルコンソール をサポートするオープンソースのシリアル接続クライアントがいくつかあります。
シリアル接続 CLI クライアントを実行
picocom /dev/tty.usb* -b 115200
usb*
は自動的にホストマシン上の USB ポート名に展開されます。
Nerves のファームウエアが起動している場合には、iex(1)>
プロンプトが表示されると思います。
何も表示されない場合は、Enter を数回押してみてください。それでもだめなら RX と TX を入れ替えてみてください。
screen
コマンドの使い方は下記の記事に書かれています。
さいごに一言
よく考えたら過去にも似たようなメモをまとめてました。
本記事は 闘魂 Elixir #72 の成果です。ありがとうございます。