KiCADを使って作った基板をプリント基板メーカーに送る方法

[概要]以前はプリント基板を作ってもらうには最低でも5万円以上のお金がかかっていたため、アマチュアは自分でエッチングをしたりして苦労していたものですが今は場合によっては数百円で基板作成を注文できるようになりました。(送料が1000円以上かかりますが)

KiCADを使って基板データを作成したらガーバーデータを出力してプリント基板メーカーに送れば基板を作ってもらうことができます。

ここでは格安で基板を作ってもらえるElecrow向けのデータ出力方法について説明します。
他の基板メーカーにデータを出す場合は基本的に同じ作業でOKです。

新着 elecrowのセールで格安基板をゲット

テスト用に簡単なリモコン基板を設計してelecrowに注文しました
急がないので安い航空郵便を選択したところ3週間くらいかかってやっと届きました。(¥2,000位の送料を払えば10日程で入手できます)

10cm×5cmの両面基板5枚で$4.9+輸送費$6.42の計$11.32でした。
5枚頼んだのに11枚入っています、太っ腹のelecrowさんは時々大サービスをしてくれます。
一見したところ基板の仕上がりは良く裏面の0.5mmピッチのパッドも綺麗に出来ていました。

それにしても「この価格でイニシャル込みの基板が5枚作れるなんてどうなの?」と国内基板メーカーの行く末が少々心配になります。

データ出力ウィンドウを開く

プリント基板エディタのメニューでファイル→プロットを選択して製造ファイル出力のウィンドウを開きます。

ガーバーデータの出力

出力フォーマットは「ガーバー」を指定します

ガーバーオプションで「Protelの拡張子を使用」にチェックを入れます。
Protelとは業務用で最もシェアの高いプリント基板CADでElecrowがそのCADと同じ拡張子でガーバーファイルを作ることを要求しているためです。

他のメーカーに頼む場合もProtelと同じ拡張子を使ったほうが間違いが少ないと思います。

その他のオプションは上の通りでOKです。

レイヤの指定:2層基板の場合以下の6~7種のデータが必要となります。
4層基板の場合はさらに2つの内層レイヤデータを出力します。

F.Cu  : 部品面の銅箔バターンです。
B.Cu:ハンダ面の銅箔パターンです。
B.Silks : ハンダ面のシルクパターンです、裏面に実装部品が無ければ省略して構いません。
F.Silks:部品面のシルクパターンです、無くても構いませんが値段が安くなるわけでは無いのコンポーネントIDの他に基板名やバージョンなどを含めて出来るだけ多くの情報を記述しておくと後々助かります(経験談)
B.Mask:ハンダ面のレジストマスクです、レジストとはハンダ付けしないところに塗布して基板の腐食やショートを防ぐためのものです。
 普通、プリント基板が緑色をしているのは緑色のレジストを使っているためです。Elecrowでは緑の他に(赤)(黒)(黄)(白)などのレジストを指定出来るので基板のバージョンを区別するためなどに基板の色を変えることも出来ます。
F.Mask:部品面のレジストマスクです。
Edge.Cuts:基板外形です、基板の外形加工のために必要となります。長方形以外の任意の形を指定することが出来ます。

オプションとレイヤの指定が終わったら「製造ファイル出力」のボタンをクリックしてガーバーファイルを作成します。
ガーバーファイルの出力は一瞬で終わり、.gtl .gbl .gbo .gto .gbs .gts .gm1 の拡張子を持つファイルが指定したフォルダに出力されます。

ドリルデータの出力

「ドリルファイルの生成」ボタンをクリックしてドリルデータ出力ウィンドウを開きます。

上のようにオプションを指定して「ドリルファイル」のボタンをクリックすると拡張子.drlのドリルファイルが出力されます。
スルーホールメッキをしない取り付け穴などを使っているときには名前の後ろに-NPTHがついた別のドリルファイルが出力されます。
ドリルファイルはNCデータでメモ帳などのテキストエディタで開くことができます。
ドリルファイル以外は必要ありませんのでこれでメーカーに提出するデータがそろいました。

※ガーバーデータの確認

ガーバーデータを出力したらガーバービューアを使ってどのようなデータが出力されているかを確認することをお勧めします。
ガーバーデータの確認にはViewMateのフリーバージョンを使うことが出来ます。
出力されたガーバーデータを起動したViewMateのウィンドウにドラッグドロップすればガーバーデータとして出力されたパターンを確認できます。

