JAJU929A April   2024  – April 2024

 

  1.   1
  2.   概要
  3.   参照情報
  4.   特長
  5.   アプリケーション
  6.   デザイン イメージ
  7. 1システムの説明
  8. 2システム概要
    1. 2.1 ブロック図
    2. 2.2 設計の考慮事項
    3. 2.3 主な使用製品
  9. 3ハードウェア、ソフトウェア、テスト要件、テスト結果
    1. 3.1 ハードウェア要件
    2. 3.2 テスト構成
    3. 3.3 テスト結果
  10. 4設計とドキュメントのサポート
    1. 4.1 デザイン ファイル
      1. 4.1.1 回路図
      2. 4.1.2 BOM (部品表)
    2. 4.2 ツールとソフトウェア
    3. 4.3 ドキュメントのサポート
    4. 4.4 サポート・リソース
    5. 4.5 商標
  11. 5著者について
  12. 6改訂履歴

設計の考慮事項

TIDA-010950 は、BLDC モーター制御および電子膨張弁制御向けのシングル ボード設計を実現したものです。このリファレンス デザインでは、BLDC モーター制御とステッピング モーター制御のいずれかを選択できます。

このセクションでは、TIDA-010950 の開発と設計に使用される理論と設計上の考慮事項を概説します。

24VAC または 24VDC 入力の選択可能

このリファレンス デザインでは、24VAC 入力または 24VDC 入力のいずれかを選択できます。図 2-2 に、24VAC 入力と 24VDC の入力、およびその 2 つの入力のいずれかを選択するスイッチを示します。J18 は 24VAC 入力コネクタで、J19 は 24VDC 入力コネクタで、S1 がいずれかの入力を選択するスイッチです。

TIDA-010950 TIDA-010950 入力電源の選択 図 2-2 TIDA-010950 入力電源の選択

24VAC 整流

このデザインでは、24VAC 入力オプションを選択した場合、24VAC 入力の DC 整流にフルブリッジ整流器を使用します。120VAC から 24VAC への変圧器には、漏れインダクタンスと寄生容量があります。ブリッジ整流器の 4 つのダイオードが導通していないとき、デバイスは高周波で発振する共振回路を形成します。この発振を抑える方法の一つには、ダイオードと並列に接続されたコンデンサを使用するやり方があります。これによって、発振を大幅に抑えることができます。

次の 図 2-3 に、シミュレーション回路と 100Ω の抵抗を負荷に利用した整流段の波形を示します。

TIDA-010950 TINA-TI による 24VAC
                    整流のシミュレーション回路 図 2-3 TINA-TI による 24VAC 整流のシミュレーション回路
TIDA-010950 TINA-TI による 24VAC
                    整流のシミュレーション波形 図 2-4 TINA-TI による 24VAC 整流のシミュレーション波形

eFuse 保護

TIDA-010950 リファレンス デザインは、過電圧または過電流事象が発生した場合は TPS16410 eFuse を使用して IC を保護します。図 2-5 に、このリファレンス デザインでの TPS16410 の実装を示します。印加される入力電圧に応じて、TPS16410 は、実装の個別要件に基づいて、入力電力を 2W から最大 64W まで調整できます。このデザインでは、24VDC 入力を利用してテストしていますが、ユーザーは次の計算に基づいて、必要に応じて電力レギュレーションと保護スレッショルドを変更できます。

TIDA-010950 TPS16410 eFuse 回路の実装 図 2-5 TPS16410 eFuse 回路の実装

TPS16410 の出力電力制限スレッショルドをプログラムするには、式 1 を使用して、RPLIM (R36) に必要な抵抗を計算します。出力電力制限 ≦ 15W を維持するために、R36 は 95.3kΩ としました。

式 1. P L I M =   13.82 W 95.3   k Ω   ×   R P L I M

入力過電圧保護の設定点は、IN ピンと OVP ピンの間に抵抗 (R31、R32) を接続することで設定できます。R31 と R32 の値は、式 2式 3 を使用して計算できます。OVP の立ち上がり設定点を 41V に設定するために、R31 = 1MΩ および R32 = 38.3kΩ としました。入力電圧が 24VDC の場合の OVP 設定点を 28V にする際は、R32 を 59kΩ に変更できます。

