78K0Rの高速内蔵発振停止と消費電流について

お世話になっております。いいよぉです。下記、長文で申し訳ございません。

 

主題:78K0Rの高速内蔵発振停止と消費電流について、少し納得がいかない部分があり、ご教示賜れると助かります。

 

・通常、高速内蔵発振で動作させており、OFFスイッチでOFFしている時に消費電流を低減したいため、

 サブクロックへ切替えてから、高速内蔵発振を停止させています。

 停止前の条件は、CPU/周辺ハードウエア・クロックを切替える際は、サブシステム・クロックで動作しているかを確認してから元のクロックを停止

 ということで、ステータスでサブクロックになったことを確認してからHIOSTOP = 1にしています。

 

Q1⇒データシートをみると、この高速内蔵発振停止で数mAから数μAへ落とせるはずですが、実際には半分程度にしか低減せずmAオーダのままです。

       何か設定などに見落している部分があれば、ご教示頂けると助かります。

       (高速内蔵発振器は停止していても外部で波形をプロットする術はないようで、観測もできず・・・)

 

Q2⇒データシートにサブシステム・クロック(fSUB)ではIICAは動作しないとの注意点がございます。

       よって、切替え時周辺モジュールへのクロックを供給停止するのが定石と認識しておりますが、

       CKC:CSSでfsubへ切替えた後、1つのトライとしてPER0でIICAへのクロックを供給停止し、

       IICAを動作させない操作をしたところ、逆に消費電流が0.65⇒2.8mAに上がる結果となっています。

          PER0(周辺モジュール)の状況は、通常RTC/IICA/TAU0のみ動作させていて、このサブクロック切替え時に

          ・RTCENは1⇒0にできています。(残念ながら、消費電流低減は数μA程度)

          ・IICAENは1⇒0 にトライすると、(4行上以外に)スイッチON時1に切替えてもシステムが不安定:EEPROMへのIIC通信が出来なくなりました。

          ・TAU0ENも1⇒0 にトライすると、スイッチON時1に切替えてもシステムが不安定:ON時に早いクロックになっている様子です。

           (ブザーが通常より短い、短押しスイッチ操作が長押しになる等。)

           ⇒よって、IICAEN/TAU0ENは操作せず停止できていないのが現状となります。

       この2bitが1⇒0⇒1と操作されてシステムが不安定になる原因は何かわかりますでしょうか。

       こちらも、何か命令抜けなどの見落としがないか、ご教示ください。

 

下のような流れで記述しています。

【スイッチOFF時】
CSS    = 0x01;  /*クロックを高速内蔵⇒サブクロックへ*/

 (ステータスを見て、サブクロックになったら)

HIOSTOP = 1;  /*高速内蔵クロックを停止*/

 (その後、)

PER0 = 0b00010001;
                +--+---+------- 0に設定 */
                +-------------- RTCEN */
                     +------------IICAEN 0にできず*/
                           +--------TAU0EN  0にできず*/
                         /*   [制御クロック] */
                         /*   0: 制御クロック供給停止 */
                         /*   1: 制御クロック供給 */

・・・

OFF⇒ON時、RTC/IICA/TAU0は未使用です。スイッチポートのステータスを見てます。

・・・

【スイッチON時】
HIOSTOP = 0;  /*高速内蔵クロックを動作*/
NOP();
CSS    = 0x00;  /*クロックをサブクロック⇒高速内蔵へ*/
PER0 = 0b10010001;   /*RTCにクロック供給*/

  • ポートからの出力電流はどうなっていますか。
    入力ポートで開放になっている所は有ませんか。
  • リカルドさん

    アドバイスありがとうございます。
    ・出力ポートに関しては、プルアップ・プルダウン抵抗を変えて
    消費電流の増加を見たのですが、ありませんでした。
    ⇒出力ポートからの流出ではないと考えております。
    ・入力ポートに関しては、15箇所ありましたが、開放はありませんでした。

    何か見ることがあれば、アドバイス頂けると幸いです。
  • リセット中の消費電流はどうなりますか。
  • EEYOREさん

    IICを止めた時にPM60,61は出力になったままでしょうか?もしかするとLOW出力になってプルアップから電流を引いているかもしれません。

    それから、チップのプログラム書き込みは、デバッガからダウンロードされています?
    それともQBPやRFPなどのプログラマーで書き込みされてます?(こっちの方法を推奨)
    78K0Rはオンチップデバッグが有効になっていても内蔵高速発振器は止まるので問題ないのかもしれませんけれども。

    ちなみに、MINICUBE2/E1を接続した状態だとエミュレーターの電力消費とオンチップデバッグ機能の分電流が増えます。

  • >・入力ポートに関しては、15箇所ありましたが、開放はありませんでした。
    プルアップ抵抗内蔵の入力が、Lレベルになっていませんか。
    (78kにプルアップ抵抗内蔵のポートが有るのか知らないけど)

     プラス側の電源電流を測っているのだろうから、Hレベルの出力ポートから電流が流出しているのでしょう。Hレベルのポートを調べて見て下さい。

     E1などの開発装置が繋がっていれば、その影響はどうでしょう。
  • リカルドさん

    席に戻りましたので、再開して調査しました。
    RESETを強制的にGNDに落としてみたところ、定常 0.62mAが0.95mAになりました。
    簡易的にGNDに落としたので、RESETはH(3.3V)に10kΩでプルアップしたままなので、この抵抗分0.33mA増えたと考えております。
    その後、時系列でみると、GNDに落としてから約2秒後に2-3mAに、約3秒後に1.15mAに変化しました。
    これは、内部回路?F/Wが影響しているのかなと捉えました。
  • Kirin さん(今回もお世話になります。)

    >IICを止めた時にPM60,61は出力になったまま
    ・開発ツールで、PM60/61のステータスをみればよいでしょうか?
    ⇒これから確認してみます。
    ・P60/61ポートもプルアップ3kΩの部分に並列に10kΩの抵抗をつけて消費電流増加を確認したのですが、これが甘いことに気づきました。3kに10kつけても、1/(1/3+1/10)=30/13≒2.3kΩと変化をつけれていませんでした。
    ⇒ハードの面からもダブルチェックしたいと存じます。

    ちなみに下半分確認の件、
    調査している時は、RFPで書き込んだセットで、開発ツールからは切り離しています。
    これは商社(メーカ)から指摘され済です。(^^ゞ
  • リカルドさん

    ご指摘ありがとうございます。
    78K0R-LH3を使用していまして、プルアップ抵抗内蔵ポートはP1/3/7で、P1/3の入力設定のうち4ポートでで設定しています。
    ・4ポートいずれも、Hレベルになっていました。
    ⇒ここからの流出はないかと存じます。

    出力は少し多いので、これから見てみます。

    開発ツールは、未接続の状態で調査しています。
  • >RESETはH(3.3V)に10kΩでプルアップしたままなので、この抵抗分0.33mA増えたと考えております。
     
     CPU以外の電流も含まれていると言う事ですね。電流を測るとき、他にCPU以外の電流が含まれて居ませんか。
  • リカルドさん

    他には、サブマイコンとしてPICマイコンがあるのですが、これは通常はSLEEPしていて、数μAオーダになっています。
    それ以外は、ほとんど78K0Rに接続されていますので、確認できていると考えております。