2017-05-16 62 views
0

モータエンコーダの読み取り値(tim3)およびホールセンサ入力(tim4)のカウントに2つのタイマーtim3およびtim4を使用しています。ホールインターフェイスモードで動作しているTIM4のTI1にx1入力されたch1、 )。私が今したいのは、2つのタイマーを同期させて、ホールトグル時にエンコーダタイマーがリセットされるようにすることです。しかし、tim4 TRGOがトグルしたときにカウンタtim3がリセットされるように、エンコーダモード(SMSレジスタ内)とリセットモードを組み合わせる方法はないようです。私はどちらか一方のモードのみを選択できますが、両方を組み合わせることはできません。STM32ホール+エンコーダタイマー同期

おそらく、2つのタイマーをどのように組み合わせて回転子の位置を推定できるのか誤解されていますか? ISRを使用せずにカウンタを手動でリセットすることなく、ホールセンサーの読み取り値とstm32のエンコーダ読み取り値を組み合わせて同期させる最良の方法は何ですか? (できればハードウェアでこれを自動的に実行したいのですが、私は手動ソリューションを使用していますが、100%満足しているわけではありません)。

チップはstm32f103です。

+0

チップを指定していません。 – Jeroen3

答えて

0

CR2では、各タイマには出力信号(MMS)があります。 SMCRでは、各タイマーは入力信号モード(SMS)を持っています。

あなたはにホールタイマーを設定リセットモードとエンコーダタイマーパルスの比較、私は、エンコーダタイマーは、ホールタイマーのCH1のたびに入力キャプチャをリセットすると思います。

チップ内で可能な場合は、タイマー間の相互接続によって異なります。 TIMx内部トリガ接続(ITR)を参照してください。
SMSビットはすでにエンコーダモードになっています。リセットモードとエンコーダモードの両方を持つことはできません。

メモリからTIMx-> EGR:UGへのDMA操作をトリガすることができます。
TIM3_CH1は、データ0x0001〜TIM4-> EGRのDMA1チャネル6でハーフワード・メモリからペリフェラル・オペレーションまでトリガできます。
これにより、TIM4はカウンタを再初期化します。

+0

チップはf103です。 – Martin

+0

リセットモード(100)がエンコーダモード1(001)と同じSMSビットを使用するため、エンコーダタイマをリセットモードに設定する方法がわかりません。エンコーダモードとリセットモードの両方を同時に持つことはできないようです。私がマニュアルのいくつかの詳細が欠けていない限り。 – Martin

+0

@マーティンはあなたが正しいです。それは不可能。私は私の答えを変えました。 – Jeroen3