• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ATxmega パワーダウンしても消費電流1mA)

ATxmegaのパワーダウンモードで消費電流を1mAまで下げる方法

このQ&Aのポイント
  • ATMEL(現在はmicrochip)のマイコンATxmega64A3Uでは、パワーダウンモードに移行すると消費電流を1uA程度まで下げることができるが、実際に計測すると約1mA程度の消費電流が発生してしまう。
  • パワーダウンモードに設定すると、各ポート端子は入力インピーダンス状態にはならない可能性がある。
  • ポートEやポートFに接続されているディップスイッチの状態によって消費電流が影響を受けている可能性がある。

質問者が選んだベストアンサー

  • ベストアンサー
  • TIGANS
  • ベストアンサー率35% (245/681)
回答No.1

そうですね。パワーダウンモードにしても出力ポートの方向は変わりませんよ。もしそうしたければパワーダウンモードに入る前にプログラムでDIRを入力にすればよいだけですからそういう仕様になっているかと。 普通にH/Lを出力している出力ピンもソース/シンク電流を流そうと思えば流せるはずです  もし勝手に入力モードになってしまうとCPUの周囲の回路に影響がでてしまいますからね。

techhouse
質問者

お礼

回答頂きありがとうございます。 パワーダウンモードに移行してもポートが入インピーダンスにならないことを確認しました。確かに考えてみればそうですね。 今回のディップスイッチが接続されているポートE,Fのプルアップ抵抗はパワーダウンモードに移行するプログラムの前で、 (例) PORTF.PIN0CTRL = (PORT_OPC_TOTEM_gc); // high-impedance PORTF.PIN1CTRL = (PORT_OPC_TOTEM_gc); // high-impedance PORTF.PIN2CTRL = (PORT_OPC_TOTEM_gc); // high-impedance PORTF.PIN3CTRL = (PORT_OPC_TOTEM_gc); // high-impedance PORTF.PIN4CTRL = (PORT_OPC_TOTEM_gc); // high-impedance PORTF.PIN5CTRL = (PORT_OPC_TOTEM_gc); // high-impedance PORTF.PIN6CTRL = (PORT_OPC_TOTEM_gc); // high-impedance PORTF.PIN7CTRL = (PORT_OPC_TOTEM_gc); // high-impedance PORTE.PIN0CTRL = (PORT_OPC_TOTEM_gc); // high-impedance PORTE.PIN1CTRL = (PORT_OPC_TOTEM_gc); // high-impedance PORTE.PIN2CTRL = (PORT_OPC_TOTEM_gc); // high-impedance PORTE.PIN3CTRL = (PORT_OPC_TOTEM_gc); // high-impedance このようなプログラムで、ディップスイッチがONでGNDに接続されたとしてもハイインピーダンスで電流消費は軽減されたことを確認できました。

その他の回答 (2)

  • kaba__san
  • ベストアンサー率45% (27/59)
回答No.3

https://avr.jp/user/DS/PDF/xmegaA.pdf これの8.5に指南が書いてます。

techhouse
質問者

お礼

回答頂きありがとうございます。 パワーダウンモードに移行してもポートが入インピーダンスにならないことを確認しました。確かに考えてみればそうですね。 今回のディップスイッチが接続されているポートE,Fのプルアップ抵抗はパワーダウンモードに移行するプログラムの前で、 (例) PORTF.PIN0CTRL = (PORT_OPC_TOTEM_gc); // high-impedance PORTF.PIN1CTRL = (PORT_OPC_TOTEM_gc); // high-impedance PORTF.PIN2CTRL = (PORT_OPC_TOTEM_gc); // high-impedance PORTF.PIN3CTRL = (PORT_OPC_TOTEM_gc); // high-impedance PORTF.PIN4CTRL = (PORT_OPC_TOTEM_gc); // high-impedance PORTF.PIN5CTRL = (PORT_OPC_TOTEM_gc); // high-impedance PORTF.PIN6CTRL = (PORT_OPC_TOTEM_gc); // high-impedance PORTF.PIN7CTRL = (PORT_OPC_TOTEM_gc); // high-impedance PORTE.PIN0CTRL = (PORT_OPC_TOTEM_gc); // high-impedance PORTE.PIN1CTRL = (PORT_OPC_TOTEM_gc); // high-impedance PORTE.PIN2CTRL = (PORT_OPC_TOTEM_gc); // high-impedance PORTE.PIN3CTRL = (PORT_OPC_TOTEM_gc); // high-impedance このようなプログラムで、ディップスイッチがONでGNDに接続されたとしてもハイインピーダンスで電流消費は軽減されたことを確認できました。 今までは約1.5mAだったものが約1mA程度まで電流消費が少なくなりました。 基板作成者によると、マイコン以外に0.6mA程度常時食っているICもあるとのこと。 もしかしたらあと0.4mA程度減らせる可能性があるようです。 まだ、adcとかの停止をちゃんと確認していないのでトライしてみたいと思います。

  • kaba__san
  • ベストアンサー率45% (27/59)
回答No.2

CPUだけはその消費電力になるでしょう。 入力ポートについては、こんな質問を書く時間でデータシートを読めばわかるはずです。 勝手にハイインピーダンスなんてされたら、ピン変化割り込みでウェークアップ出来なくなるじゃないですか。 スリープ時に電力を消費したくないなら、自分でそのようにプログラムするんです。 ウォッチドッグやBODを動かしてたらそれ用のオッシレータも動きますし、その他の周辺機能も意図的に停止しなければウェークアップ用に動作し続けて電力を消費するでしょう。 周辺機能部の消費電流も書いているはずです。

techhouse
質問者

お礼

回答頂きありがとうございます。 パワーダウンモードに移行してもポートが入インピーダンスにならないことを確認しました。確かに考えてみればそうですね。 今回のディップスイッチが接続されているポートE,Fのプルアップ抵抗はパワーダウンモードに移行するプログラムの前で、 (例) PORTF.PIN0CTRL = (PORT_OPC_TOTEM_gc); // high-impedance PORTF.PIN1CTRL = (PORT_OPC_TOTEM_gc); // high-impedance PORTF.PIN2CTRL = (PORT_OPC_TOTEM_gc); // high-impedance PORTF.PIN3CTRL = (PORT_OPC_TOTEM_gc); // high-impedance PORTF.PIN4CTRL = (PORT_OPC_TOTEM_gc); // high-impedance PORTF.PIN5CTRL = (PORT_OPC_TOTEM_gc); // high-impedance PORTF.PIN6CTRL = (PORT_OPC_TOTEM_gc); // high-impedance PORTF.PIN7CTRL = (PORT_OPC_TOTEM_gc); // high-impedance PORTE.PIN0CTRL = (PORT_OPC_TOTEM_gc); // high-impedance PORTE.PIN1CTRL = (PORT_OPC_TOTEM_gc); // high-impedance PORTE.PIN2CTRL = (PORT_OPC_TOTEM_gc); // high-impedance PORTE.PIN3CTRL = (PORT_OPC_TOTEM_gc); // high-impedance このようなプログラムで、ディップスイッチがONでGNDに接続されたとしてもハイインピーダンスで電流消費は軽減されたことを確認できました。 今までは約1.5mAだったものが約1mA程度まで電流消費が少なくなりました。 基板作成者によると、マイコン以外に0.6mA程度常時食っているICもあるとのこと。 もしかしたらあと0.4mA程度減らせる可能性があるようです。

関連するQ&A