以前のプロジェクトで、電流トランスを使用するオプションについて議論し、それ用のシングルチャンネルアンプ/精密整流器を構築しました。このプロジェクトでは、そのアイデアを新たなレベルへと進めています。
私が借りている家のガレージには、240V/16Aの電源しかありません。これは不幸なことです。なぜなら、メーカーとして、私はCNCルーターやレーザーカッターなど、かなり楽しいおもちゃをガレージに持っているからです。近々大きなプロジェクトでカーボンファイバー強化プラスチック部品を製作するための型を加工する予定です。古いコンプレッサーは、オンにすると即座にガレージへのブレーカーを落としてしまうので、CNCルーターを動かすためのオプションを再評価しなければなりませんでした。それはフル稼働時に私が利用可能な16A以上を必要とします。そのため、電流引きを減らすために比較的小さな低騒音コンプレッサーを購入しましたが、CNCルーターのスピンドルが高負荷のときや、スピンドルのチラーが稼働しているときにそれが起動しないようにする方法が必要です。
私の解決策は、ルーターと関連機器の電流を監視できる複数チャンネルの電流モニターを構築することです。これにより、他のシステムの負荷に応じて、小型コンプレッサーを安全に起動できるタイミングを判断できるはずです。工具交換用スピンドルには常時空気の流れが必要であり、ベアリングを清潔に保つためには空気が流れている必要がありますし、チェンジャー内のピストンは工具が滑らないように常に圧力をかける必要があるため、空気圧は非常に重要です。
コントローラーボードには6つの出力チャネルを設け、6つの電流センスチャネルに対応させます。私のプロジェクトにはそんなに多くのチャネルは必要ありませんが、汎用のオープンソース設計としては、あなたが私とは異なる何かをボードで行いたいかもしれません。また、ボードにはリアルタイムの電流を表示するディスプレイも設ける予定です。
このプロジェクトは電力計ではありません。電圧を監視する能力はありません。したがって、負荷の力率を監視することもできません。私の要件は、16Aブレーカーを誤って作動させないようにすることだけです。この機能が必要な場合、このプロジェクトは良い出発点になるかもしれません。なぜなら、私はAC電圧を隔離し、より扱いやすいレベルに下げるために小型トランスを追加する予定だからです。
いつものように、私のプロジェクトの設計ファイルはGitHubで見つけることができます。それらは非常に寛大なMITライセンスの下で自由に使用できます。これにより、プロジェクトを自由に使用できます。このプロジェクトの構築に使用されたコンポーネントを探している場合、私の無料でオープンソースのAltium Designer Library®で全て見つけることができます。
上記は、Altium 365 Viewerで読むことになるPCB設計です。これは、設計を表示したり、ボタンを一つクリックするだけでダウンロードできる機能を持ち、同僚、クライアント、友人と繋がる無料の方法です!設計を数秒でアップロードし、重たいソフトウェアや高性能なコンピューターがなくても、詳細に深く見ることができるインタラクティブな方法を持っています。
このプロジェクトのPCB上のコンポーネントの数にもかかわらず、この電流モニターの回路図はかなりシンプルです。
現在のセンサーは、Talemaの電流トランスを使用して以前に構築したものと全く同じです。信号の2:1の増幅を伴う5つの10Aセンサーを持っており、整流により、AC信号の信号振幅の4倍を得ることができます。6番目のセンサーは、1800Wのツールチェンジングスピンドルの全振幅を監視することができるように、1:1の増幅を持つ15Aです。これは標準的な基本精密整流回路です。より高度な精密整流回路には、いくつかの追加コンポーネント(フィードバック抵抗と並列のダイオードなど)が加わります。このプロジェクトの目的では、基本回路は、精度と許容範囲について私が求める以上のものを提供します。
このプロジェクトの中心は、センサーからのすべての読み取りを受け取り、どの出力をオンにすべきかを決定するマイクロコントローラーです。新しいSTM32Gシリーズのマイクロコントローラーを真剣に検討していましたが、最終的にNXP LPC11U35を選択しました。LPCの主な魅力は、USBブートローディング機能で、CNCルーターのキャビネットにインストールされた後、新しいファームウェアを迅速にボードにデプロイできることです。LPCシリーズのほぼ全体が、オンボードのブートローダーROMを使用してUSB大容量記憶装置としてデバイスをブートさせることを可能にし、追加のハードウェアやソフトウェアなしで、接続されたコンピューターに表示されるUSBドライブに新しいファームウェアをコピーできます。この機能により、オフィスでファームウェアを開発し、インストールされたボードに簡単にドロップできます。
LPC11U35の主な欠点は、古いARM Cortexであり、10ビットADCしか搭載していないことです。このプロジェクトに十分な解像度をADCが提供できるか確認する必要があります。
前回の電流トランスフォーマーの記事では、アンプからの信号のRMS電圧を取得するのを忘れ、電流トランスフォーマーからの信号のRMS電圧のみをキャプチャしました。
現在のトランスフォーマー回路をブレッドボード上で再構築し、新しいスコープの読み取り値を得ました。1.1kWのセラミックヒーターをベンチから熱的に隔離するために逆さまの焼き鍋の上に置き、ベンチトップ電源によってトリガーされる固体状リレーを使用しています。
青いトレース(チャンネル2)は精密整流器の出力であり、黄色いトレース(チャンネル1)はオペアンプの前の電流センサーからのAC出力です。
このプロジェクトの回路に従って構築された電流センサーアンプでは、理論上4.429Aが流れている状態で1.299v RMSを持っています。これにより、約293mVごとに1アンペアの解像度が得られます。3300mvの範囲(3.2mvの解像度)を持つ10ビットADC(1024値)を使用すると、約0.01Aの読み取り可能な解像度が得られます。これは、より現代のマイクロコントローラーにある14ビットや16ビットのADCと比べると素晴らしいとは言えませんが、このプロジェクトや他の多くのアプリケーションには十分です。
この1枚の回路図には、本当に多くのことが行われています!すぐに注目すべき点は、USBライン上のプルアップPチャネルMOSFETは、LPC11Uシリーズの最新のシリコンリビジョンでは必要ないということですが、手元にある古いMCUを使用してこのボードを構築する可能性があるため、USB接続が機能しないリスクを避けるために、それを残しておくつもりです。もし新しい在庫のLPC11U35を購入する場合は、IC3に関連するすべてを省略できます。
USBの話題である間に、USB 2.0ラインをESDイベントから保護するために設計されたTVSダイオードも持っています。USBコネクタは、マイクロコントローラに直接ESD放電が行われる絶好の場所なので、保護のための最優先事項です。
回路図の左側を下に進むと、3.3Vの電源がMCUの起動前に安定していることを保証するためにリセット監視ICを配置しています。また、手動でボードをリセットするためのボタンもあります。さらに、ブートローダーを有効にするボタンも一緒に配置しています。私は論理的に物事をまとめておくのが好きです。ボードをUSBマスストレージブートローダーモードにするには、プログラミングボタンS2を押し続けながらリセットボタンS1を押すだけです。起動後にプログラミングボタンを1秒程度押し続けると、USBケーブルが接続されていればデバイスはUSBマスストレージクライアントデバイスとして起動します。
回路図の右上には、IDEでボードをデバッグできるようにする標準の10ピンシングルワイヤデバッグ(SWD)コネクタも配置しています。
最後に、マイクロコントローラーの入力フィルタリングについてです。IOコネクタについては後ほど記事の別のセクションで取り上げるので、2つのバスとそれらの設定方法を飛ばしたことを心配しないでください!この基板の電源フィルタリングはかなり重要です。なぜなら、大量の電気ノイズ(伝導および放射される両方)を生成する産業用機械にインストールされ、その機械から電力を供給されるからです。2000W以上のAC-DC電源、2200Wの可変周波数ドライブがスピンドルを駆動、DCサーボ、産業用チラー、集塵機が同じAC供給から動作しています。ノイズの量が多いため、各電源ピンの近くにフェライトビーズを配置し、2つのデカップリングキャパシタを配置しています。通常、マイクロコントローラー設計ではフェライトビーズ1つと、おそらくいくつかのバルクキャパシタを使用しますが、この設計ではマイクロコントローラーとフィルターの間のトレースを可能な限り短くしたいと考えています。マイクロコントローラーの電源供給ピンがデバイスの反対側にあるため、トラックを短く保つために各ピンにフィルターを構築することにしました。
各電源ピン用のフェライトは、100MHzで可能な限り高い抵抗を持ちつつ、最低限の直流抵抗を有するように選択されました。基本的に、私はどれだけの直流抵抗を受け入れることができるかを決定しようとし、その直流抵抗に対して周波数での抵抗を最大化しました。
私のCNCルーターには既に複数の供給源があり、5Vレールが最もクリーンで最も使用されていないため、この供給源から基板を動かすのが理にかなっています。さらに、これによりワークベンチ上のUSBケーブルから基板を動かすこともできます。これらの供給源のうちいずれか一つだけが基板に電力を供給することを想定しているため、逆極性保護と両方の供給源が同時に接続されることに対する基本的な保護として、各入力に単純なダイオードを追加しました。
保護ダイオードは、非常に低コストの線形レギュレータを使用できるように、低い順方向電圧降下が選択されました。これにより、両デバイスの組み合わせた電圧降下が、私が必要とする3.3ボルト以下になることがないようにします。
リニアレギュレータと保護ダイオードの間に、πフィルターを追加しました。入力でどのような周波数に対処することになるか正確にはわかりませんので、利用可能な4-5mmサイズのインダクター内で可能な限り高いインダクタンスを目指しました。この基板は、すべてのLEDとオプトアイソレータが動作している場合に最大1アンペアを引き出す可能性があるため、できるだけ低いDC抵抗を得るために、シールドされたフェライトコアのワイヤ巻きインダクターを使用しています。電流要件とサイズがわかっていたので、サイズと電流要件を満たしつつ、高いインダクタンス値と低いDC抵抗を持つインダクターを探すだけでした。インダクターの両側に10uFのキャパシタを追加してπフィルターを完成させました。これは低コストでありながら、まともな量のキャパシタンスを持っています。
おそらく、使用している固体状リレーにはオプトアイソレータが組み込まれているため、各出力をオプトアイソレートする必要はないと思いますが、オープンソース設計であるため、誰かがリレーや産業用コントローラのIOを直接ボードに接続するかもしれないという点ではわかりません。付加的な利点として、アイソレータは私に安心感を与えてくれます。アイソレータ内のLEDの電流は、ARM Cortexが駆動できるよりも高いため、非常に安価なNチャネルMOSFETを使用して、オプトアイソレータ内のLEDと出力が有効であることを示す外部のLEDを駆動しています。
また、このボード設計には実際には2つの出力だけが必要ですが、オープンソースプロジェクトとしては、より汎用的な設計にすることが望ましいと考えました。6つの電流センスチャネルに合わせて6つの出力チャネルを追加しているので、これが異なる産業用機械で使用される場合、コントローラが電流センサがある各負荷を有効または無効にすることを可能にします。
入力コネクタのESDから基板を保護するために、できるだけ5Vに近いTVSダイオードを使用しています。固体状リレーをこの基板に接続するために、DigiKeyからプリクリンプされたJST KHコネクタを使用する予定です。これらはJST PHと互換性があります。また、他のアプリケーションに柔軟性を提供するために、2.54mmピッチのワイヤー・トゥ・ボード端子台も基板に追加しました。プリクリンプされたワイヤーは私にとって非常に便利です。一つを半分に切ると、固体状リレーで使用するための2本のケーブルがすぐに使えるようになり、ワイヤーを切って両端を剥がす必要がなくなります。これにより、設置時の時間を節約できます!しかし、真剣に言うと、クリンプされたコネクタは、多くの揺れや振動がある機械では、より安全で抜けにくく、疲労しにくいでしょう。
このプロジェクトの最終的な回路図ブロックはLCDディスプレイです。比較的安価で堅牢なNewhavenグラフィックディスプレイを使用することにしました。これはシンプルなSPIインターフェースを持っているためです。128x64ピクセルのディスプレイを使用したかったのですが、ボードにはそのためのスペースがなく、ボードレイアウト中に回路図に戻り、128x32ピクセルのディスプレイを使用するように設計を変更しました。多くのデカップリングキャパシタが必要ですが、それ以外には接続要件はほとんどありません。
このプロジェクトの重要な側面の一つは、5つの同一の電流センサーチャネルと6つの同一の出力チャネルを持っていることで、マルチチャネル設計がこのプロジェクトには理想的です。私の意見では、これはAltiumが他のECADソフトウェアに比べて非常に優れている点です。その機能は、迅速なルーティングとボードのレイアウト、そして読みやすい回路図を可能にします。
上位レベルのシートに回路図シートブロックを複製するのではなく、以下に示すように、REPEAT機能を使用して1つの回路図シートブロックを追加するだけで、回路図をはるかにクリーンにすることができます。
これにより、それらの回路図ブロックがすべて1つの仮想コンポーネントスタックに変換されます。このプロジェクトでは、マイクロコントローラからすべての電流センサーへの単一接続を可能にします。回路図シンボルブロックのポートを変更する必要がある場合、変更は一度にすべてのチャネルに適用されるため、設計フェーズ中にプロジェクトのニーズが変更された場合に時間を節約できます。
リピート機能を使用することで、今ではすべてのセンサーチャネルがまとめられ、回路図が読みやすくなり、プロジェクトのその時点でPCBレイアウトに取り掛かる際にはるかに簡単になります。
この機能をどのように活用し、設計に使用するかを見ていきましょう。
マルチチャネルツールを機能させるには、チャネルの接続をまとめるためにバスを使用する必要があります。私たちのマイクロコントローラの回路図では、各ADC接続にポートを持つのではなく、すべての接続に対して単一のポートを持ちます。
これにより、回路図がすっきりとし、6つのポートすべてを分割表示する必要がなくなります。
メインメニューからPlace -> Busを使用して、ワイヤーの代わりにバスを配置することができます。バスは一緒に束ねられたワイヤーの束と考えることができます。バスを機能させるためには、バス上で実行されている接続の数をAltiumに伝える必要があります。これは、バスにネットラベル(Place -> Net Label)を配置し、ADC[0..5]のような名前を付けることで行われます。これは、バスがADC0、ADC1、ADC2、ADC3、ADC4、ADC5を運ぶことを意味し、角括弧内の二重のドットは「0から5まで」という意味です。
繰り返し機能を使用する場合、ネット番号付けは0ではなく1から始める必要があります。しかし、ADCに関しては、繰り返しブロックの一部ではない15Aの電流センサーも持っているため、0から始めます。ADCチャネル0は15Aセンサー用で、1から5は10Aチャネル用です。OUTバスは1から6まで番号付けされており、それぞれが回路図とボード上で繰り返しブロックになります。
バスに名前を付けた後、バスに接続される各ワイヤーにネットラベルを追加する必要があります。ワイヤーはバスと同じ名前で、最後に接続番号が付きます。たとえば、OUT1とOUT3はバスOUT[1..6]に接続されています。これらのワイヤーはバスエントリ(配置 -> バスエントリ)を使用してバスに接続されます。これは、見える45度の角度の接続です。また、OUT4、OUT5、OUT6がグラフィカルにバスワイヤーに接続されていないことに気づくかもしれませんが、ネットの名前があれば、Altiumはこれらのワイヤーがバス内を走ることを認識します。これは非常に便利で、すべてのワイヤーが互いに交差する必要がある場合に回路図が読みにくくなるのを防ぎます。
マイクロコントローラのシートが関連するポートで設定されたので、これをトップレベルの回路図シートに追加できます。これを行う簡単な方法は、配置 -> シートシンボルを使用するのではなく、回路図を右クリックしてシートアクション -> シートからシートシンボルを作成に進むことです。これにより、回路図のシンボルが作成され、回路図にあるすべてのポートが追加され、時間が節約されます。
チャネルシートに対しても同じことを行い、これでスキーマティックに両方のシートシンボルが含まれるようになりました。出力チャネルシートの名前を変更する必要があります。形式は次のとおりです:
REPEAT(name, start, end)
デフォルトでは、チャネル内の各コンポーネントは「designator_sheetname」という名前になります。個人的には、部品表をすばやく読んで、その行がどのタイプのコンポーネントであるかを確認できるように、デザイネータを最初に持ってくるのが好きですが、好みの形式がある場合は、Project -> Options -> Multi-Channel ウィンドウでいくつかのオプションが利用可能です。形式にまだ満足していない場合は、標準オプションからの変数を使用して、独自のデザイネータ形式を入力することもできます。
また、REPEAT( )でポート名を囲むことも非常に重要です。そうしないと、ワイヤーは最初のバスエントリーをすべてのポートに接続するだけで、各チャネルごとに新しいポートを生成するのではなく、通信プロトコルの場合は例外で、同じSPIクロック/MISO/MOSIまたはI2C SCL/SDAを各シートに送りたい場合があります。これにより、マルチチャネルシートを使用する方法に大きな柔軟性がもたらされます。
マイクロコントローラのバスポートから名前付きバスが出ているので、それを同じ名前のワイヤーに直接接続するだけの簡単な作業です。少し奇妙に見えるかもしれませんが、これはAltiumに対して、バスを各回路図シートに分割してほしいと伝えるものです。Altiumは、各チャネルを生成する際に自動的にチャネル番号をバスネット名の末尾に追加します。バス名は、ポート名やブロックのための回路図シート内のバスの名前と一致する必要はありません。同じでも異なっていても構いません。唯一重要なのは、バスとワイヤーの名前です。
先に記事で触れたように、現在センサーにも同じ設定を適用しました。ADCバスを0から5まで番号付けし、15Aセンサー用にADC0をバスエントリで分割しています。
マルチチャネル回路図が完成したので、ボードレイアウトを開始できます。トップレベルの回路図が示すように、繰り返される各チャネルの最初のチャネルをルーティングするだけで簡単です。
エンジニアリング変更指令を実行してPCBにすべてのコンポーネントを追加すると、すべてのトップレベルシートブロックがそれぞれの部屋に表示されます。ここで注目すべき点は、マイクロコントローラーからチャネルに向かって伸びる複数の未接続ネットがあり、すべてのバス名付けがうまくいったことを示しており、各チャネルが正しく接続されています。ADCと出力ポットにREPEAT( )コマンドを追加していなかった場合、1本のワイヤーが上に行って並列に接続されるのを見るだけでした。電源接続も同様です。
また、ディスプレイのフットプリントがかなり大きく見えるかもしれません。これは、以前に使用したいと思っていた128x64ピクセルディスプレイです。ボードをルーティングした後、PCBに収めることができなかったため、回路図に示されている128x32ピクセルディスプレイに変更しました。
出力接続から始めます。最初のチャネルを、外部接続を除く必要なすべてのものを備えた部屋内でルーティングしようと思います。また、配置されたコンポーネントにとってより実用的なサイズに部屋を縮小しました。
これで、「Copy Room Formats」ツールを使用して大量の時間を節約できます。このツールにアクセスする主な方法は2つあります。まず、ユーティリティツールバーが有効になっている場合、それは部屋のアイコンの下にあります。
ユーティリティツールバーを有効にするには、デザイナーウィンドウの上部のどこかを右クリックして、ユーティリティをチェックします。
ツールに到達する「長い」方法は、上部メニューからDesign -> Rooms -> Copy Room Formatsに進むことです。
ツールがアクティブになると、既にルーティングした最初の部屋(テンプレート)をクリックし、次に同じレイアウトとルーティングを適用したい次の部屋をクリックするだけの簡単な作業です。
同じ設定を他の部屋にも適用するために、追加の部屋をクリックし続けることができます。このツールは、同じマルチチャネルセット内の部屋にのみ機能します。これは、マルチチャネルADCの部屋から15A ADCにフォーマットを適用することはできないことを意味します。15A ADCはほぼ同じ回路図であり、抵抗値が1つだけ異なるだけですが、他のものと同じマルチチャネルセットになかったため、互換性がありません。
出力チャネルのルームフォーマットをコピーし終えた後、出力用に6つの同一ルーティングチャネルができました。この設計の各チャネルの回路図とルーティングは非常にシンプルですが、複雑なマルチチャネルオーディオ製品や高度なマルチチャネルセンサーでこれがどれほどの時間を節約できるか想像できると思います。
同じ技術をADCチャネルに適用し、結果として私のボードのルーティングの大部分がすでに完了しました。
低コストの中国のPCBサプライヤーを使用する予定です。彼らは100mm x 100mmのボードに最適な価格を提供しています。このサイズ制約を考慮して、すべてのチャネルをレイアウトできます。出力をボードの一方の側にすべて収めることができましたが、小さいにもかかわらず、現在のセンサーはまだ大きすぎるため、ボードの一方の側をU字型に配置しました。
USBコネクタと5V入力を基板の一辺に近接して配置し、電源ルーティングを整理しました。これは二層で、厚さ1.6mmのPCBであるため、USBラインのインピーダンスマッチトレースを走らせることはしませんでした。USBブートローディングまたはシリアルポートが使用するデータレートを考えると、信号の整合性はそれほど重要ではありません。このマイクロコントローラーをマイクロコントローラーピンにはんだ付けしたワイヤーでUSBポートに接続し、直接USBコネクターに接続したので、このような扱いにも十分対応できることがわかりました。2層1.6mm厚のPCBの場合、インピーダンスマッチするためには、私のUSBトレースは約1.5mm幅でなければならず、それはルーティングに少し不便です。
最後に、画面が配置されており、できれば、表示内容がケーブルによって見えにくくなることがないように願っています。
基板には取り付け穴とフィデューシャルマークを追加しました。この基板は奇妙な場所に垂直に取り付けられるため、取り付け穴は不可欠です。
少しの楽しみでアートワークを加えたおかげで、基板はかなり良い感じに見えます。なぜか私のコンピュータにあるフォント「AlternateGothic2 BT」は、コネクタのラベリングにとても適していて、読みやすく非常にコンパクトで、端子ブロックには最適です。
基板の底面には、クライアントのために作業する設計でよく使う標準的なブロックを追加しました。これには、追跡や一般的なフィクスチャーのテストプログラムをロードするためのバーコード、組み立て日、QAセクション、シリアル番号用のエリアが含まれています。このブロックが基板の底面を仕上げ、少しクラシーに見せる方法が気に入っています。
この電流モニター用の基板は、私のかなり特定の要件にもかかわらず、かなり一般的な電流センスおよび制御基板として構築されました。設計ファイルはMITライセンスの下でライセンスされているので、自分で作ることも、自分のプロジェクトの一部として設計を基にすることもできます。いつものように、プロジェクトの設計ファイルはGitHubで見つけることができます。
Altium Designer on Altium 365は、これまでソフトウェア開発の世界に限定されていた電子業界に前例のないレベルの統合を提供し、設計者が自宅で作業し、前例のない効率性を達成できるようにします。
Altium Designer on Altium 365で可能なことの表面をかすめただけです。製品ページでより詳細な機能説明を確認するか、オンデマンドウェビナーのいずれかをご覧ください。