式 2. O V P   R i s i n g   S e t p o i n t =   V O V P R × ( R 31 + R 32 ) R 32  
式 3. O V P   F a l l i n g   S e t p o i n t =   V O V P F × ( R 31 + R 32 ) R 32  

出力過電流設定点を設定するには、IOCP ピンに抵抗 (R37) が必要です。R37 の値を計算するには、式 4 を使用します。R37 は IOCP を 1.5A に設定するようにして、抵抗は 1% に最も近い値 11kΩ になっています。

式 4. I O C P =   2.25 A R I O C P   ×   7.32 k Ω

また、TPS16410 では、過負荷イベントや過電流イベントに対するブランキング時間も確保しています。このブランキング時間は、PDLY にコンデンサを接続することで構成でき、式 5 を使用して計算できます。ブランキング時間を 6.5ms に設定するために、C48 は 12nF としました。

式 5. B l a n k i n g   T i m e   ( P D L Y ) =   6.5   m s 12   n F   ×   C 48

出力の大容量コンデンサを充電する場合、dV/dt ピンのコンデンサを使用して出力スルーレートを制御できます。突入電流の値は、式 6 で推定できます。突入電流を 75mA 未満に抑えるために、C47 は 150nF としています。

式 6. I I N R U S H =   I d V d t × G d V d t   ×   C O U T   C 47

TVS ダイオード (D3) を追加して、TPS16410 を電圧過渡から保護しています。

LMR38020 電圧レール

LMR38020 は、24V 電源を 15VDC に変換してモーター ドライブの電源として、また 3.3V 降圧の入力として使用します。
TIDA-010950 LMR38020 回路の実装図 2-6 LMR38020 回路の実装

スイッチング周波数の選択は、変換効率と設計全体のサイズとのトレードオフとなります。スイッチング周波数を低くすると、スイッチング損失は減少し、一般的にシステム効率が高くなります。一方、スイッチング周波数を高くすると、より小型のインダクタと出力コンデンサを使用できるようになるため、よりコンパクトな設計が可能となります。このデザインでは、400kHz のスイッチング周波数を使用します。

LMR38020 の出力電圧は、分圧抵抗回路を使用して外部で調整可能です。推奨される出力電圧範囲は、データシートの「推奨動作条件」に記載されています。分圧回路は R29 と R30 で構成され、出力電圧とコンバータの間のループを閉じています。コンバータは、FB ピン電圧を内部基準電圧 (VREF) と同じ電圧に保持することで、出力電圧をレギュレートします。分圧器の抵抗値は、ノイズの過剰な混入と出力の過剰な負荷との折り合いを付けることで決定します。抵抗値を小さくすると、ノイズの影響は小さくなりますが、軽負荷時の効率も低下します。R29 の推奨値は 100kΩ であり、このデザインでは推奨値を遵守しています。R29 を選択した後、式 7 を使用して値を選択します。VREF は公称 1V です。

式 7. R 30 =   R 29 V O U T V R E F - 1

インダクタを選択するためのパラメータはインダクタンスと飽和電流です。目的のピーク ツー ピーク インダクタ リップル電流がデバイスの最大出力電流定格の 20%~40% の範囲に収まるように、インダクタを選択します。経験上、インダクタのリップル電流の最適な値は最大負荷電流の 30% であることがわかっています。このデバイスで利用可能な最大電流よりも最大負荷電流の方がはるかに小さいアプリケーションの場合でも、リップル電流を選択する際はデバイスの最大電流を使用してください。式 8 を使用して、インダクタンスの値を決定することができます。定数 K はインダクタ電流リップルのパーセンテージです。このデザインでは、K = 0.175 を選択して、L = 60µH のインダクタンスを求めます。L2 には、次の標準値 L = 68µH を選択します。

式 8. L 2 =   ( V I N - V O U T ) f s w × K × I O U T M A X × V O U T V I N

