
第四回 ソフトウェア開発者によるハードウェア開発のすすめ
こんにちは、ピーバンドットコムの廣瀬です。
今回はBitEngineers藤田さんの連載企画、
ソフトウェア開発者によるハードウェア開発のすすめ
の第四回です。
↓藤田さんのnoteはこちら
今回はKiCadで回路図を作成する際の、シンボルの追加方法について説明していただいてます。
回路にUSB Type-Cコネクタを使用したい方は是非ご参照ください。
質問などもあればコメントいただければ幸いです!
第四回
前回 USB Interface IC の接続を行いました。今回は USB コネクタの追加と MCU シンボルの作成を進めていきます。
USB Connector
物理的な USB 接続に必要なコネクタを接続していきます。従来のUSB は +5V, GND, D+, D-ピン, (OTG は ID ピンも)を接続するだけでした。USB TYPE-C を採用するとピン数が多くなるのですが、今回は USB TYPE-C コネクタを採用します。
コネクタはTYPE-Cを採用しますが、USB 3.0 ではなく従来通りのUSB通信(full speed 12M)が出来れば良いです。
シンボルに “USB_C_Receptacle_USB2.0” を使用します。

画像のように、従来のピンに加えて CC (CC1, CC2)、SBU (SBU1, SBU2) が追加されています。ここではUSB TYPE-C の全24ピンある内、USB2.0 で機能するために必要な接続ピンが既に絞られています。D+, D-, CC, SBU などが2つ用意してあるのは TYPE-Cコネクタでは上下がリバーシブルなためです。基本的な機能には違いはないので、同じように接続します。

SBU は接続しません。CC ピンに 5.1kΩの抵抗を介して GND と繋ぎます。USB ケーブルから電力を供給してもらう機器としてはこれで問題なく機能します。
USB データ線の D-, D+ は前回 USB IC を結線したときに用いたグローバルラベル “USB_DN”, “USB_DP” と繋ぐことで USB IC との接続ができました。

USB コネクタから USB IC まで繋がったので次に MCU を繋いでいきます。
ESP32-WROVER-E シンボル作成
MCU には ESP32-WROVER-E を使用します。kicad のデフォルトシンボルライブラリには含まれていないので、シンボルを作成します。
WEB 上を探せば該当のシンボルはおそらく見つかると思いますが、シンボルの作成は今後も必ず使うことになるので知っておくと役に立つでしょう。
シンボル作成には “シンボルエディター” を使用します。

図の赤い丸で囲ったアイコンを押して起動します。

シンボルエディターが起動しました。
これから作成するシンボルは、シンボルライブラリの中の1つのシンボルとして管理されます。自分で作成したシンボルを管理するシンボルライブラリを新規作成します。メニューから
ファイル(F) -> 新規ライブラリー
を選択します。

次に “グローバル”、”プロジェクト” の選択がありますが、”プロジェクト”を選択します。

その後、ファイル名
“MyLibrary.kicad_sym”
とし、プロジェクトルート直下のディレクトリで “保存” します。
正しくシンボルライブラリが作成されたか確認するには
"設定” -> “シンボルライブラリーを管理”
を選び

“プロジェクト固有のライブラリー” タブを押すことで、作成された “MyLibrary” の表示が確認できます。

以降はこのライブラリにシンボルを作ります。メニューから
“新しいシンボルを作成 (N)”
を押します。

表示されるダイアログにシンボル名 “ESP32-WROVER-E” を入力し “OK” を押します。


これでシンボルが作成されました。名前だけで内容は空ですが、一旦保存しておきましょう。

この後の作業は
シンボルの形状を描く
シンボルのピンを定義、ピンの配置調整
データシートURL、説明、検索キーワード等入力
となります。
形状を描く
“矩形を追加” アイコンを押します。

適当な点をクリックし矩形を作成します。作成後に整形できるので適当で大丈夫です。


矩形作成後に角の4点をそれぞれ移動させて以下のようにします。

選択時に右クリックを押し”プロパティ”を選び、
”ボディ背景色で塗りつぶし”
を選択します。

よく見るシンボルに近づいてきました。次にピンを定義していきます。
ピン定義
ESP32-WROVER-E のデータシートに “Pin Definitions” があるので参照します。
datasheet

"Pin Description" を以下に要点まとめました。 Type でソートして、Function については簡潔にまとめています。

上記の “Type” 別で ピン定義を追加していきます。

“ピンを追加 (P)” アイコンを押すとカーソルが変わるのでその状態で任意の場所をクリックします。”ピン プロパティ” ダイアログが表示されるので “Type” 別に入力します。
“Power” の場合
No.1 の GND ピンを例にとり入力します。
ピン名 (N): に GND
ピン番号(b): に 1
エレクトリカルタイプ: 電源入力
向き: 上
を入力し “OK” を押します。

GND 1 ピンを以下のように配置します。ピンの配置場所は実際のモジュールと同じである必要はなく

同様に GND 15, 38, 39 も配置します。

3V3 ピンも追加します。
ピン名 (N): 3V3
ピン番号 (b): 2
エレクトリカルタイプ: 電源入力
向き: 右
要領はつかめたと思うので他のピンも追加します。
“Type” に対応する “エレクトリカルタイプ”値は
Power => “電源入力”
I => “入力”
I/O => “双方向”
NC => “未接続”
を入力し名前と番号を合わせれば問題ないです。
39ピン全て入力し終わった例が以下です。
配置場所は一致していなくても問題ないです。

入力値以外に気をつける点としては kicad は 50mil という単位で整列しているのでピンとピンの間隔を50mil あける必要があります。
MIL とは
US などで使用されている Inch の 1/1000 の長さの単位です。普段はお目にかかりませんが、基板作成に使われます。
説明文、キーワード、データシート
シンボルのプロパティ値を入力して完成とします。

以上で保存してシンボル作成を終了します。
ESP32-WROVER-E シンボルの追加
回路図エディタに戻り”シンボルの追加” アイコンを押下、検索キーワードに ESP32 などを入力してみると、無事に ESP32-WROVER-E が候補に出てくると思います。

今回は以上です。次回は ESP32 を接続していきます。