MOSFETとマイクロコントローラーを使用してDCモーターを駆動しますか?


13

3.3Vで動作するAtmega328マイクロコントローラーと非常に小さなブラシ付きDCモーターを使用して、ナノクワッドコプターを開発しています。これらのモーターで使用される平均電流は、3.7Vで約800mAです。

最初は、それらを駆動するために、L293Dモータードライバーを使用しましたが、このコンポーネントは非常に非効率的でした。モーターが最大出力で動作したときに測定された電流は約500mAであったため、推力は本来よりもはるかに低くなりました。

ここで、この問題を解決するために、そのモータードライバーを4つのロジックレベルMOSFETに置き換えます。長い検索の後、私はこれを見つけます(2SK4033)。

それが機能するかどうか知っていますか?ダイオードと組み合わせて使用​​する必要がありますか?答えが「はい」の場合、これ(MBR360RLG)はどうですか?

これらのコンポーネントを選択したのは、同じオンラインストアから購入できるからです。


2
Andyはあなたの質問のMOSFETの部分に答えましたが、より基本的な質問については誰も言及していません:そのL293Dを4 N MOSFETに置き換える計画はありますか?N MOSFETをハイサイドに配置すると、効率の問題が発生する可能性があります。回路図の図面は、アイデアを明確にするのに役立ちます。
ラスロヴァルコ

「ハイサイド」とはどういう意味ですか?現時点では、私が持っている唯一の回路図はL293Dの回路図です。それが役立つ場合は、投稿できます。私の考えでは、各モーターはMOSFET(全体で4つ)で駆動され、必要な場合はダイオードでも駆動されます。より効率的なソリューションは何でしょうか?
supergiox

各L293D出力には、「ハイサイド」トランジスタ(Vccと出力の間)および「ローサイド」トランジスタ(GNDと出力の間)が含まれます。「ハイサイド」トランジスタをN MOSFETで置き換える場合、出力電圧を超えるVgs(少なくとも2..3..4V)を提供できる電源が必要です。または最大 Vgsは... -出力電圧Vccになります
ラズロValko

Vgsは3.3Vでなければならず、出力(Vds)は3.7V(固有のバッテリーの同じ電圧)でなければなりません。したがって、この問題がある場合、どうすればよいですか?別の解決策を提案できますか?
supergiox

2
次のオプションがあります。a)ハイサイドにP MOSFETを使用します。b)独立した倍電圧回路またはDC-DCコンバーター回路を使用して、ハイサイドMOSFETゲートを駆動するための2 * Vccを提供します。c)ブートストラップ回路を使用して、ハイサイドMOSFETゲートを駆動するための適切なVout + Vcc電圧を提供します。これらにはそれぞれ欠点や制限があります。
ラスロヴァルコ

回答:


17

MOSFETは、このアプリケーションで非常にうまく機能するはずです。考慮すべき事項を次に示します。

1:

FETを使用して負荷を駆動する場合、ハイサイド構成またはローサイド構成を選択できます。ハイサイドでは、FETが電源レールと負荷の間に配置され、負荷の反対側はグランドに接続されます。ローサイド構成では、負荷の一方のリードが電源レールに接続され、FETは負荷とグランドの間に配置されます。

HighVsLow

モーター(またはその他の負荷)を駆動する最も簡単な方法は、ローサイド構成でNチャネルMOSFETを使用することです。N-FETは、ゲート電圧がソースよりも高くなると導通し始めます。ソースはグランドに接続されているため、ゲートは通常のオン/オフロジックで駆動できます。FETが導通する前に、ゲート電圧が超えなければならないしきい値(「Vth」)があります。一部のFETのVthは数十ボルトです。Vccよりもかなり低いしきい値の「ロジックレベル」N-FETが必要です。

ローサイドFET構成には2つの欠点があります。

  • モーター巻線は、電源レールに直接接続されています。FETがオフのとき、巻線全体が「ホット」です。電源接続ではなく、グランドを切り替えています。

  • モーターには真のグランド基準がありません。FETの順方向電圧により、最低電位はグランドよりも高くなります。

これらのどちらも設計では重要ではありません。ただし、予期しない場合は問題が発生する可能性があります!特に高出力回路では:)

これらの問題を克服するには、ハイサイド構成でP-FETを使用できます。ただし、駆動回路はもう少し複雑になります。通常、P-FETスイッチのゲートは電源レールにプルアップされています。この電源レールはuCのVccよりも高いため、uCのI / Oピンを直接ゲートに接続することはできません。一般的な解決策は、小型のローサイドN-FETを使用してハイサイドP-FETのゲートをプルダウンすることです。

DualFet

R1とR3は、Q2が駆動されるまでFETをオフに保つために存在します。ローサイド構成でもR3が必要です。

あなたの場合、単純なローサイドN-FET(R3を使用)がより役立つと思います。


2:

最後の図のR2に注目してください。MOSFETのゲートはコンデンサとして機能し、ドレイン-ソース電流が流れ始める前に充電する必要があります。最初に電源を供給したときに大きな突入電流が発生する可能性があるため、uCの出力ドライバーへの損傷を防ぐためにこの電流を制限する必要があります。キャップは一瞬だけのように見えるので、大きな誤差の余地はありません。たとえば、特定のAtmelは40mAをソースできます。3.3V / 35mA => 94.3オーム 100Ωの抵抗器が最適です。

ただし、この抵抗はFETのターンオン時間とターンオフ時間を遅くし、スイッチング周波数に上限を設けます。また、FETが線形動作領域にある時間が長くなり、電力が無駄になります。高周波で切り替えている場合、これが問題になる可能性があります。1つの指標は、FETが熱くなりすぎている場合です!

この問題の解決策は、FETドライバを使用することです。これらは、より多くの電流をソースできるバッファであるため、制限抵抗を必要とせずにゲートをより速く充電できます。また、ほとんどのFETドライバは、標準のVccよりも高い電力レールを使用できます。このより高いゲート電圧は、FETのオン抵抗を減らし、追加の電力を節約します。あなたの場合、FETドライバに3.7Vで電力を供給し、uCの3.3Vで制御できます。

FetDriver


3:

最後に、ショットキーダイオードを使用して、モーターに起因する電圧スパイクから保護します。誘導性負荷を切り替えるときはいつでもこれを行います:

LowSideWithDiode

モーター巻線は大きなインダクタであるため、電流の変化に抵抗します。電流が巻線に流れていることを想像してから、FETをオフにします。インダクタンスにより、電場が崩壊するにつれてモーターから電流が流れ続けます。しかし、その電流を流す場所はありません!そのため、FETをパンチスルーするか、破壊的な動作をします。

負荷と並列に配置されたショットキーは、電流が移動するための安全な経路を提供します。電圧スパイクは、ダイオードの順方向電圧で最大になります。これは、指定したものの1Aでわずか0.6Vです。

前の写真、フライバックダイオードを使用したローサイド構成は、簡単で、安価で、非常に効果的です。


MOSFETソリューションの使用に関して私が見る他の唯一の問題は、それが本質的に単方向であることです。元のL293Dは、複数のハーフブリッジドライバーです。これにより、モーターを両方向に駆動できます。1Yと2Yの間でモーターを接続するイメージング。L293Dは1Y = Vddおよび2Y = GNDにでき、モーターは一方向に回転します。または、1Y = GNDおよび2Y = Vddにすることができ、モーターは反対方向に回転します。かなり便利です。

頑張って楽しんでね!


いいね!マイクロリードとゲートの間に抵抗が必要ですか?220オームは良い値ですか?(3.3V / 0.02A = 170オーム〜220オーム)
supergiox

1
良い質問。理想的な世界では、ゲートは電流をまったくシンクしません。これは、BJTに対するFETの利点の1つです。しかし、現実の世界では、ゲートは小さなコンデンサとして機能し、ドレイン-ソース電流が流れ始める前に充電する必要があります。FETをすばやくオンにするために、すばやく充電する必要があります。uCピンを最初にオンにすると、ゲート容量が短絡として表示されます。ATmega328はピンごとに40mAをソースできます。キャップは一瞬だけショートのように見えるので、私はあまり大きなエラーのマージンを気にしません。たとえば、3.3V、35mA:〜100オーム。本日中にこれをマージします!
ビットスマック14年

1
ああ、高周波でモーターを切り替える場合、この抵抗が問題になります。ゲートの充電と放電が遅くなり、スイッチング周波数が遅くなります。また、FETが線形動作領域にある時間が長くなり、電力が無駄になります。これが問題であることがわかった場合は、「FETドライバ」または他のバッファを使用します。これは、ゲートとの間でより大きな電流をソース/シンクするために作られています。その後、抵抗を最小化(または除去)できます。
ビットスマック14年

スイッチ周波数はpwm周波数なので、約500Hzになるはずです。
supergiox 14年

1
いいね:)私はjeしています。私はかなり長い間、クワッドヘリコプターを作りたいと思っていました!私たちは知ってみましょう...
bitsmack

12

これは、MOSFETで見たいものです。これは、2SK4033のデータシートからの抜粋です。-

ここに画像の説明を入力してください

あなたは平均電流が800mAだと言いますが、これは負荷の下で1A以上に増加するでしょうか?とにかく、1Aで3.3Vのゲート駆動電圧では、MOSFETは1Aの負荷に電力を供給すると、その端子間で約0.15V低下します。この電力損失(150mW)に耐えることができます。さらに重要なことは、バッテリ電圧が3Vを下回ると、必然的にゲート電圧が低下するため、パフォーマンスが失われることです。

この質問に答えられるのはあなただけです。これよりも優れたMOSFETがありますが、予想されるモーターの実際の負荷電流を計算する必要があります。

編集