フェライト コア材を採用したインダクタは飽和特性が非常に急峻ですが、コア損失は通常、圧粉コアよりも小さいです。圧粉コアは穏やかな飽和特性を示すため、インダクタの電流定格をある程度緩和できます。インダクタの飽和電流がデバイスのローサイド電流制限値よりも小さくならないようにする必要があります。分数調波発振を防止するため、インダクタンス値が 式 9 で示される値よりも小さくならないようにする必要があります。

式 9. L M I N M × V O U T f S W = 0.42 × 15 V 400   k H z =   15.75   μ H

ここで

  • Lmin = 最小インダクタンス (H)
  • M = 0.42
  • fSW = スイッチング周波数 (Hz)

TPS62932 電圧レール

TPS62932 は、高集積の同期整流式降圧 DC/DC コンバータです。このデバイスを使用して、LMR38020 からの 15VDC 出力を 3.3VDC レールに変換し、このリファレンス デザインの MSPM0 とペリフェラルに電力を供給します。
TIDA-010950 TPS62932 回路の実装図 2-7 TPS62932 回路の実装

出力電圧は、出力ノードと FB ピンとの間の抵抗分圧回路によって設定されます。公差 1% 以内の分圧抵抗を使用することを推奨します。図 2-7 を参照して、R39 を 10kΩ から始め、式 10 を使用して R38 = 30.9kΩ を計算します。軽負荷時の効率を向上させるには、より大きな値の抵抗の使用を検討します。値が大きすぎると、コンバータがノイズの影響を受けやすくなり、FB 入力リーク電流からの電圧誤差が目立つようになります。

式 10. R 38 =   V O U T - V R E F V R E F × R 39

スイッチング周波数の選択は、変換効率と設計全体のサイズとのトレードオフとなります。スイッチング周波数を高くすると、より小型のインダクタや出力コンデンサを使用できるようになるため、よりコンパクトな設計が可能となります。ただし、スイッチング周波数を低くするとスイッチング損失が減少し、通常はシステム効率が向上するため、このリファレンス デザインでは RT ピンをフローティングのままにして 500kHz のスイッチング周波数にしました。

大きな CSS は、大きな容量性負荷を駆動するときの突入電流を低減することができます。このデザインでは、ソフト スタート時間 tSS を約 5ms に設定するために C45 を 33nF としております。

適切な動作のためには、BST ピンと SW ピンの間に 0.1μF のセラミック コンデンサを接続する必要があります。テキサス・インスツルメンツでは、X5R 以上の誘電体を持つセラミック コンデンサの使用を推奨します。コンデンサ C46 の電圧定格は 16V 以上である必要があります。

TPS62932 の EN ピンには内部プルアップ電流源があり、ユーザは EN ピンをフローティングにしてデバイスをイネーブルにできます。このリファレンス デザインでは、EN ピンをフローティングのままにしてデバイスをイネーブルしています。

インダクタに最も重要なパラメータは、インダクタンス、飽和電流、および RMS 電流です。インダクタンスは目的のピーク ツー ピーク リップル電流に基づいており、式 11 で計算できます。

式 11. i L =   ( V I N _ M A X - V O U T ) f s w × L × V O U T V I N _ M A X

通常、K 係数はデバイスの最大出力電流に対するインダクタのリップル電流量を表し、K の妥当な値は 20%~60% です。このリファレンス デザインでは、K を 40% の値にしています。リップル電流は入力電圧とともに増加するため、最大入力電圧は常に最小インダクタンス L を計算するために使用されます。式 12 を使用して、出力インダクタの最小値を 6.44 と計算します。この最小インダクタンス値を踏まえて、このデザインでは L3 = 7.8 としました。

式 12. L 3 =   ( V I N - V O U T ) f s w × K × I O U T M A X × V O U T V I N

DRV8316C BLDC モータ ドライバ

TIDA-010950 では、SPI バリアントを選択しています。SPI バリアントは、MSPM0 と DRV8316C の間でデータを送受信できるシリアル通信バスに対応しています。これにより、MSPM0 はデバイスの設定や詳細なフォルト情報の読み取りを行うことができます。SPI は SCLK、SDI、SDO、nSCS の各ピンを使用した 4 線式のインターフェイスです。

