第二回 ソフトウェア開発者によるハードウェア開発のすすめ
こんにちは、ピーバンドットコムの廣瀬です。
前回開始したソフトウェア開発者によるハードウェア開発のすすめの第二回の記事が藤田さんから届きました。
↓藤田さんのnoteはこちら
今回の記事では回路図作成のための準備に関して触れています。
回路図や基板を設計するにはCADソフトを使用するのですが、Windowsのみ対応のソフトが多いのが現状です。
しかし、ソフトウェアエンジニアの方はLinuxやMacなどのユーザーも多いと思います。
ソフトウェア出身である藤田さんもその一人(Windowsを使っていない)ですが、回路図作成したいと数年前に見つけたCADソフトがKiCadです。
初めてKiCadを触る方にも分かるよう、KiCadの使い方から書いていただいてます。
その後の部品選定など、藤田さんが回路図作成する際に考える順に記載しているので、是非参考にしてみてください。
コメントもお待ちしてます
それでは、第二回をお楽しみください!
第二回
作成物と作業の流れ
前回決めたLチカ基板の作成を進めていきます。工程は長いので幾つかに分割して載せていくことになると思います。
今後の作業の流れは大まかに
回路設計・回路図作成
基板設計・基板作成
基板発注
FW 開発
動作テスト
となります。
KiCad
さっそく回路設計に入っていきたいと思います。回路を作成するにはPCB CAD ソフトが必要です。オープンソースの kicad を使って作業をしていきます。クロスプラットフォームなので Windows/Mac/Linux/BSD(FreeBSD) 全ての環境で使用可能です。
バージョンは2021年の12月にリリースされている 6.0 を使用します。6.0 では kicad 入門者にもやさしいデザイン、他のツールへの移行のしやすさ、も意識されているようです。
EDA (Electrics Design Automation suite) とあるように電気設計に必要ないくつかの機能が一つにまとまったものとなっており
回路図、ネットリスト、部品表作成 - eeschema
基板の外形、パターン作成 - pcbnew
etc
などが含まれます。
私の環境は linux なのでスクリーンショットはwindows/mac のものとは違うかもしれないことはご了承ください。
回路設計
KiCad で新規にプロジェクトを作成します。
ファイル -> 新規プロジェクト
“led_board”
と入力し任意の場所に作成します。
この時、以下のファイルが作成されています。
led_board.kicad_pro プロジェクトファイル
led_board.kicad_sch 回路ファイル
UI は以下の画面が表示されていると思います。
上部にメニューバー、その下に左から、ショートカットアイコン、プロジェクトファイルツリーそして、各種ソフトの起動ランチャーが並んでいます。
回路図を作成するために、“回路図エディター”をクリックし eeschema を起動します。
eeschema が起動すると空白の状態のシートが表示されます。ここで回路を記述していきます。
回路を記述する流れとしては
使用する電子部品の記号(以下、シンボル) を追加
シンボル同士を接続する
を必要な部品全てに行い、接続が全て終わった後に
シンボルに ID を割り振る
接続に問題がないか ERC(Electrical Rule Check)を実行する
と進めていきます。
kicad には標準的なシンボルライブラリが既に同封されていますが、もし使用する電子部品のシンボルが kicad に無い場合はシンボルを作成する必要があります。
次に実際にシンボルを追加していきたいところですが、どのシンボルを追加すれば良いか判断するのに電子部品について知らなくてはなりません。なので作業に入る前に使用する電子部品について簡単に説明します。
部品選定
使用する電子部品の選択肢を絞るため作成物をざっくり決めます。
まず、作成物には
(前回決めました)ESP32を採用し
LED が点灯・消灯できる
です。上記に加え、
USB 接続で電源供給
USB 接続で firmware の書き換え可能
を追加します。
そのため今回使用する主な電子部品としては
ESP32 には
ESP32-WROVER-E(/IE)
USB Interface IC には
CP2102N (24pin)
3.3V Regulator には
AMS1117-3.3
LED
未定
を使用することにします。ではUSB Interface IC についての説明に移ります。
USB Interface IC
USB インターフェース IC とは、USB 機器として振る舞うためのプロトコルをハードウェアに実装した IC です。USB 機器には "ホスト" / "デバイス"という役割があります。PC などは "ホスト" として動作しており、USB 接続のキーボードや USB メモリなどは "デバイス" です。複数のポートを持つUSB HUB などが一つの "ホスト" と 多数の "デバイス" を繋げる事ができます。機器によって USB 1.0 ~ USB 3.0 など規格のバージョンが違い、仕様も変わります。このように "USB 機器"と一言で云っても多様であり、その分 IC の選択肢もまた多様になります。用途をハッキリしないことには選択肢は絞れません。
今回の用途はデバイスとしてホストに認識され、シリアル通信でファームウェアの書き込みを行います。“ホスト”/“デバイス” でも IC は違うものが選択され、シリアル通信用ということでも選択肢が絞られています。
さらに絞る条件として、ESP32 とは UART 接続をします。
実際に Digikey や Mouser などでキーワード “USB”, “UART”, “Bridge” などと検索すると色々候補が出てくると思います。
時代によって検索結果も変わりますが、Silicon Labs の ”CP2102N” が結果に含まれていると思います。
他にもいくつか理由はありますが、CP2102N は以上の流れで選定しています。
次回 USB IC まわりの回路を繋いでいきます。