USB DAC 基板を自作する
gEDAツールでは回路図の作成からプリント基板の製作までできます。ここでは gschem 使った回路図の作成から PCB によるプリント基板の製作までのワークフローを実践してみようと思います。
初めてこのワークフローを実践するのであまり複雑な回路ではなく、かといって全く無意味な回路というのも味気ないので、比較的簡単と思われる USB DAC 基板で試してみます。
本来であれば基板の大きさを決めてから設計することになりますが、今回は特に基板サイズに制約を設けません。なので DAコンバーター以外は表面実装部品ではなくリード部品を使用します。
使用するDAコンバータはTexas Instruments 社(以下 TI)の PCM2704DB とします。PCM2704DB は TI のホームページではこれから使用する場合には推奨しない旨記載されていますが、秋月電子通商で手に入るデバイスなので選択しました。
インストールした gschem、PCB のバージョンはそれぞれ、geda-1.6.2-3、pcb-20110918 で、OS はLinux mint 14 です。使用方法等、参照したサイトは geda:gsch2pcb_tutorial や Getting Started With PCB です。
USB DAC 基板の設計環境
gEDA と PCB をインストールするとデフォルトの回路シンボルやレイアウト部品を使用することができます。また、自分で作成したり Web からダウンロードした回路シンボルやレイアウト部品を適当なディレクトリにおいて使えるようにすることができます。レイアウト部品の作成については本サイトの「PCB フットプリントの作成」を参照願います。
今回の usbdac-pcm2704 プロジェクトのディレクトリ構成は以下のようにしています。
gaf/ gaf/gschem-sym/ 作成した gschem 回路シンボルディレクトリ gaf/pcb-elements/ 作成したレイアウト部品ディレクトリ gaf/usbdac-pcm2704/ usbdac-pcm2704 プロジェクトディレクトリ
gschem-sym ディレクトリにおいた回路シンボルを gschem から使えるようにするには
(component-library "${HOME}/gaf/gschem-sym")
の一行を追加した gafrc ファイルを./gEDA ディレクトリにおきます。
回路図から PCB ファイルを生成する gsch2pcb コマンドは作業ディレクトリ以下の packages ディレクトリを自動的に探しにいきます。その為、~/gaf/pcb-elements ディレクトリにおいたレイアウト部品を検索するように ~/gaf/usbdac-pcm2704 ディレクトリで以下のコマンドを実行します。
$ ln -s ../pcb-elements packages
また、pcb-elements ディレクトリにおいたレイアウト部品を PCB から使えるようにするには、PCB の「File」→「Preferences...」→「Library」に
packages
と入力して再起動します。
回路シンボルやレイアウト部品は自分で作成するまでもなく gedasymbols.org からダウンロードして使うこともできます。特にレイアウト部品は Luciani.org の footprint page が有用です。このページからダウンロードした pcb-symbols-jcl_2008-4-25.tgz を pcb-elements ディレクトリで展開します。
$ tar zxf pcb-symbols-jcl_2008-4-25.tgz
USB DAC 回路図の作成
USB DAC の回路図を作成するにあたって最初にすることは gschem の回路シンボルの作成になります。使用する部品のほとんどは既に登録されているライブラリにありますが、登録されているシンボルが気に入らない場合や、必要とする部品のシンボルがない場合は自分で作成することになります。
筆者は登録されている抵抗、コンデンサ、コイル、GNDのシンボルが大きすぎと感じていたので編集しました。また、PCM2704 のシンボルは既に「追加」→「Component」→「ライブラリ」→「Misc.unsorted symbols」にある PCM2702E-1.sym を編集しています。さらに PHONE JACK のシンボルは新規に作成しています。
回路図を作成するには usbdac-pcm2704 ディレクトリに移動して gschem を起動します。回路図名は usbdac-pcm2704.sch とします。
$ gschem usbdac-pcm2704.sch
回路図を描くにはメニューバーから機能を選択することもできますが、マウスを移動させるのが煩わしいのでショートカットキーを使います。
- i とタイプして部品選択ウィンドウを開き使用する部品を選択し回路図におく
- 回路図上の部品を選択し m とタイプして移動
- 回路図上の部品を選択し er とタイプして90度回転
- n とタイプしてマウスでネット接続
を繰り返しかっこよく?回路図を描きます。そして出来上がったネット接続しただけの回路図です。