TIDA-010950 DRV8316C 回路の実装 図 2-8 DRV8316C 回路の実装

DRV8316C は、内蔵電流センシングを使った電流測定のために、3 つの高性能ローサイド電流センス アンプを内蔵しています。ローサイド電流測定は、一般に過電流保護、外部トルク制御、または外部コントローラによるブラシレス DC 整流の実装に使用されます。この 3 つのアンプは、各ハーフブリッジ レグの電流センシングに使用できます (対応する位相のローサイド FET が導通しているとき)。TIDA-010950 では、これらの電流センス測定値は MSPM0 の内蔵 ADC によって読み取られます。

DRV8316C デバイスの降圧レギュレータは、主に 47µH インダクタおよび 22µH インダクタの低インダクタンスに対応するように設計されています。このリファレンス デザインでは、L1 に 47µH インダクタが選択されており、これにより降圧レギュレータは 5V 出力で最大 200mA の負荷電流に対応します。このリファレンス デザインはこの電源を使用していませんが、必要に応じて MCU や他の低電圧ペリフェラルに電力を供給するために利用できます。

DRV8428 ステッピング モーター ドライバ

シンプルな STEP/DIR インターフェイスにより、外部コントローラからステッピング モータの方向とステップ速度を制御できます。内部マイクロステッピング インデクサを使うと、巻線電流レベルを制御する外部コントローラを使わずに高精度のマイクロステッピングを実行できます。このステッピング制御ロジック (インデクサ) はフルステップ、ハーフステップ、1/4、1/8、1/16、1/32、1/64、1/128、1/256 マイクロステッピングを実行できます。高いマイクロステッピングにより、大きな可聴ノイズの低減とスムーズな移動が可能になります。標準のハーフステップ モードに加えて、非真円ハーフステップ モードを利用して、モータの RPM が高いときにトルク出力を増大させることもできます。ステッピング モータ ドライバは、いくつかの種類のディケイ モードを実装して巻線電流を再循環する必要があります。DRV8428 には、スマート チューン ディケイ モードが搭載されています。スマート チューンは、電圧、モーター速度、変動、経年変化の影響に関係なく、最適な電流レギュレーション性能を自動的に調整するディケイ メカニズムです。スマート チューン リップル コントロールでは、オフ時間可変型のリップル電流制御方式により、モータ巻線電流の歪みを最小限に抑えることができます。スマート チューン ダイナミック ディケイでは、オフ時間固定のダイナミック ファースト ディケイ率方式により、モータ巻線電流の歪みを最小限に抑え、周波数成分を最小化し、設計作業を大幅に削減できます。このシームレスで簡単な自動スマート チューンに加えて、 DRV8428 は従来のミックス ディケイ モードも備えています。

TIDA-010950 DRV8428 回路の実装 図 2-9 DRV8428 回路の実装

このリファレンス デザインでは、DECAY を 0 と HI-Z に設定し、スマート チューン リップル制御またはスマート チューン ダイナミック ディケイを実現します。これは、ディケイ モードの設定 に示す構成を使用して、好みに合わせ設定することもできます。

表 2-2 ディケイ モードの設定
DECAY/TOFF ディケイ モード オフ時間
0 スマート チューン リップル制御 -
14.7kΩ から GND へ 30% ミックス ディケイ 7µs
44.2kΩ から GND へ 16µs
100kΩ から GND へ 32µs
249kΩ から GND へ スマート チューン ダイナミック減衰 7µs
ハイ インピーダンス 16µs
DVDD 32µs

マイクロステッピング レベルは M0 ピンと M1 ピンで設定し、マイクロステッピングの設定 に示す設定のいずれかにできます。マイクロステッピング レベルが高いほどモーターの動きは円滑になり、可聴ノイズは小さくなりますが、同じモーター速度を実現するのにより高い ƒstep を必要とします。このリファレンス デザインでは、設計者は R6、R7、R8、R12 に抵抗を取り付けたり外したりして、マイクロステッピングの設定 で目的のステップ モードを設定できます。このデザインをテストでは、M0 は 0 に設定され、M1 は 330kΩ の抵抗を通してグランドに接続されています。

