Altium Designerを用いた高度な設計技術

投稿日 2020/04/20 月曜日
更新日 2020/10/29 木曜日

この記事では、Altium Designer®を使用してデフォルトでは利用できない追加機能を実装する方法について学びます。Altium Designerの強力な側面を発見し、それをマスターすることで、設計スキルをより高いレベルに引き上げることができます。この記事では、設計検証を行うスクリプトを実装する方法について説明します。

学ぶ内容:

  • 設計要件を検証するためのルールを作成する方法。
  • Altium Designer 19でスクリプトを使用してそれらのルールを検証する方法。

典型的な問題

現在、設計は非常に複雑です。一般的に、顧客はPCB設計者に対して、初めての試みでボードが機能することを期待しています。これを達成するためには、細部に注意を払うことが重要です。

この例では、実際の設計で使用できるスクリプトを作成する方法を見てみましょう。次の設計問題を考えてみましょう:

16ビットADCコンバータを使用した高解像度ADCボードを設計する必要があります。ADCコンバータの入力インピーダンスは1 kΩです。「ドライバーとADCの間の最大トレースインピーダンスは、1 LSB以下の誤差を達成するためにはいくつですか?」「私たちを助けるスクリプトを設計できますか?」

Easy, Powerful, Modern

The world’s most trusted PCB design system.

図1 高解像度ADCのトレース設計

この質問に答えるためには、トレースの抵抗率を計算し、トレース上の電圧降下が1 LSBよりも高いかどうかを確認する必要があります。

トレースの抵抗率を計算するには、次の式を使用できます:

.

Easy, Powerful, Modern

The world’s most trusted PCB design system.

例えば:

トレースの寸法が次のようであると仮定しましょう:L = 10 cm、h = 0.035mm、w = 0.381mm。[1]を使用し、周囲温度が25°Cであると仮定すると、DCトレースインピーダンスは129 mΩで、これは0.013%の電圧誤差を生じます。これは、16ビットADCの1 LSB(0.0015%)よりもはるかに上です。したがって、上記のトラックは、ほぼ9 LSBのオフセット誤差を与えます!

Altium Designerに上記のチェックをすべて実行してもらうことは可能ですか?可能であればリアルタイムで。

答えは明らかにはいです。

この情報を提供するスクリプトを設計しましょう。

トレースをクリックすると、Altium Designerにトレースの抵抗を計算したり、電圧降下を計算したりするようなチェックをしてほしいと思います。

図2 デモスクリプトからの情報の例

Altium Designerでスクリプトを設計する方法

Altium Designerはいくつかの言語でスクリプトを受け入れますが、私のキャリアの中で多くの言語を使用してきましたが、プロとしての最初の言語の一つがDelphiだったので、このスクリプトをPascalで書くことにしました。しかし、Visual Basicのような他のスクリプト言語を好む場合はそれを使用することもできます。

上記の問題を解決するAltium Designerでのスクリプトの設計方法を見てみましょう。

私たちのスクリプトでは次のことを行いたいです:

  1. PCBボードを読み込む
  2. 全てのレイヤースタックを読み込む(トレースの幅、高さなどの情報を得るために)
  3. ユーザーがマウスで選択したトレースを読み込む
  4. 式[1]を使用して抵抗を計算する
  5. トレースエラーとADCエラーを表示する

Altium Designerでスクリプトを実装する方法

1.    PCBボードを読み込む

最初に実行したい指示は、PCB設計を読み込んでBoardという変数に保存することです。次の指示でこれを行うことができます:

.

2.    レイヤースタックを読み込む

Boardが読み込まれたら、レイヤースタックを読み込んでStackupという変数に保存したいと思います:

.

3. マウスで選択したトレースをロードする

GetObjectAtCursor() メソッドを使用して、選択されたトレースを取得し、Trace という変数に保存できるようになりました。

.

4. トレース抵抗を式[1]を使用して計算する

ユーザーがマウスでトレースを選択したら、トレースの幅、長さ、高さを計算し、TraceThickness、TraceWidth、TraceLength という3つの変数に保存します:

 

 

.

最終的に、式[1]を使用してトレース抵抗Resを計算し、電圧降下を計算します(ADCのVrefが1Vと仮定)。

.

5. トレースエラーとADCエラーを表示する

すべての計算が終わったら、画面に表示できます。これを行う簡単な方法は、MessageDlg() ウィンドウを使用することです。

OutputString := 'トレースの厚さ = ' + FloatToStrF(TraceThickness,0,5,4) + ' mm' + #13#10;

OutputString := OutputString + 'トレース幅 = ' + FloatToStrF( TraceWidth,0,5,4) + ' mm' + #13#10;

OutputString  := OutputString + 'トレース長さ = ' + FloatToStrF(TraceLength,0,5,4) + ' mm' + #13#10#13#10#13#10;

OutputSTring :=  OutputString + 'トレース抵抗 = ' + FloatToStrF(Res,0,5,4) + ' mohm' + #13#10;

OutputSTring :=  OutputString + 'トレース電圧降下 = ' + FloatToStrF(VoltageDrop,0,2,2) + ' %'  + #13#10;

OutputSTring :=  OutputString + 'ADC LSB = ' + FloatToStrF(ADCLSB,0,2,2) + ' %';

      MessageDlg(OutputString,mtInformation,4,0);

 

スクリプトの実行方法

スクリプトをテストするには、PCBドキュメントからファイル->RunScript…をクリックします。

次に、スクリプトを選択します:

これで大きな十字が表示されるはずです:

分析したいトレースをクリックします。

これで、計算結果を含むメッセージウィンドウが表示されるはずです。

このスクリプトを拡張して、より洗練されたチェックを追加することが可能です。例えば、トラックをアーチに延長し、温度の影響を加えるなどです。これは演習として皆さんにお任せします。

何を学びましたか?

Altium Designerを一度マスターすれば、複雑な操作を行うことができることを見てきました。この例では、クリック一つでDCトレースインピーダンスを測定し、高解像度ADC設計における電圧誤差を推定する方法を見てきました。

このデモスクリプトには多くの制限がありますが、あなた自身のAltium Designer拡張の基礎として使用することができます。

さらに質問がありますか?Altiumの専門家に電話するか、Altium Designerの最高のPCB設計ソフトウェア機能やトレースインピーダンス計算機についてさらに詳しく知ることができます。

関連リソース

関連する技術文書

ホームに戻る
Thank you, you are now subscribed to updates.
Altium Need Help?