exStickを使ったちょっとしたデバイスの設計をするのにeagleを使うことに.
回路図→基板設計という正規の手順を踏むにはexStickをライブラリとして登録しておくと便利.というわけで,eagleのライブラリを作りました.eagleはコマンドラインで部品おけるので便利ですね.
たくさんパッド置くのは面倒なので,こんな感じのスクリプトでeagleコマンドラインを作って,流してみました.
パッドを置くためのコマンドは
PAD 角度 穴径 パッド径 'パッドの名前' (X座標 Y座標);
なので,たとえば,J2の1番ピンを原点にしてパッドを置きたい場合にはemacsで,下記のようなスクリプトを実行してコマンド列を作ればいい.
(let ((a 0) (b 0) (c 0))
(while (< a 26)
(setq a (+ a 1))
(insert
(format "pad 0 1 1.5 '%s' (-%f %f);"
(if (or (= a 1) (= a 2) (= a 11) (= a 12))
(prog1 (format "GND%d" b) (setq b (+ b 1)))
(prog1 (format "FPGA_EX_IO%d" c) (setq c (+ c 1))))
(if (= (% a 2) 1) 0 2.54)
(* (/ (- a 1) 2) 2.54)))))
とか.こうすると,GNDとFPGA_EX_IO**みたいな名前のパッドを2.54mmピッチで2列に並べられる.
J3はもう少し面倒で,
(let ((a 0) (b 4) (c 22) (d 0) (e 0))
(while (< a 26)
(setq a (+ a 1))
(insert
(format "pad 0 1 1.5 '%s' (-%f %f);"
(cond
((or (= a 1) (= a 2) (= a 15) (= a 16) (= a 26))
(prog1 (format "GND%d" b) (setq b (+ b 1))))
((or (= a 7) (= a 8) (= a 9) (= a 10) ())
(prog1 (format "VCC%d" d) (setq d (+ d 1))))
((or (= a 11) (= a 12) (= a 13) (= a 14) ())
(prog1 (format "USER_VCC%d" e) (setq e (+ e 1))))
((= a 17) (format "FPGA_CSO"))
((= a 19) (format "FPGA_CCLK"))
((= a 21) (format "FPGA_DIN"))
((= a 23) (format "FPGA_MOSI"))
((= a 25) (format "FPGA_PROG"))
(t
(prog1 (format "FPGA_EX_IO%d" c) (setq c (+ c 1)))))
(if (= (% a 2) 1) (* 5 2.54) (+ (* 5 2.54) 2.54))
(* (/ (- a 1) 2) 2.54)))))
とか.
枠とかも追加するとこんな感じのライブラリが作れます.

Schematicのpinも同じようなスクリプトで生成可能.
検証がすんだら,作ったeagleライブラリも公開したいと思います.


コメント