表 2-3 マイクロステッピングの設定
M0 M1 ステップ モード
0 0 100% 電流によるフルステップ (2 相励起)
0 330kΩ から GND へ 71% 電流によるフルステップ (2 相励起)
1 0 非循環 1/2 ステップ
ハイ インピーダンス 0 1/2 ステップ
0 1 1/4 ステップ
1 1 1/8 ステップ
ハイ インピーダンス 1 1/16 ステップ
0 ハイ インピーダンス 1/32 ステップ
ハイ インピーダンス 330kΩ から GND へ 1/64 ステップ
ハイ インピーダンス ハイ インピーダンス 1/128 ステップ
1 ハイ インピーダンス 1/256 ステップ

次の DRV8428 の外付け部品 に、DRV8428 回路の推奨ディスクリート部品値と、各ピンの接続を示します。

表 2-4 DRV8428 の外付け部品
部品 ピン 1 ピン 2 推奨
CVM1 VM PGND X7R、0.01µF、VM 定格セラミック コンデンサ
CVM2 VM PGND バルク、VM 定格コンデンサ
CDVDD DVDD GND X7R、0.47µF~1µF、6.3V セラミック コンデンサ
RREF1 VREF VCC チョッピング電流を制限するための抵抗。RREF1 と RREF2 を並列接続した場合の抵抗値は 50kΩ 未満でなければなりません。
RREF2 (オプション) VREF GND

位置センシング

TIDA-010950 は、TMAG5273 を利用してダンパー / EEV の位置センシングを行います。TMAG5273 は角度計算エンジン (CORDIC) を内蔵しており、軸上と軸外の両方の角度測定トポロジで 360度の角度位置情報を提供します。角度の計算は、ユーザーが選択した 2 つの磁気軸を使用して行います。このデバイスは磁気ゲインとオフセット補正機能を搭載しており、システムの機械的誤差の原因による影響を緩和します。

このリファレンス デザインでは、制御ループのフィードバックに角度出力を利用しています。詳細については、このガイドの「ソフトウェア」セクションを参照してください。

TIDA-010950 TMAG5273 回路の実装 図 2-10 TMAG5273 回路の実装

ISO1212

ISO1212 は、絶縁型 24V~60V デジタル入力レシーバで、IEC 61131-2 Type 1、2、3 の各特性に準拠しています。このデバイスにより、プログラマブル ロジック コントローラ (PLC)、モータ制御、その他の産業用アプリケーションで、9V~300VDC の AC デジタル入力モジュールが使用可能になります。従来のフォトカプラ設計は電力制限回路がディスクリートで精度が低いのに対して、ISO121x デバイスは単純かつ低消費電力の設計で、正確な電流制限により、コンパクトで高密度の I/O モジュールを設計できます。また、これらのデバイスは、現場側の電源を必要とせず、ソース入力またはシンク入力として構成可能です。

このリファレンス デザインでは、ISO1212 を 24VDC 開閉コントローラ信号のインターフェイスとして使用しています。SENSE 1 ピンの入力が High のとき、ダンパモータは 90⁰ (全閉) のダンパ位置に達するまで作動します。SENSE 2 が High のとき、ダンパモータも TMAG5273 に従って作動し、ダンパを 0⁰ (全開) 位置に動かします。

TIDA-010950 ISO1212 回路の実装 図 2-11 ISO1212 回路の実装

RSENSE 抵抗 (R24、R25) は、フィールド入力から取り込まれる電流を制限します。いずれの場合も、高い電流制限の必要性や部品の入手可能性に基づいて、(わずかに) 低い RSENSE の値を選択することができます。RSENSE には許容誤差 1% を推奨しますが、電流制限値の大きな変動が許容される場合は 5% の抵抗を使用することもできます。RSENSE 抵抗と標準的な電流制限 (IL) の関係は、式 13 で求められます。

