stlと申します。
イニシャルオフセットチューニングについて
Qe for Capacitive Touchのワークフローのアドバンスドモードによるチューニングで、イニシャルオフセットチューニングの設定が出来ると思うのですが、
API関数のR_CTSU_OffsetTuning() は、どういった状況でユーザが使用するものなのでしょうか?
ワークフローでの設定を有効にするために、関数を呼び出すのでしょうか?
コメント失礼します。tomatoです。
恐らく、QEワークフロー上で実行されるチューニングと、ドライバによって実行されるイニシャルオフセットチューニングを混同されているのかと思います。実際には電流オフセット量のチューニングは次の2段階で実行されます。
1.QEツールのワークフロー上で実行されます。電流オフセット量だけでなくタッチ閾値やヒステリシスの値も算出され、qe_touch_config.cファイルに出力されます。
2.R_CTSU_ScanStart()とR_CTSU_DataGet()の組み合わせ、またはR_CTSU_ScanStart()とR_CTSU_OffsetTuning()の組み合わせを数回繰り返すことで「イニシャルオフセットチューニング」が実行されます。1で算出したパラメータを基に、電流オフセット量を再計算します。
1のQEツールによるチューニングは出荷前に実行されることが想定されますが、工場と実際に製品が使用される環境では寄生容量が大きく異なる可能性があります。そのため、使用環境において再度、非タッチ時の計測値をターゲット値に近づけるためにオフセット量を再計算することが推奨されます。
大抵のユースケースで、タッチ判定を行うためにRM_TOUCH_ScanStart()とRM_TOUCH_DataGet()が繰り返し実行されると思いますが、これらはR_CTSU_ScanStart()とR_CTSU_DataGet()を内包しています。そのため、起動後数回のRM_TOUCH_ScanStart()とRM_TOUCH_DataGet()ではイニシャルオフセットチューニングが実行されます。因みに、1で算出したオフセット量に近いほど、イニシャルオフセットチューニングに必要な実行回数は少なくなります。
ただ、RM_TOUCH_ScanStart()とRM_TOUCH_DataGet()によるオフセットチューニングは前述の通り起動直後にのみ実行されるため、常に電源を付けた状態で使用環境も変化するユースケースでは不十分です。そのため、定期的にオフセットチューニングを実行する必要のあるユースケースのためにR_CTSU_OffsetTuning()があるのだと認識しています。
理解できました。
お答えいただきありがとうございました。