スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

EAGLE / 放熱フィン用ランド上にサーマルビア(Thermal via)を打つ方法

仕事ではないが、回路設計とアートワークをEAGLEで行っている。4層基板でLDOレギュレーターを使う回路を設計したのだが、データシートでランドパターンを見ると、放熱フィン用のランドには指定の大きさのサーマルビア(Thermal via)を指定個数打てと記述されている。

EAGLEの通常の方法で考えるならば、ライブラリエディタのパッケージ作成画面にて放熱フィン用のランドを他のSMDピンと同様に作成し、その上にビアを打てば良いと考えるだろう。しかし、この方法ではDRCを掛けるとOvelapのエラーが出てしまう。多分エラーを無視してガーバーアウトし、基板作成時に個別対応でも何とかなる様な気もするのだが、何とも気持ち悪い。

色々と方法をググったが、海外のサイトを含めて明確な答えが見つからなかった。一部海外の掲示板に同様の質問を投げている人を見掛けたが、質問の意図が伝わってないようで、期待しているような回答はもらえてなかった。

試行錯誤を繰り返し、一応それらしき方法が見つかったので備忘録も兼ねて書いておく。尚、基板の発注はこれからなので、この方法が本当に正しいかどうかの検証はこれからとなるのでご注意。

EAGLEのRatsnestで結果を見るとこんな感じ。ハンダ面と内層GNDがサーマルビアで接続され、内層の電源パターンは逃げている。



ライブラリエディタのパッケージ作成画面。この画面では、部品面のパッド(赤)に加え、tStop(斜線部:レジストの逃げ)、tCream(二重斜線:クリーム半田マスク)のレイヤーも表示している。下側の5個のパッドは通常のSMDパッド。特に細工はしてない。問題は上部の放熱フィン用のランド。ここにはパッドは置かず、パッド相当の大きさを位置を計算し、支障の無いレイヤーにパッド相当をRectで作成する。私はtDocのレイヤー(黄色)に作成した。黙視確認用なので、ガーバーアウトに関係の無いレイヤーにする。そしてそのRectで作成したエリアに対して、tStopとtCreamのパターンだけ作成する。



通常通り、回路設計エディタで作成した部品を使って設計し、レイアウト設計エディタで配置・配線する。

ここからが本題。上述したtDocのレイヤーのエリアを参考にPolygonで囲む。Polygonの線幅はデザインルールに従う。この線幅もエリアに含まれるので、正確に作りたい場合はtDocの矩形の線上をトレースするのではなく、若干内側にオフセットさせて線を引く。放熱フィンのエリア内だけに、いわゆるベタグランドを作ると考えれば良い。

囲い終わったら、内層GNDに落とすビアを通常通りに打つ。



Polygonラインのプロパティを確認し、Thermalsにチェックを入れる。



Ratsnestで確認した内層GNDパターン。サーマルビアで接続されているのがわかる。



部品面のパターンもサーマルビアで接続。



4層重ねて見た場合。一応意図通りに出来ている。実際の基板も意図通りだとは思うが…


スポンサーサイト

theme : 電子工作
genre : コンピュータ

EAGLE / 回路図とボードレイアウト、アノテーションが切れたリンクを自分で直す

回路はずっと書いていたが、約20年振りにプリント基板を自分で起こしてみようと思い、回路+アートワークCADのEAGLEを触り始めた。EAGLEはMac版まであるのが嬉しい。

回路図も書き終わり、使い方を覚えながらボードレイアウト画面側でパターン設計をしていると、設計がほぼ終了という段階で、うっかりボードレイアウトの方の画面を閉じてしまった。EAGLEは原則として回路図画面またはボードレイアウト画面の片方だけを閉じるアクションを禁じているのだが、まだ使い始めて間もなく、アノテーションの警告は出た物の、保存すれば大丈夫だろうと回路図側で保存作業を行ってしまった。詳細なアクションは忘れてしまったが、結果として回路図画面とボードレイアウト画面で、一部の信号が切れてしまった。ERCを掛けると、

 Different connections on U1 pin D0 and pad A3 (CPU_CLK / none)

という様なエラーが出て消えない。回路図を修正しても全然直らない。ボードレイアウト画面ではパターンがつながっているのだが、RouteもRipupも認識しないのである。

仕方が無いので回路図とボードレイアウトのデータを直接エディタで開いて直せないかと思い、眺めていたら何となく意味が理解出来た。直接エディタで修正したら直ったので備忘録として書いておく。

まず回路図ファイル xxxxx.sch の方を見てみると、以下の様なフォーマットになっている。一部を抜粋する。

<net name="CPU_CLK" class="0">
<segment>
<wire x1="104.14" y1="53.34" x2="121.92" y2="53.34" width="0.1524" layer="91"/>
<label x="109.22" y="53.34" size="1.778" layer="95"/>
<pinref part="U1" gate="G$1" pin="CLK"/>
</segment>
<segment>
<pinref part="CN33" gate="G$1" pin="IO@25"/>
<wire x1="-88.9" y1="58.42" x2="-109.22" y2="58.42" width="0.1524" layer="91"/>
<label x="-109.22" y="58.42" size="1.778" layer="95"/>
</segment>
</net>

<net name>タグは、ネット名を表している。<wire>と<label>内の数値は回路図上の座標と思われる。<pinref>タグはネットの接続情報。ここの情報とボードレイアウトファイル内の接続情報が一致している必要がある。

次に、ボードレイアウトファイル xxxxx.brd の方を見てみる。キーになるのが、<contactref>タグ。

<signal name="CPU_CLK">
<contactref element="U1" pad="W6"/>
<contactref element="CN33" pad="25"/>
<wire x1="54.18" y1="50.96" x2="54.805" y2="50.34" width="0.075" layer="16" curve="-90"/>
 .
 .
 .
<wire x1="52.805" y1="51.6004" x2="52.805" y2="53.379" width="0.075" layer="16"/>
<wire x1="52.805" y1="53.379" x2="52.805" y2="53.385" width="0" layer="19" extent="16-16"/>
</signal>

今回の問題の場合、xxxxx.brd 内の<contactref>の記述が2行共に欠落していたのが原因であった。<contactref>タグは見ての通り接続先の情報なので、これを sch ファイルの<pinref>タグの内容を見比べ、対応するように追加することで問題は解決した。

theme : 電子工作
genre : コンピュータ

プロフィール

hashiken

Author:hashiken
基本的に自分で作る、直す、メンテする。東京と安曇野の二重生活。

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
Photoscope∀
different version
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード
検索フォーム
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。