コイルドライバー

   CoilDriver_photo

 磁場を発生するコイルを駆動する際には、通常、大きな電流を必要とする。信号発生器にパワーアンプをつないだ構成となるが、今回は、信号発生器も内蔵したものを作成してみた。使用したパワーオペアンプは4-1章と同じものである。信号発生はDCから出力できるようになっており、パワーオペアンプとDC結合することにより、直流や0.1Hzから正しく大電流出力でき、ある直流電圧のバイアスをかけた上に別のサイン波を乗せるといったコイル駆動も可能である。上写真は下記(1)の実装例である。端子等は(1)の取説を参照。

 以下、3つのコイルドライバーを紹介する。

注:プログラムには記述されていないが、Mega168や328のPortD.0, PortD.1を入出力ポートとして使う際にはある種の注意が必要です。回路のページの7-0章を参照して、添付したプログラムを修正してください。

(1)AVRから16-bit DACをセットして、信号発生を行う方式。

 AVRのタイマーを使用し、ある周期ごとにDAC設定値を変えて、周期信号を出す。図1-1に回路図を示す。システム全体を制御し、信号発生も行うBASCOMのプログラムを示す 。
どのような機能が実装されているかの機器の取説を添付する。図1-1の回路図はAVRと信号発生部のみが記されている。ここで発生された信号出力(2 channel)を2個の2k ohm ボリュームを経由した後、4-1章にあるパワーオペアンプ(2個)に入力する。ボリュームはコイルに与える電圧を調整するためのものである。ボリュームがフルになった場合は、パワーオペアンプ(ゲイン=2)から+-20Vの出力が得られるようになっている。電源は24V 6Aのスイッチング電源を2個使い、+-24Vとしている。この+-24Vはパワーオペアンプに供給される他、図1-1の回路にも電源を供給する。この+-24VからIC4の+−15VレギュレーターであるLM325で+-15Vを作成し、16-bit DAC(AD5754)に供給する。あわせて、7805によって+24VからAVR用の+5Vを作る。回路図に入っているダイオード(D1, D8, D9)は電源回路保護用ダイオードであり、適当なシリコンダイオード(整流用)で1A程度の物。

 回路図左上側にある74HC14等の回路は、スイッチのチャッタリング止め(デバウンス)回路で、特にAVRのPD2, PD3に入力されるラインはインタラプトを使っているので、デバウンス対策が必要である。74HC14が2個余るので、ロータリーエンコーダーにもデバウンスを入れてある。

 使用した部品の入手先は以下である。
LM325, +- 15V tracking regilator: トーカイ。および同等品のLM125が共立のシリコンハウスにある。
AD5754, 16-bit 2-Channel SPI I/F DAC:RS-components(あわせて、ピン変換基板を使用)
LM385-2.5, 2.5V 電圧レファレンスIC:マルツ、または共立デジット

機器の性能について。

 AVRでDACに設定する値を算出して、AVR内部のタイマーによって周期的にDACに設定している。2-CH DACがあるのは、各々、逆位相の信号を発生して、コイルをドライブする場合があるためである。サイン波はAVRで計算していると間に合わないので、テーブルを参照している。ユーザーによって設定された下限電圧と上限電圧の範囲で波形を発生するために、少々計算時間がかかる。そのため、本機では最大、30Hz程度までしか発生できない点が難点である。しかしながら、本機はゼロHzから超低周波でのコイルドライブを目標としたので、何とか実験に使えた。特に、超低周波である0.1Hzからの正弦波、三角波、デューティーが50%でない任意波形など、また、上限電圧、下限電圧が+−非対称な波のドライブなど、直流結合でないと無理で、かつDAC発生が必須なため、非常に助かっている。

 