他の便利なショートカットキーとしては下記があります。
- 部品を選択しec とタイプしてコピーする
- 部品を選択しei とタイプして反転する
- w とタイプするとその後選択する領域をズーム
- ve とタイプしてウィンドウに合わせ回路図全体を表示する
次に各部品の属性を追加しますが、始めにリファレンスを振ります。手動で追加することもできますが、重複した場合など後々の PCB でのネット接続で面倒なことになりますので自動で行います。回路図全体を選択して「オプション」→「Autonumber Text」で部品のリファレンスを自動的に振ります。
部品の定数と PCB で基板設計するためのレイアウト情報である footprint は手動で追加します。部品シンボルをダブルクリックするか部品を選択して ee とタイプして表示される attribute 画面の「Add Attribute」領域で、名前の選択メニューの「value」を選択し「値」に定数を入力して「追加ボタン」をクリックすると属性が登録されます。回路図にはリファレンス番号と定数を表示させたいので「表示」と「値」にチェックを入れ、「名前」はチェックを外します。同様に footprint を登録します。footprint の場合は回路図に表示する必要はありませんので「表示」のチェックは外します。

登録した footprint は以下になります。
抵抗 | ACY200 |
---|---|
セラミックコンデンサ | ACY200 |
電解コンデンサ | CAPPR-200P-500D__Panasonic_M-Series-A-Type |
コイル | ACY400 |
PCM2704 | SSOP28 |
USB Bコネクタ | CON_USB_TYPEB_Keystone_924 |
X'tal | HC49 |
スイッチ | SW__Panasonic_EVQPA_Series |
ヘッドホンジャック | phonejack_ST-05 |
部品の定数、footprint を追加し完成した回路図です。基本的には PCM2704 のデータシートに載っている回路例と殆ど同じです。

PCB でレイアウト
回路図から PCB ファイルを生成
gschem で描いた回路図から PCB ファイルを生成するには ~/gaf/usbdac-pcm2704 ディレクトリで gsch2pcb コマンドを実行します。
$ gsch2pcb usbdac-pcm2704.sch ===================================================== gsch2pcb backend configuration: ---------------------------------------- Variables which may be changed in gafrc: ---------------------------------------- gsch2pcb:pcb-m4-command: /usr/bin/m4 gsch2pcb:pcb-m4-dir: /usr/share/pcb/m4 gsch2pcb:pcb-m4-confdir: /etc/pcb gsch2pcb:pcb-m4-path: /usr/share/pcb/m4 /etc/pcb $HOME/.pcb . gsch2pcb:m4-command-line: /usr/bin/m4 -d -I/usr/share/pcb/m4 -I/etc/pcb -I$HOME/.pcb -I. /usr/share/pcb/m4/common.m4 - >> usbdac-pcm2704.pcb --------------------------------------------------- Variables which may be changed in the project file: --------------------------------------------------- gsch2pcb:use-m4: yes ===================================================== Using the m4 processor for pcb footprints ---------------------------------- Done processing. Work performed: 10 file elements and 24 m4 elements added to usbdac-pcm2704.pcb. Next step: 1. Run pcb on your file usbdac-pcm2704.pcb. You will find all your footprints in a bundle ready for you to place or disperse with "Select -> Disperse all elements" in PCB. 2. From within PCB, select "File -> Load netlist file" and select usbdac-pcm2704.net to load the netlist. 3. From within PCB, enter :ExecuteFile(usbdac-pcm2704.cmd) to propagate the pin names of all footprints to the layout.
エラーがなければこのようなメッセージが出て、作業ディレクトリには usbdac-pcm2704.pcb usbdac-pcm2704.net ファイルができています。
PCB の起動とデフォルト設定
PCB を起動します。
$ pcb usbdac-pcm2704.pcb
PCB レイアウト部品が一箇所に重なって配置されていますが気にせずパターン設計のための初期設定をしましょう。
グリッドが表示されていないので、「View」→「Enable visible grid」をチェックします。デフォルトでは 100mil になっています。部品配置やレイアウトをする際に必要に応じてグリッド間隔を設定することになりますがそれは「View」→「Grid size」でできます。また、右上のボタンで mil から mm に変更することもできます。

