ホーム › フォーラム › Texas Instruments › マイコン › MSP430 › UCS モジュールのフェールセーフ動作について
このトピックには24件の返信が含まれ、2人の参加者がいます。5 年、 5 ヶ月前に UNA さんが最後の更新を行いました。
-
投稿者投稿
-
UCS モジュールのフェールセーフ動作について
デバイス型番:MSP430F5329MSP430F5329のUCS モジュールのフェールセーフ動作について
1.オシレータ障害が発生してクロックソースが自動的に切り替わった後、オシレータが正常になると自動的にクロックソースは元に戻るのでしょうか?
2.オシレータ障害発生時にクロックソースを自動的に切り替えないようにする方法はあるのでしょうか?kkk様
お問い合わせありがとうございます。
ご質問頂いた内容につきましては、現在メーカに問い合わせておりますので、
少々お時間頂けますようお願い申し上げます。以上、宜しくお願い致します。
H.Ukkk様
メーカに確認が取れましたので以下に回答致します。
1.オシレータが正常復帰した後は、自動的に異常前の状態に戻ります。
2.UCSのFail-safe機能を無効にすることはできません。
このFail-safe機能は、オシレータ障害発生時におけるデバイスの異常動作を防止するためにありますが、この機能を無効にする意図は何でしょうか。以上、宜しくお願いします。
H.U御回答ありがとうございました。
Fail-safe機能を無効にする意図は、Fail-safe機能によってクロックソースが切り替わった後、オシレータが正常復帰しても自動的に異常前の状態に戻らないと考え、瞬間的な異常は許容して元のクロックソースを使い続ける方法を検討していたためです。
Fail-safe機能について、続けて質問があります。
3.ACLK が LF モードで動作する XT1 のクロック・ソースの場合、SELA ビット設定値の変更は無いようですが、ACLKのクロックソースがDCOに切り替わったことはどのように判断すれば良いのでしょうか?4.クリスタル・オシレータ障害ビットは自動でクリアされないのでユーザーがクリアする必要があると思いますが、オシレータ障害が解消されたことを何かのフラグなどで判断できるのでしょうか?
kkk様
ご返信ありがとうございます。ご質問の意図について承知いたしました。
また、追加質問頂いた件につきましては、以下に回答させて頂きます。3.ACLKがLFモードで動作し、かつリファレンスクロックとして、XT1を選択されていた場合、
オシレータ障害が発生した際には、DCOではなくREFOに切り替わります。
また、SFRIE1.OFIEレジスタビットをセットしておけば、オシレータ障害発生時にCPUに割り込みをかけることができますので、こちらを用いてクロックソースの切り替えを検知すること可能です。4.オシレータ障害が発生すると、UCSCTL7レジスタのフラグビットがセットされますが、
これらのフラグをソフトウェアによってクリアした際に、オシレータ障害が解消されていない場合は、
このフラグはセットされたままになりますので、UCSCTL7レジスタをリードバックすることで
オシレータ障害は解消されたかどうかをご判断頂けるかと思います。また、上記について詳しくは、下記ドキュメントに記載されておりますので、ご確認頂けますでしょうか。
・SP430x5xx and MSP430x6xx Family User’s Guide(SLAU208Q)
[NOTE: Fault conditions](p172)
[NOTE: Fault logic](p172)
http://www.tij.co.jp/jp/lit/ug/slau208q/slau208q.pdf以上、宜しくお願いします。
H.U御回答ありがとうございました。
障害によって下記のフラグが全てONになるとマイコンの消費電流が4μA程度増加し、障害が無くなった後に下記フラグを全てOFFにするとマイコンの消費電流が3μA程度低下し、最終的に元の消費電流より1μA程度増加していることを確認しました。
下記のフラグが一度でもONになるとマイコン内蔵回路が動作して消費電流が1μA程度増加する状態が続く、ということはあるのでしょうか?・DCOFFG
・XT 1LFOFFG
・OFIFGkkk様
お手数でございますが、以下の点についてご教示ください。
1.ご計測された消費電流値は、MSP430チップ単体の消費電流量でしょうか。
また、オシレータ障害が発生する前の消費電流量は平均でどの程度でしょうか。2.複数のボードでも1μAの上昇する現象が同様に見られますでしょうか。
3.UCSモジュールのレジスタ(UCSCTL0~UCSCTL9)は、オシレータ障害の発生前/復帰後で差分はありますでしょうか。
以上、宜しくお願い致します。
H.U御質問について回答します。
1.ご計測された消費電流値は、MSP430チップ単体の消費電流量でしょうか。
また、オシレータ障害が発生する前の消費電流量は平均でどの程度でしょうか。
⇒基本的に基板全体の消費電流を測定していますが、1台でMSP430チップ単体の消費電流も測定しています。
オシレータ障害が発生する前の消費電流量は基板によりますが14μA程度です。
消費電流の測定結果を添付いたします。2.複数のボードでも1μAの上昇する現象が同様に見られますでしょうか。
⇒添付ファイルには1μA上昇する現象を1台のみ記載していますが、1μA上昇する現象を2台で確認しています。3.UCSモジュールのレジスタ(UCSCTL0~UCSCTL9)は、オシレータ障害の発生前/復帰後で差分はありますでしょうか。
⇒他のUCSモジュールのレジスタ(UCSCTL0~UCSCTL9)では差分はありませんでした。Attachments:
kkk様
ご返信ありがとうございます。
頂いた情報を元に、メーカへ確認させて頂きましたが、オシレータ障害が取り除かれて、
UCSのエラーフラグがクリアされると、オシレータ障害発生前の電流量に戻るとの見解でございます。大変お手数でございますが調査を継続するに当たり、以下の点についてご確認頂くことはできますでしょうか。
1.マイコン単体での複数台の消費電力をご計測頂けますでしょうか。
※前段でご提供頂いた測定結果では、マイコン単体ではサンプル数1台で、増加した電流値は0.5μAとの認識です。2.オシレータ障害発生前後で実行されるソフト処理が変わりますでしょうか。
3.オシレータ障害が発生し、エラーフラグをクリア後に再度クロック周りのレジスタの初期化処理を実行した場合、電流値に違いは見られますでしょうか。
以上、宜しくお願い致します。
H.U御質問について回答します。
1.マイコン単体での複数台の消費電力をご計測頂けますでしょうか。
※前段でご提供頂いた測定結果では、マイコン単体ではサンプル数1台で、増加した電流値は0.5μAとの認識です。
⇒マイコン単体の消費電流を測定するためには、パターンを切り基板を破壊することになるので、改造にかかる時間と残りの基板台数から実行することは難しいです。
また、増加した電流値はご指摘の通り0.5μAになります。2.オシレータ障害発生前後で実行されるソフト処理が変わりますでしょうか。
⇒基板での動作を確認したところ、液晶表示や通信など基本的な機能(ソフト処理)は変わりなく実行できました。
また、液晶表示や通信を実行後も消費電流は0.5μA程度増加したままでした。3.オシレータ障害が発生し、エラーフラグをクリア後に再度クロック周りのレジスタの初期化処理を実行した場合、電流値に違いは見られますでしょうか。
⇒オシレータ障害フラグをクリアし、基板の消費電流が0.5μA程度増加した状態でDCOモジュレータをディスエーブル後に再度イネーブルする(DISMODを 1→0→1 の順にセットする)と、消費電流が最初の状態に戻る(0.5μAの増分が無くなる)ことを基板2台で確認しました。kkk様
本件、ご返信頂きましてありがとうございます。
お手数でございますが以下の点について確認させてください。3.オシレータ障害が発生し、エラーフラグをクリア後に再度クロック周りのレジスタの初期化処理を実行した場合、電流値に違いは見られますでしょうか。
⇒オシレータ障害フラグをクリアし、基板の消費電流が0.5μA程度増加した状態でDCOモジュレータをディスエーブル後に再度イネーブルする(DISMODを 1→0→1 の順にセットする)と、消費電流が最初の状態に戻る(0.5μAの増分が無くなる)ことを基板2台で確認しました。DISMODビットは、1をセットするとDisable、0をセットするとEnableとなりますが、最終的にはDCOモジュールをDisableにするということでしょうか。
それとも、オシレータ障害発生前のDCOモジュールはEnable(DISMOD=0)であり、オシレータ障害から復帰後に
一度DCOモジュールをDisable(DISMOD=1)にしてから、再度Enable(DISMOD=0)にした場合、消費電流がオシレータ障害発生前の数値に戻るということでしょうか。以上、ご確認のほど宜しくお願い致します。
H.U申し訳ありませんでした。
DISMODの値が間違っていました。御確認内容に記載されている通り、「オシレータ障害発生前のDCOモジュールはEnable(DISMOD=0)であり、オシレータ障害から復帰後に一度DCOモジュールをDisable(DISMOD=1)にしてから、再度Enable(DISMOD=0)にした場合、消費電流がオシレータ障害発生前の数値に戻る」ということです。
kkk様
ご返信ありがとうございます。
本件、メーカへ問い合わせておりますが、重ねてお手数でございますが、
オシレータ障害発生前の、UCSCTL4.SELA,SELS、SELMの設定値をお知らせ頂けますでしょうか。
また、消費電流計測時の動作モード(Active Mode/LPMx)はどのように設定されておりますでしょうか。以上、ご確認のほど宜しくお願い致します。
H.U御質問について回答します。
オシレータ障害発生前の、UCSCTL4.SELA、SELS、SELMの設定値は下記になります。
UCSCTL4.SELA:000(初期値)
UCSCTL4.SELS:011
UCSCTL4.SELM:011消費電流計測時の動作モード(Active Mode/LPMx)については、62.5ms毎にActive modeになり、メイン処理を実行後にLPM3になる動作を繰り返しています。
メイン処理で同じ処理を実行させることで、Active modeになる期間とLPM3になる期間の変化によって消費電流が変化しないようにしています。kkk様
MCLK、SMCLKはDCOCLKが供給されておりますが、FLLブロックに供給されているクロック(FLLREFCLK)は、XT1CLK(SELREF=0)から供給されているとの理解であっておりますでしょうか。
この場合、オシレータ障害発生時に誤ったクロックが印加されて意図しない動作となってしまう可能性があるため、FLL(DCO)の再起動が必要になるとのことでございます。以上、どうぞ宜しくお願い致します。
H.U -
投稿者投稿