ここに私が出会ったチップがありますが、これはMOSFETの代わりに非常に役立つかもしれません。TI のDRV8850です。これには2つのハーフブリッジが含まれているため、フライバックダイオードを必要とせずに4つのモーターのうち2つを独立して駆動できます(実質的に、トップFETは同期整流器として動作し、これにより損失が減少します)。各FETのオン抵抗は0.045オームであり、定格は5A(消費電力は約1.1ワット)ですが、OPが約1Aを必要とする場合、これは非常に簡単になります。電源電圧範囲は2V〜5.5Vなので、これも非常に適しています。

ここに画像の説明を入力してください


どうもありがとう。はい、モーターは電流を1Aをわずかに超える値に増やすことができますが、それは短時間だけです。私が知っている実際の規則は、平均の2倍(1.6A)の電流を考慮することです。150mWの電力損失は大きな問題ではないと思います。
supergiox

ゲート駆動が悪く、損失が大きくなると、バッテリ電圧が低くなります。もちろん、私は悪魔を支持しています!
アンディ別名

バッテリーの電圧が3V未満に低下することについて、あなたの言うことを理解しているかどうかはわかりません。とにかく、電圧レギュレータ(LE33CZ)を使用して、ATmegaを3.3Vで駆動します。電圧が「常に」3.3Vであることを意味していませんか?もう一つ質問。ダイオードはどうですか?
supergiox

1
バッテリー電圧が3.4ボルトまで低下すると、レギュレーターの出力も低下し始めます。これは、ゲートへの駆動電圧が低下し始め、フェットが非効率になることを意味します。ダイオードの前にこのシナリオに対処してください。ダイオードは比較してささいなものです。
アンディ別名

1
各モーターを制御するために1つまたは2つのFetが必要ですか。Laszloは、もともとL293を使用していたため、2が必要だと想定しています。
アンディ別名14年

6

ブラシ付きDCモーターが使用されているため、ドライブとして必ずしもHブリッジは必要ありません。実際にHブリッジが必要なのは2つのケースのみです。モーターを外部で整流する必要がある(たとえば、ブラシレスPMモーターを考える)または逆回転する必要がある。これらのどちらもここでは当てはまらないようです。単一方向または単一象限ドライブ(SQD)を使用すると、実行しようとしている作業が大幅に簡素化されます。

使用を検討しているFET(2SK4033)は、使用可能な駆動電圧とはあまり一致していません(Andyは既に理由を指摘しています)。FETの選択については、後で詳しく説明します。

シングルクアドラントドライブ(SQD)によるブラシ付きDCモーターの駆動

Vth

ここに画像の説明を入力してください

VωRwindRgRpdVbVdrv

ImIdpkIdrmsIcr-ave

  • IdpkIm
  • Id-rms2Im2
  • Icr-aveIm

FETを選択するための基本的な基準(FETを選択するABCの種類):

  • VDS1.5VB-max

VDS

  • Vth-maxVDrv-min3

    Vth-maxRds

  • ΔTJA

    熱上昇は本当に重要です。伝導損失、ゲート損失、スイッチング損失など、すべての損失を考慮しています。

3つの基準に基づくサンプル部品の選択:

VB-maxVDrv-minVDSVth-maxRDS

  • VDSVth-max

Rth

PTPcondPsw

どこ

PcondRdsIm2

Psw12ImVbFPWM(τf+τr)

VgsVdsVgsVmpVds

ここに画像の説明を入力してください

QmpVmpVdrvRgVmpVdrv

QmpτVdrv2Rg or τ = 2RgQmpVdrv = 2(100Ohms)(4nC)3.3V = 242nSec

Time for some operating assumptions. Ambient temperature is 50C (so max FET die temp is 100C), PWM frequency is 20kHz (because lower frequencies are audible, and really 5kHz to 10kHz is just obnoxious), duty cycle (DC) is 90%, and motor current (Im) is 1.2A. From the Rds versus temp curve on page 3 of the datasheet we see that at 100C, Rds is 33mOhms. Now we are ready to calculate power loss in the FET.

PT = 0.9(33mOhm)(1.2A)2 + (3.3V)(1.2A)(242nSec)(20kHz) = 36mW + 19mW = 55mW

So, for these conditions FET heat rise comes in at about 1/2 the limit of 100mW. In fact, Im could be 1.65A and the FET would still be in the heat rise budget.

Loose Ends

  • Put the drive circuit and switches close to the motor.

  • While it may be possible for the micro to drive the FET directly, a driver for the protection of the micro is a good idea (something like a NC7WZ16 could work here).

  • Gate circuit resistance becomes an exercise in impedance matching. The lowest gate circuit resistance should be is the characteristic impedance of gate circuit parasitic L and FET Ciss. Here is an earlier question that goes in to more detail and may be helpful.

  • Choose a diode with the same voltage rating as the FET, and current rating higher than the maximum Im. A Schottky will have lower loss, but if FET duty cycle is > ~70% it won't really matter if a switching diode is used instead.

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.