またパターン幅とビアの設定をすることができます。PCB 画面の左下にある「Route Style」で Signal,Power,Fat,Skinny の設定をしておきます。さらに必要があれば追加で登録することもできます。
今回の USB DAC 基板ではそれぞれ以下のように設定しました。
Route Style | Signal | Power | Fat |
---|---|---|---|
Line width | 10mil | 20mil | 40mil |
Via hole size | 24mil | 24mil | 35mil |
Via ring size | 40mil | 40mil | 60mil |
Clearance | 10mil | 10mil | 10mil |
基板サイズは「File」→「Preferances」→「Sizes」で設定できます。今回は基板サイズの制約はありませんので、出来高でレイアウトが完了した後で行うことにします。
レイアウト部品の分散
レイアウト部品が重なっていると部品の選択が困難ですので「Select」→「 Disperse all elements」で部品を分散させます。このときグリッドサイズは100mil にしておくと良いでしょう。部品の基準点が基本グリッド上に配置されます。部品の数が多い場合配置しようとする部品を探すのは困難になりますので「Select」→「Select by name」で部品のリファレンス番号を指定して選択することもできます。

ネットリストの読込み
「File」→「Load netlist file」で usbdac-pcm2704.net を選択しネットリストをロードします。そして「Connects」→「Optimize rats-nest」とすると部品端子間に直線で接続された図(ラッツ・ネスト)になります。このラッツ・ネストで部品間の接続を確認しながら配置を決めていきます。

レイアウト部品の配置
部品の配置をします。とりあえずは大まかに配置を決めて、その後調整していくことになります。部品を移動や回転を行いながら再配置していきますが、その途中で o とタイプすると再度ラッツを最適化してくれるのでこの作業をくりかえします。

パターン配線
配置が決まったらパターンを引いていきます。
まだ層構成の設定をしていないので「File」→「Preferences」→「Layers」の Groups タブで基板層の設定をしましょう。USB DAC 基板では両面基板としますので 「solder」と「solder side」を group #2、「component」と「component side」を group #1 として「OK」をクリックにします。

配線をするには自動配線機能を使うこともできます。その場合「Connect」→「Auto route all rats」で行います。配線で使用する層はウィンドウの左で選択しますが、半田面のみで配線をする場合は solder 以外のレイヤのチェックを外します。以下は半田面のみに配線を指定した結果です。

最小パターン幅は 10mil としているのでパターンを引く時はグリッドを 20mil にします。また部品の配置を変更するときにはグリッドを 25mil に設定します。グリッドを 20mil にするには「View」→「Grid size」で 25mil にしてから Shift+g で -5mil とします。+5mil にするには g とすればよい。
手動でパターンを引くには左の PCB ツールバーから 「LINE」 を選択し、パターンを引くレイヤ(solder か component)を選びます。開始点をクリックしクロスポイントを移動させ終了点で再度クリックします。パターンを引くのを終了する、または次の開始点から始めるには Esc キーを押します。
同じ水平/垂直線上にない2点間を接続する場合90度で曲げて配線するのはノイズ発生上一般的には良くないとされています。LINE ツールは必ず45度で配線するモードがあります。開始点から水平/垂直に始まり±45度曲げて終了点(対角点)に到達するモード、開始点から±45度で始まり水平/垂直で終了点に到達するモードでそれらは PCB ウインドウ下のステータスバーに表示されている _/ や \_ で確認できます。また、それらのモードを変更するには / をタイプすることでできます。
パターンを引いていると既に引いたパターンの幅を変更したくなることがあります。変更したいパターンを選択して、: をタイプし出てきたコマンド入力ボックスにコマンドを入力します。例えば 3mil 太くする場合は
changesize(selectedlines, +3, mils)
とします。入力したコマンドの履歴はコマンド入力ボックス右の▼ボタンを押すとリスト表示されるのでこれによって入力を単純化できます。
このようにパターンを引いていきますがそのつど o をタイプしてラッツの最適化をすることをお勧めします。接続されたネットはラッツの線が消え、ネットリストと異なった接続をされたピンは黄色になっているので間違えた場合でもすぐ気がつくでしょう。
以下はベタ GND に接続するランド以外を接続したレイアウトです。