stm32CubeMX で FSMCによるFPGAアクセスでトラブル

stm32f407IGT6を搭載したモーターコントロールボードでSTM32F4xx_StdPeriph_Driverライブラリを使って作っていたプログラムをバージョンアップしてSTM32Cube FW_F4 V1.16.0に対応した時にFPGAへのインターフェースで悩んだ件。

ボードはFSMCのSRAM較正でFPGAにアクセスしています。
以前のライブラリを使ったプログラムではサンプルプログラムを参考にした初期化で簡単に動いたのでSTM32CubeMXを使えばもっと簡単に出来ると思っていました。

しかしFPGAからの読み出しは動作するものの書き込みが出来ない不具合が発生し原因がどうしてもわからず、レジスタの内容をダンプして比較してみたり色々悩んで3日間ほど回り道をしてしまいました。

FSMCの設定のせいだと思い込んでいたのですが、結局判ったのはstm32f407のMCO出力端子からクロックが供給されていないことがトラブルの原因でした。

勿論端子からMCOを出力する設定は出来ていましたがGPIOの設定で出力端子の出力速度がLowになっていたため50MHzのクロックを出力すると殆どHiレベルのままになっていました。

STM32F4xx_StdPeriph_Driverライブラリを使ったプログラムでは初期化コードを自分で書いていくスタイルなのでこのような見落としは少なかったのですが、STM32CubeMXのように初期化コードが自動的に生成されてしまうとこのようなトラブルが時々発生します。

格安ロジックアナライザのインストールと使い方

格安ロジックアナライザHiLetgo 24MHz 8チャンネル USBロジックアナライザ)の使い方とインストール

HiLetgo 24MHz 8チャンネルUSBロジックアナライザは取説などのドキュメントは付属していません。
判ってしまえばとても簡単に使えるツールですがUSBドライバのインストールと使い方にわかりにくいところがあったのでメモしておきます。

PulseViewのダウンロード

フリーの汎用ロジックアナライザソフトPulseViewがこのロジックアナライザに対応しています。
sigrokのサイト
からpulseview-NIGHTLY-32bit-static-release-installer.exeをダウンロードします。

PulseViewのインストール

ダウンロードしたインストーラを実行して指示通りにインストールします。
インストールで特に引っ掛かることはないでしょう。

USBドライバのインストール

まずUSBケーブルでロジックアナライザとPCを接続し、デバイスマネージャーでデバイス名を確認します。
私の場合はUnkownDevice#1と表示されましたが環境によっては異なる名称で認識されるかも知れません。

次にプログラムメニューから USBドライバインストール用プログラムのseirok->Zadigを起動してOptions->List All Devices を選択してチェックを入れます。

デバイスリストの中から先ほど確認したデバイス名を選択します。
※ここを間違えると別のデバイスドライバを上書きしてしまうので注意して下さい。

DriverにWinUSBを選択してInstall Driverをクリックすればデバイスドライバがインストールされます、確認してウィンドウを閉じて下さい。
※上図はインストール済みのデバイスドライバを上書きしているので最初の時とは表示が少し違っています。

デバイスの選択

PulseViewを起動してDemoDeviceになっているところの右をクリックしてConnect to Deviceをクリックします。

※ここで苦労しました :roll: 
Step1. Choose the driver からfx2lafw(generic driver … )を選択して

Step2. で USBを選択し

Step3. Scan for devices using driver above をクリックします。 

Saleae Logic with 8channels というデバイスが表示されるので選択してOKボタンをクリックします。

測定の基本設定:チャンネル、サンプル数、サンプリング周波数、トリガ

チャンネル
測定が必要なチャンネルにチェックを入れます

サンプル数
収録するデータ数を設定します。測定開始後サンプル数に到達したら測定は自動的に停止します。

サンプリング周波数
サンプリング周波数を設定します、サンプリング周波数が高いほど速い信号の変化を監視できますがサンプリングしたデータ数も大きくなるので監視したい信号に合わせて選択します。

トリガと信号の名称、色
信号名をクリックするとトリガメニューが表示されます。
トリガが設定されていない場合はRunボタンをクリックすると同時に測定が始まり、トリガが設定されていれば全てのトリガ条件を満足したときに測定開始となります。
信号名、色の設定は任意です。

測定開始と終了

Runボタンをクリックすると測定を開始し、収録したデータ数がサンプル数に到達するかStopボタンをクリックしたときに測定が終わります。