AS5048A magnetic rotary encoder の動作チェックと実装 -エラーフラグ-

エラーフラグ関連の動作も念のため確認してみた。

AS5048には、以下のダイアグのフラグがある

  • COMP HIGH : 磁力が弱い
  • COMP LOW : 磁力が強い
  • COF : CORDICのオーバーフロー
  • OCF : オフセット調整完了

正常時は、OCFのみ1でその他は0になるようだ。磁石とICの距離を変えてフラグをチェックしてみた。また同じレジスタにはAGC(automatic gain control)という自動でゲインを調整している機能があり、そのゲインレベルもみた。

磁石をめちゃ近くした状態では、以下のようになった(右に表示されているDiagnosticとAGC)

ちゃんとOCFだけ1になっている。ゲインは0×75で117なので、ちょうど半分くらい。でもOKな状態です。

磁石を遠くしてみた、結果は以下の通り

Comp Highのフラグが立っている。。確かに磁石を遠くしたので、磁力は弱くなっていると相関があっている。しかもゲインが0xFFなので最大になっているので、頑張って磁力を受けようとしている必死さを感じます。ちなみにこの状態でもエンコーダとしてはちゃんと動作しているので、磁力が弱いですよ〜注意してください〜程度でしょう。

これでも結構満足のいく結果になりましたが、エラー関連はまだあって、Parity Errorのチェックをしているようです。

前回、うまくいかなかった理由はこれが要因です。また原因もわかりました。どうやらCSピンとMISOピンの配線が近いと干渉してParity Errorが頻発しました。以下がその結果です。

magnetic error と angle error はそれぞれのデータの14bit目にErrorがあると表示させていまして、連発してます。

また、0×0001番地の値をみるとParity Error(2bit目)が出ていることがわかります。(右のerror_flag_2 : 0×4)

このレジスタは一度読むとフラグがクリアさせます。念のためチェックするとフラグが消えて、errorがなくなります。(cleared_flagが0×00になる)

ということで、無事にAS5048Aの評価が完了した感じデス!!ああ、よかった。よかった。

 

続きはこちら

AS5048A magnetic rotary encoder とOLED表示

ロータリーエンコーダーのノブとクロスフェーダーの製作

AS5048A ロータリーエンコーダ 完成

コメントはまだありません »

コメントはまだありません。

この投稿へのコメントの RSS フィード。 TrackBack URL

コメントする