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ライブラリも公開したいと思います.
コメント