ベタ・パターン
ベタ・パターンを作成するには POLY ツールを使います。PCB ツールバーから 「POLY」 を選択しベタにする領域を囲みます。半田面の全域をベタとしますので、solder をハイライトさせ左上→右上→右下と順番にクリックし、再び開始点をクリックするか Shift+P します。

ベタ・パターンに GND 端子を接続するには PCB ツールバーから THRM ツールを選択し接続するランドをクリックします。

ビアとベタ・パターンを接続するにはサーマル・パッドを使用する必要はないので直接接続します。THRM ツールを選択し対象のビアの上にマウスカーソルを置き Shift キーを押しながらマウスの左ボタンをクリックするとサーマル・パッドのパターンを変更できます。

デフォルトでは POLY ツールで描いたベタ・パターンにライン・パターンを接続しようとするとライン・パターンのクリアランスが確保されて接続することができません。ベタ・パターンにライン・パターンを接続するには、接続しようとするライン・パターン上に十字を置いて j キーを押します。

基板サイズの設定
レイアウトの最後に基板のサイズを決定します。グリッドを 100mil にして「Select」→「All visible elements」でレイアウト全体を選択して作業領域の左上に移動します。基板サイズは mm で指定したいので右上の mil ボタンをクリックして mm に変更し、「File」→「Preferances...」→「Sizes」で基板のサイズを指定します。ベタ GND は基板端から 0.5mm からとしますので一度削除して再度 POLY ツールで領域指定してベタ・パターンを作成しました。
シルクの位置を調整したり、PCB ツールバーの TEXT ツールで基板名を USB DAC PCM2704 Rev.0 として追加し完成したレイアウト・パターンです。

Gerber ファイルの出力
基板を試作してくれるメーカーに発注するには gerber データが必要になります。当然、PCB から gerber ファイルを出力することができます。「File」→「Export Layout」で表示された出力可能なエクスポート形式のリストから gerber ボタンをクリックします。

「verbose」にチェックを入れ「OK」ボタンを押すと端末に以下のように表示されます。
Gerber: 23 apertures in usbdac-pcm2704.top.gbr Gerber: 20 apertures in usbdac-pcm2704.bottom.gbr Gerber: 8 apertures in usbdac-pcm2704.plated-drill.cnc Gerber: 11 apertures in usbdac-pcm2704.topmask.gbr Gerber: 9 apertures in usbdac-pcm2704.bottommask.gbr Gerber: 4 apertures in usbdac-pcm2704.topsilk.gbr Gerber: 2 apertures in usbdac-pcm2704.toppaste.gbr Gerber: 5 apertures in usbdac-pcm2704.fab.gbr
また、「name-style」で表示されるリストで「eagle」を選択すると eagle 形式データで出力することができます。
Gerber: 23 apertures in usbdac-pcm2704.cmp Gerber: 20 apertures in usbdac-pcm2704.sol Gerber: 8 apertures in usbdac-pcm2704.drd Gerber: 11 apertures in usbdac-pcm2704.stc Gerber: 9 apertures in usbdac-pcm2704.sts Gerber: 4 apertures in usbdac-pcm2704.plc Gerber: 2 apertures in usbdac-pcm2704.crc Gerber: 5 apertures in usbdac-pcm2704.fab
USB DAC 基板の試作依頼
USB DAC 基板の試作をしようと思い格安のメーカーとして有名?なOLIMEX社に依頼しようしましたが、現在は試作の注文は受け付けていないようです。調べた限りでは国内のメーカーは2万円程度かかるようなので OLIMEX社が注文受付を再開するのを待つことにします。