JAJU934 May   2024

 

  1.   1
  2.   概要
  3.   参照情報
  4.   特長
  5.   アプリケーション
  6.   デザイン イメージ
  7. 1システムの説明
    1. 1.1 主なシステム仕様
  8. 2システム概要
    1. 2.1 ブロック図
    2. 2.2 設計の考慮事項
    3. 2.3 主な使用製品
  9. 3システム設計理論
    1. 3.1 ハードウェア設計
    2. 3.2 ソフトウェア設計
      1. 3.2.1 TMAG5170 SPI フレーム
        1. 3.2.1.1 32 ビット フレームのシリアル データ
        2. 3.2.1.2 シリアル データ出力 32 ビット フレーム
      2. 3.2.2 TMAG5170 のレジスタ構成
      3. 3.2.3 SPI と変換開始タイミング
      4. 3.2.4 線形位置の計算
  10. 4ハードウェア、ソフトウェア、テスト要件、テスト結果
    1. 4.1 ハードウェア
      1. 4.1.1 PCB の概要
      2. 4.1.2 MCU インターフェイス コネクタ
    2. 4.2 テスト構成
    3. 4.3 テスト結果
      1. 4.3.1 磁界の Z 軸および X 軸成分の測定
      2. 4.3.2 リニア位置測定
      3. 4.3.3 SPI 信号測定
  11. 5設計とドキュメントのサポート
    1. 5.1 デザイン ファイル
      1. 5.1.1 回路図
      2. 5.1.2 BOM (部品表)
      3. 5.1.3 PCB レイアウト
        1. 5.1.3.1 レイアウト プリント
        2. 5.1.3.2 レイアウトのガイドライン
    2. 5.2 ツールとソフトウェア
    3. 5.3 ドキュメントのサポート
    4. 5.4 サポート・リソース
    5. 5.5 商標
  12. 6著者について

線形位置の計算

等間隔で配置された 4 個の TMAG5170 の線形位置は、下に示す 図 3-7 のフローチャートに従い、4kHz レートのサンプル レートで各割り込みサービス ルーチンにより計算されます。

TIDA-060045 簡単な位置計算のフローチャート図 3-7 簡単な位置計算のフローチャート

4 個の TMAG5170 の Z 軸と X 軸のデータが読み取られます。Z 軸方向の大きさがどれも最小磁界強度を超えない場合、ムービング磁石は範囲外です。そうでない場合は、Z 軸で振幅が最大の TMAG5170 を特定します。ヒステリシスを使用して、隣接する 2 つの TMAG5170 の間の切り替えを回避できます。これは、検出磁石の位置が 2 つの隣接する TMAG5170 の間の中央にあるため、両方の TMAG5170 で同程度の Z 軸の磁界強度が測定される場合に発生します。

角度の計算は、Z 軸の磁界強度が最大の TMAG5170 についてのみ続行されます。

最初のステップでは、システム較正中に識別されたように、Z 軸のオフセットとゲインを補正します。次に、式 1 に従って、較正済みの Z 軸および X 軸の atan2 関数を使用して、対応する TMAG5170 のホール効果素子の X 位置に対する角度を計算します。

式 1. Angledegnum=180°πatanZnum,Xnum

2 番目のステップでは、線形位置は 式 2 に従って計算されます。TMAG5170 の番号に応じて、対応するリニア位置オフセットも追加されます。

式 2. LinPoscmnum=Angledegnum90°1.25cm+num2.5cm+RefOffsetcm

3 番目のステップでは、システム キャリブレーション中に 式 3 に従って特定された補償係数により、X 軸の絶対振幅を使用して軸外測定による誤差を補償します。

式 3. LinPoscmnum=LinPoscmnum+absXnumCompFactorcmmT

リファレンス デザインで線形位置を計算するために使用したソース コードを以下に示します。

//-------------------------------------------------------
// Angle calculation
//-------------------------------------------------------
// z_max_num
// 0: Out of range (Z-field too small)
// 3: TMAG5170[0] has highest Z-field
// 5: TMAG5170[1] has highest Z-field
// 7: TMAG5170[2] has highest Z-field
// 9: TMAG5170[3] has highest Z-field
//-------------------------------------------------------
void calcLinPos(int16_t zmax_num_index)
{
    float       tnom;
    float       tdenom;

    PositionRead.LinPosRef_cm = LC415LinPos_cm;             // Absolute linear position reference
    if (zmax_num_index==0)                                  // Magnet is out of range
    {
        PositionRead.LinPos_cm = 0;                         // Measured absolute linear position
        PositionRead.LinPosError_cm = 0;                    // Measured position error
    }
    else
    {
        // Gain and offset compensated Z-axis     
        tnom = TMAGS_ARRAY[(zmax_num_index-3)/2].Z_mT-PositionCalc.OffsetZ_mT[(zmax_num_index-3)/2];    
        tnom =  tnom*PositionCalc.GainComp[(zmax_num_index-3)/2];                                                              
        tdenom = TMAGS_ARRAY[(zmax_num_index-3)/2].X_mT; 	// X-axis
        PositionRead.Angle_deg = (180/3.1415)*atan2f(tdenom,tnom);
        PositionRead.LinPos_cm = PositionRead.Angle_deg/90*PositionCalc.DistanceTMAG5170_cm/2;
        PositionRead.LinPos_cm += PositionCalc.DistanceTMAG5170_cm * ((zmax_num_index-3)/2);
        PositionRead.LinPos_cm += -PositionCalc.RefOffset_cm;

        // Nonlinear position error compensation using X-field
        PositionRead.LinPos_cm += PositionCalc.PosXfieldComp * abs(TMAGS_ARRAY[(zmax_num_index-3)/2].X_mT);
        // calculate position error versus reference
        PositionRead.LinPosError_cm = PositionRead.LinPos_cm - PositionRead.LinPosRef_cm;
    }
}

角度および線形位置計算のアルゴリズムの詳細については、アプリケーション レポート「最大のシステム角度検出精度を達成する」と「線形位置アプリケーション用磁石の選択 (Rev. A)」を参照してください。