マイコンが動作しない事がある

RL78/G12を使用しています。

電源OFF⇒電源ON

とした場合にマイコンが動作しない事があります。

次に同じ動作をすると起動する。というのを繰り返します。

時間を置くと毎回正常に動作しています。

また、同一プログラムでもこの現象が起きるものと起きないものがあります。(10台中1台で発生)

原因としてはどのような事が考えられるでしょうか?

宜しくお願い致します。

  • 起動時に電源が安定してなくて、LVD でリセットが掛かっているのでは?
  • 電源とリセット端子をオシロにつなげて観察してみてはいかがでしょうか
  • 電圧検出動作設定は「使用しない」としております。
    また、立ち上がりは0.2msで5Vに立ち上がっています。
  • チョコです。
    電源とRESET端子周りの回路やオプション・バイトの設定が分からないので,単なる推測ですが,電源やRESET端子が十分に低下していない状態で電源が再投入されたとか,POCの特性のバラつきが影響しているのかもしれませんね。

    RL78のマニュアルでは,LVDは有効に設定するようになっていたと思います。少なくとも,2.75V(20MHz動作可能)では設定すべきでは。

  • 電源、リセット端子の状態を見ましたが、起動する時としない時で差は見られませんでした。
    POCの特性のバラつきとなるとマイコンの個体差という認識でよろしいでしょうか?
  • チョコです。
    >POCの特性のバラつきとなるとマイコンの個体差という認識でよろしいでしょうか?
    はい,そうです。この対策としては,LVDでの対応が必要なのではないでしょうか。
  • 度々すみません。
    対策としてのLVDの対応とは
    マイコン自体にPOCのバラつきがあり、それをどのマイコンでも一定にするためにLVDで値を統一する。
    という事でよろしいですか?
  • チョコです。

    >マイコン自体にPOCのバラつきがあり、それをどのマイコンでも一定にするためにLVDで値を統一する。

    >という事でよろしいですか?

    少し違います。確かにPOCの電圧は,「28. 6. 3 POR回路特性」に記載されているように幅があります(バラつきます)。

    問題は,この電源電圧立ち上がり時のPOC電圧よりはRL78/G12の最低動作電源電圧(LSモード:1.8V,HSモード:2.4V)の方が高くなっています。

    (「28. 7 RAMデータ保持特性」に記載されたRAMのデータ保持電圧よりは高くなっていますが。)

    つまり,POCが解除されても,最低動作電源電圧に達していなければ,正常に動作しなくなると考えることができます。

    このために,「28. 6. 5 電源電圧立ち上がり傾き特性」に「注意 VDDが28.4 AC特性に示す動作電圧範囲内に達するまで,LVD回路か外部リセットで内部リセット状態を保っ
    てください。
    」と記載されています。

    なお,POCが解除されてからすぐに動作するわけではなく,「図19-2 パワーオン・リセット回路と電圧検出回路の内部リセット信号発生のタイミング(1/3)」の図中に記載されている「電圧安定待ち時間 0.99 ms (TYP.), 2.30 ms (MAX.)」の後で動作するようなので,この間に電源電圧が正常動作範囲に入っていればいいのですが。

     

    電源をOFFして再度ONするときにもPOCだけではリセットがかからない可能性が考えられます。ここらの電源電圧の変化と関係で正常に動作しない場合が考えられます。

     

    などといろんな条件がまじりあっています。

     

  • ありがとうございます。
    理解出来ました。
    今回のシステムだと電源電圧の方にもバラツキがありそうなのでそちらと合わせて検討してみます。
  • SUZUKIさん、こんにちは。NoMaYです。#お久しぶりです。(以前の時は『RL78のローカル変数のメモリアドレスについて』でしたね。)

    > 電源OFF⇒電源ON
    > とした場合にマイコンが動作しない事があります。
    > 次に同じ動作をすると起動する。というのを繰り返します。
    > 時間を置くと毎回正常に動作しています。

    これは、こういう症状でしょうか?

    (1) 電源スイッチをパチンパチンと連続して操作して電源ON⇒電源OFF⇒電源ONさせると動作しない
    (2) 電源スイッチをパチンパチンパチンパチンと連続して操作して電源ON⇒電源OFF⇒電源ON⇒電源OFF⇒電源ONさせると動作する
    (3) 電源スイッチをパチン、時間を置く、パチンと間を空けて操作して電源ON⇒電源OFF⇒時間を置く⇒電源ONさせると動作する

    リセットに纏わる不具合の可能性の他に、以下のような"可能性"も考えられるかな、と思うのです。

    (A) 入力端子が浮いていて、プログラムが誤動作している(そうなるケースがある)
    (A') 端子割り込み入力端子が配線不良で浮いていて、想定外の割り込みが多発している(そうなるケースがある)
    (B) 周辺機器側が想定通りに起動しておらず、プログラムが周辺機器からのACK待ちでデッドロックしている(そうなるケースがある)

    RL78マイコンであれば、オンチップデバッグで電源ONエミュレーション(電源ON⇒電源OFF⇒電源ON)が出来る筈ですので、試しにそれでデバッグしてみる(オンチップデバッグ時でも現象が再現するか確認してみる)のはどうでしょうか。

    オンチップデバッグの電源ONエミュレーションで再現しなければ、どれかの空き端子にLEDを繋いで、どこまでプログラムが実行されているのか、確認してみてはどうでしょうか?

    (イ) リセットルーチンの先頭は通過しているかどうか?(リセットは解除されているかどうか?)
    (ロ) main()の先頭は通過しているかどうか?
    (ハ) 周辺機器に対する初期化ルーチンは通過し終わっているかどうか?