式 13. I L = 2.25 m A   ×   562 Ω R S E N S E

ISO121x デバイスの SENSE ピンの最大電圧は 60V です。ただし、RTHR 抵抗はさらに電圧を降下させるため、モジュール入力で対応できる最大電圧はより高くなり、式 14 で求められます。

式 14. V I n m a x = 60 V + R T H R   ×   2.1 m A   ×   562 Ω R S e n s e

RTHR 抵抗は、電圧スレッショルド (VIL と VIH) を設定し、サージ電流を制限します。タイプ 3 システムの RTHR には 1kΩ を推奨します (必要な最大スレッショルド電圧は 11V)。タイプ 1 システムの RTHR には 2.5kΩ (必要な最大スレッショルド電圧は 15V)、タイプ 2 システムの RTHR には 330Ω を推奨します。ディスクリート部品値の計算の詳細については、ISO1212 のデータシートを参照してください。

TCAN334

終端は通常、バスの両端に 120Ω の抵抗を接続します。バスの同相電圧のフィルタリングと安定化が必要な場合は、分割終端を使用できます。分割終端では、2 つの 60Ω 抵抗を使用し、これらの抵抗の中間にあるコンデンサをグランドに接続します。分割終端は、メッセージ送信の開始時と終了時のバス同相電圧の変動を排除することで、ネットワークの電磁放射の挙動を改善します。

使用する終端抵抗の電力定格には注意が必要です。一般に、ワーストケースは、システム電源が終端抵抗を通してグランドに短絡している場合です。ほとんどの場合、この状態で抵抗を流れる電流はトランシーバの電流制限をはるかに上回っています。

設計者は、必要に応じてオンボード TCAN インターフェイスを利用することができます。また、以下に示すように、このインターフェイスで必要とされる外部水晶発振器がボードに追加されています。MSPM0 SDK は、CAN の実装例として利用できます。

TIDA-010950 TCAN 通信用の外部水晶発振器 図 2-12 TCAN 通信用の外部水晶発振器

4-20mA と 0-10V 回路

このリファレンス デザインでは、0-10V 制御インターフェイスまたは 4-20mA 制御インターフェイスから受信した入力信号に基づいて、ダンパと EEV の位置を調整します。入力フロントエンドは、業界の標準的な信号入力範囲を ADC 入力電圧範囲に変換し、入力インピーダンスを設定して、必要な過電圧および過電流保護を行います。0-10V 制御インターフェイスと 4-20mA 制御インターフェイスの両方では、制御信号が M0 ADC に送信される前に、単一の TLV9002 オペアンプがバッファとして使用されます。TLV9002 は

TLV9002 は、レール ツー レールの入出力スイング機能を備えた低電圧 (1.8V~5.5V) オペアンプです。このオペアンプは、スペースの制約が厳しいアプリケーションや、低電圧動作と高容量負荷ドライブが必要なアプリケーション向けに、コスト効率の優れた設計を提供します。

TIDA-010950 0-10V および 4-20mA
                    制御インターフェイス回路の実装 図 2-13 0-10V および 4-20mA 制御インターフェイス回路の実装

0-10V 入力に対しては、単純な分圧器を使用して、MSP M0 ADC の電圧範囲に合わせて電圧範囲をスケーリングします。既知の入力範囲と M0 ADC (2.5V) の VREF を利用して、次の 式 15 に従って、R48 と R49 の抵抗値は次のように計算されます。

式 15. 2.5 = 10   × R 49 R 48 +   R 49

R49 に 49.9k を選択すると、最も近い 1% 抵抗値は 149.7k になります。ただし、入力段のゲイン係数は、10V または 20mA 入力信号がオフセット、ゲイン、その他の誤差を考慮して飽和を避けるためにフルスケール 2.5V より少し低い ADC への入力電圧になるように選択されるので、R48 には 158k 抵抗値が選択されます。電圧入力段では、0.24V/V のゲインが使用され、つまり 2.4V は 10V 入力に対応します。電流入力段では、120Ω のシャント抵抗に 20mA 入力電流を流すと、ADC 入力は 2.4V になります。

