eagleで基板引き

技術紹介

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)))))

とか.

枠とかも追加するとこんな感じのライブラリが作れます.

exstic_lib_s

Schematicのpinも同じようなスクリプトで生成可能.

検証がすんだら,作ったeagleライブラリも公開したいと思います.

コメント

タイトルとURLをコピーしました