(2)FPGAで信号発生する方式

 AVRでの発生が間に合わないため、FPGAを用いた方式を紹介する。この方式で、50kHz ~ 100kHzまで信号発生をできる。AVR側はユーザーによって指定された波形を算出し、それをFPGA内部のRAMに転送する。その後、FPGAは100MHzのクロックで高速DACにデーターを周期的に送出し、DACよりアナログ波形を得る。100MHzが必要なのは、例えば100kHzのサイン波を1000点で表現する際、1点あたり、100MHzとなるためである。これで、三角波や任意波形、および+−非対称の波なども発生できる。なお、一般的なDDS ICの使用も初期に考えたが、それでは三角波や非対称波を発生できない。どのような周期でDACデーターを更新するかは、FPGA内に構成された一種のDDS方式でなされている。

 図2-1に回路図(2ページ)を示す。1ページ目はAVRとFPGA、2ページ目は高速DACである。回路図のVCCは+3.3Vである。+−AVDDは+−3.3Vである。したがって、+−3.3Vを、+3VはTA48033で、ー3VはLM337で作っている。その電源部の回路図を示す。トランスは9V、中点付きを用いた。なお、系が3.3Vなので、AVRの書込器として、ATMEL AVR ISP MK-IIが必要。(共立にあり)

 DACの出力電圧は+−1Vなので、この後、約7倍のオペアンプ回路を経由して、ボリュームによる出力調整を経た後、4-1章のゲイン3倍のパワーオペアンプに入力される。使用した約7倍アンプの回路図を示す。リレーでPower-ON時に過渡的に変な電圧がコイルに出力されないようにしてある。パワーオペアンプと同じ+−24Vで使用したので、OPA604を使用している。ゲイン調整のトリマ抵抗を調整して最終的なフル出力が+−20Vになるようにし、また、オフセットが0Vになるようにオフセット調整をパワーOP-AMP側のトリマー抵抗と、本機のオフセット調整トリマー抵抗で調整する必要がある。

使用した部品の入手先を以下に示す。
MFGA Cyclone board: マルツ。安いのでこれを使用した。機能を増やす場合は、このボードではロジックサイズが不足なので、HumanDataのボードなどの使用もある。
AD9763, 10-bit fast DAC:RS-components
AD8047, fast AMP:RS-components
Toyocom 25-MHz CMOS Xtal OSC: トーカイ。(もともとは+5V用なのだが、CMOSなので+3.3Vでも使えるかと思って実験してみたら、+2.6Vまで動いたので使っている。少々、イリーガルな使い方。)
文字表示、液晶:マルツ。(AVRは3.3Vで動作のため、液晶も3.3V品が必要。こちらのページの(2)を参照。)なお、3.3V系でも5V電源がある場合には5V液晶を使用する方法もこちらにある。

 FPGAの設計データーを圧縮ファイルで示す。Megafactionの部分は入れていないので、回路図よりパラメーターを読み取って、新規に定義、作成し直して欲しい。

 システムを制御するBASCOMのプログラムを添付する。また、機器の取説を添付する。基本部分は(1)のコイルドライバーと変わらないが、FPGAと通信する部分が異なる。実装例は(1)の写真とほぼ同等である。

(3)位相制御付き高速コイルドライバー

 (2)と同様な方式だが、2つのチャンネル出力の位相を10度ごとにずらせるようになっている。
このような位相制御はコイルによる回転磁場の発生などに使用できる。(例えば、2相なら90度。3相なら120度。)なお、3相にしたければ、現在の2系統を3系統に増設する設計をすれば良い。

 回路はほとんど(2)と同じである。(1カ所ジャンパーやパターンカットがあったかもしれないが、忘れた。無いかもしれない。(2)と(3)の回路図を比較参照されたい。)要は、制御信号の定義を少し変えた。(圧縮したEagleフォルダーの中にtextファイルが有り、そこにAVR側とFPGA側のインターフェース信号定義に関する変更が解説されている。)すなわち、位相差をFPGAに送るSPI信号の追加した/SS3ラインを定義替えで付加した。それがどのように機能するかは圧縮したFPGA設計ファイルを参照。要は位相シフト加算器をFPGA内部に付加し、その位相差をSPIで設定。AVR側の制御プログラム(添付したBASCOMファイル)は(2)では逆相の信号をBASCOM側で生成していたが、今回は180度位相差を設定すればよいだけなので、より簡略化された。なお、位相差の設定モードがユーザーインターフェースで追加されているので、そのプログラム部分が追加されている。そのシステムのユーザーマニュアルをPDFで添付する。仕様はほとんど(2)と同様であり、位相差の設定のみが拡張されている。

 

回路のTop Pageへ