電流入力段では、120Ω のシャント抵抗に 20mA 入力電流を流すと、ADC 入力は 2.4V になります。4-20mA 入力フロントエンドには、追加の 24V PTC 抵抗 (R52 = PRG18BB470MB1RB) があり、保護ために使用されます。入力フロントエンドの詳細については、『MSP430 MCU を使用した PLC アナログ入力モジュールのコストの削減』を参照してください。

ソフトウェア

TIDA-010950 のソフトウェアは、SPI、I2C、GPIO、PWM を含む MSPM0 ペリフェラルのいくつかに依存しています。ダンパー BLDC モーター制御と EEV ステッピング モーター制御は、どちらも非常に類似したファームウェア ループを使用しており、モーター制御方式がそれぞれ異なるだけです。

通信チャネルの初期化後、ADC 入力がイネーブルになり、主に制御電圧 / 電流のセンシング、および LMT84 温度センサからの温度のセンシングを行います。ADC の VREF は、内部で 2.5V を基準とするように設定されています。

次に、DRV8316 の場合、デバイスとの SPI 通信が確立され、その後でモーター制御 IC がイネーブルになり動作します。回転方向と終了位置は、0-10V または 4-20mA の入力フロントエンドからの制御信号に対するダンパーの現在の位置 (TMAG5273 が検出) に基づいています。必要な変更があれば、ファームウェアが計算し、方向と PWM の値が設定され、モーターが動作します。

TIDA-010950 BLDC
                    モーター制御ソフトウェアの制御ループ図 図 2-14 BLDC モーター制御ソフトウェアの制御ループ図

コードの実装例:

while (1) { /* check 2 digital isolator pins for
                high */ /* Read iso1 and iso2 states */ iso1Status = HAL_readGPIOPin(iso1);
                iso2Status = HAL_readGPIOPin(iso2); if (iso1Status) { desiredDamperPosition = 90; }
                else if (iso2Status) { desiredDamperPosition = 0; } else { /* Read mV value of
                current control and control inputs */ controlVoltage = (HAL_getmvFromADC(vControl) *
                2500) / 2400; // scale to 0 - 2.4V input desiredDamperPosition = controlVoltage *
                0.036; // 0-2500mV = 0-90 degrees }
 do { /* Read in TMAG angle result and set to
                current damper position */ tmagAngleResult(); currentDamperPosition = tmagAngle;
                correctPosition = currentDamperPosition * 0.9 <= desiredDamperPosition &&
                currentDamperPosition * 1.1 >= desiredDamperPosition; /* Set duty cycle to 0%
                when current position reaches the desired position */ if (correctPosition) {
                firmVar.pulsewidth = 0x00; break; } /* Set motor direction */ else if
                (currentDamperPosition < desiredDamperPosition) { firmVar.motorDirection =
                MOTOR_DIR_FORWARD; } else { firmVar.motorDirection = MOTOR_DIR_REVERSE; } /* Set PWM
                duty cycle */ firmVar.pulseWidth = 0x64; /* Read mV value of current control and
                control inputs */ controlVoltage = (HAL_getmvFromADC(vControl) * 2500) / 2400; //
                scale to 0 - 2.4V input desiredDamperPosition = controlVoltage * 0.036; // 0-2500mV
                = 0-90 degrees } while (!correctPosition); }

EEV ステッピング モーター制御では、図 2-15 に示すように、LMT84 からの温度出力という制御ループの追加コンポーネントを採用するオプションがあります。これは、EEV を変調してバルブを流れる冷媒の量を増減するために使用できる熱帰還ループの実装例として使用されます。ペリフェラルのセットアップでは、ADC は DRV8316C ファームウェアと同じ方法で初期化されます。このファームウェアには SPI 通信は必要ありませんが、ユーザーが選択した場合は削除できます。

モーター制御インターフェイスは非常に単純で、必要なのは MCU によって制御される EN ピンと nSLEEP ピンのみです。これらのピンは、High に駆動されるとデバイスをイネーブルにしてウェークアップにし、Low に駆動されるとデバイスをディセーブルにするかスリープ状態にします。次の両方の例では、制御ループ内の STEP GPIO を切り替えるだけで、ステッピング モーターが回転します。ユーザーは、遅延定義に割り当てられた値を増減することにより、ファームウェアでパルス時間を調整できます。

デバイスをセットアップして、ペリフェラルを動作させると、オンボード LMT84 が温度データを取得します。必要に応じて、ボード上のブースタパック ヘッダを通して、オフボード温度センサを実装することもできます。蒸発器からの吸引ラインの温度をシミュレートしている温度読み取り値に基づいて、吸引ラインの温度が目標温度より高い場合はバルブが順方向に回転し、吸引ラインの温度が目標温度より低い場合はその逆になります。この例では、TMAG5273 は回転と位置の検証のみに使用され、全体的な制御ループには関与していません。

TIDA-010950 ステッピング モーター制御ソフトウェアの制御ループ図
                    (温度ベース) 図 2-15 ステッピング モーター制御ソフトウェアの制御ループ図 (温度ベース)
#define ADC12_BIT_RESOLUTION (12) #define
                ADC12_REF_VOLTAGE (2.5) uint16_t gVolt = 0; uint16_t getVolts() { uint16_t Voltage =
                0; DL_ADC12_startConversion(VControl_ADC_INST); gAdcResult =
                DL_ADC12_getMemResult(VControl_ADC_INST, DL_ADC12_MEM_IDX_0); Voltage = (gAdcResult
                * ADC12_REF_VOLTAGE) / (1 << ADC12_BIT_RESOLUTION) * 3;
                DL_ADC12_enableConversions(VControl_ADC_INST); return (Voltage); }
 while (1) { // Set the DRV8428 control pins to
                known values before entering loop gVolt = getVolts(); If (gVolt != Target_TMP) { //
                now that we have a condition where desired and // current position dont match,
                enable the device for // the position change loop DL_GPIO_setPins (GPIO_LEDS_PORT,
                (GPIO_LEDS_USER_LED_1_PIN); // Using this is a status pin DL_GPIO_setPins
                (GPIO_LEDS_PORT, GPIO_LEDS_DRV8428_EN_PIN); // Logic high to enable outputs
                DL_GPIO_setPins (GPIO_LEDS_PORT, GPIO_LEDS_DRV8428_SLP_PIN); // Logic high to enable
                device While (gVolt < Target_TMP) { DL_GPIO_setPins( GPIO_LEDS_PORT,
                GPIO_LEDS_DRV8428_DIR_PIN; // Set Direction pin for CW or CCW DL_GPIO_setPins(
                GPIO_LEDS_PORT, GPIO_LEDS_DRV8428_STEP_PIN; // Move motor ahead by one step
                DL_GPIO_SetPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_1_PIN); // Using this as status
                pin delay_cycles(DELAY_MOTOR); DL_GPIO_clearPins( GPIO_LEDS_PORT,
                GPIO_LEDS_DRV8428_STEP_PIN); // Set Direction pin for CW or CCW
                DL_GPIO_ClearPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_1_PIN); // Using this as status
                pin delay_cycles(DELAY_MOTOR); }

図 2-16 に示すように、変調が温度帰還ループによって制御されない場合、0-10V 制御インターフェイスと 4-10mA 制御インターフェイスを使用してステッパの方向と目標端の位置を制御できます。この例は前の例とほぼ同じですが、この例では、TMAG5273 を制御フロントエンドと組み合わせて使用し、目的の位置に対する現在の角度位置を提供し、それに応じてステッピング モーターを回転させます。

TIDA-010950 ステッピング モーター制御ソフトウェアの制御ループ図
                    (制御入力ベース) 図 2-16 ステッピング モーター制御ソフトウェアの制御ループ図 (制御入力ベース)

この具体例では、最初の 2 つの例を組み合わせてファームウェアに実装し、代わりに DRV8428 の GPIO 制御ピンを利用して方向と回転を制御することができます。