こんにちは、皆さん
私はFXTH87EH911DT1を使用しています。
FXTH87EH911DT1を使ってセンサを5万個くらい作りました。
プログラミング後、約 20% のセンサがハングアップ (動作を停止) し、その後約 3 日後にはバッテリーが完全に放電されます。
この問題を解決するためにウォッチドッグを使用することにしました。
しかし、ウォッチドッグが無効になることはありません。
これはウォッチドッグ用の私のプログラムです:
SIMOPT1=SIMOPT1|SIMOPT1_COPCLKS_MASK;
SIMOPT2_COPT0=0;SIMOPT2_COPT1=0;SIMOPT2_COPT2=0;
SIMOPT1 = (SIMOPT1 | SIMOPT1_STOPE_MASK) & (UINT8) (((UINT8) SIMOPT1_COPE_MASK));
アプリケーション プログラムが STOP1 モードに入ると、直ちにリセットされます。
「__RESET_WATCHDOG();」を使用してウォッチドッグをリセットしましたが、マイクロがSTOP1モードに入るとすぐにリセットされます。
私の問題を解決するのを手伝ってください。
よろしくお願いいたします。
こんにちは、トーマス様
操作手順を説明します。
1-FXTH87をBDMプログラマーでプログラムします(バッテリーなし、他の3.3V電圧供給を使用)
2. 電源とプログラマを切断する
3-バッテリーをFXTH87 PCBに取り付けます。
また、私のアプリケーション ソフトウェア ルーチンについても知っておくとよいでしょう。
1構成
2-STOP1に入る
3-LF割り込みまたはPWU周期割り込みでSTOP1を終了します。
4-STOP4へ進む(P_T_V_AccZを測定するため)
5-RF TX
アプリケーション ソフトウェアが期待どおりに実行されなかった場合にシステムをリセットするには、プログラムの開始ステップで「COP ウォッチドッグ」を有効にする必要があります。
しかし、プログラム ラインの終了後、STOP1 に入るとすぐに「COP WATCHDOG」MCU を有効にすると、MCU が再起動し、その続行とプログラムの他の部分は実行されません。
注意: プログラム ルーチンで __RESET_WATCHDOG(); を使用していますが、COP タイマーは停止またはリセットされません。
実際のところ、私の問題は、割り込みルーチン内、またはプログラムが STOP1 モードのときに COP タイマーをリセットできないことです。
よろしくお願いいたします。
こんにちは、
弊社の TPMS 専門家からの回答は以下をご覧ください。
センサの 20% が 3 日後にハングアップしてバッテリーが放電されるという事実に関しては、プログラミング後に実際の POR が行われていないことが原因であると考えられます。FXTH が BDM を介してプログラムされると、バックグラウンド デバッグ モードに入り、その動作は「通常の」動作とは異なります。たとえば、STOP1 エントリは STOP4 エントリに置き換えられ、アプリケーション フローと電力消費に影響します。
FXTH を強制的に「通常」モードで再起動するには、プログラミング後に POR を実行する必要があります。
ウォッチドッグ構成に関しては、SIMOPT1 および SIMOPT2 の一部のビットは書き込み専用であるため、書き込み操作のために 1 回だけアクセスできます。したがって、すべてのフィールドを 1 回の書き込みアクセスでのみ書き込むことをお勧めします。例えば:
/* STOPモードを有効にし、COPを有効にし、COPソースとしてLFOを選択します */
SIMOPT1 = (SIMOPT1 | SIMOPT1_STOPE_MASK | SIMOPT1_COPE_MASK ) & (UINT8)(~((UINT8) (SIMOPT1_COPCLKS)));
/* ウォッチドッグ 2048ms タイムアウト */
SIMOPT2_COPT = 7;
他にご質問がございましたらお知らせください。
よろしくお願いいたします。
トーマス