このQ&Aは役に立ちましたか?
ATxmegaのパワーダウンモードで消費電流を1mAまで下げる方法
2023/10/20 20:42
- ATMEL(現在はmicrochip)のマイコンATxmega64A3Uでは、パワーダウンモードに移行すると消費電流を1uA程度まで下げることができるが、実際に計測すると約1mA程度の消費電流が発生してしまう。
- パワーダウンモードに設定すると、各ポート端子は入力インピーダンス状態にはならない可能性がある。
- ポートEやポートFに接続されているディップスイッチの状態によって消費電流が影響を受けている可能性がある。
ATxmega パワーダウンしても消費電流1mA
2021/10/06 18:58
現在ATMELのマイコン(現在はmicrochip)ATxmega64A3Uでプログラミングを行っています。
https://avr.jp/user/DS/PDF/xmegaA4U.pdf
このマイコンの機能で、パワーダウンモードというモードに移行すると、消費電流を1uA程度まで下げられるというので試してみました。
しかし、テスターで計測してみると、約1mA程度まで消費してしまっています。
ポートE、ポートFにディップスイッチを接続していて、ONにすると消費が上がり、OFFにすると消費が下がります。
なので、ポートE、ポートFにプルアップ抵抗が設定されてしまっているように感じます。
ただ、パワーダウンモードに設定すると自動的に各ポート端子は入インピーダンス状態にはならないのでしょうか?
どうぞ、ご教示の程よろしくお願い致します。
質問者が選んだベストアンサー
このQ&Aは役に立ちましたか?
この質問は投稿から一年以上経過しています。
解決しない場合、新しい質問の投稿をおすすめします。
その他の回答 (3件中 1~3件目)
https://avr.jp/user/DS/PDF/xmegaA.pdf
これの8.5に指南が書いてます。
お礼
2021/10/11 18:46
回答頂きありがとうございます。
パワーダウンモードに移行してもポートが入インピーダンスにならないことを確認しました。確かに考えてみればそうですね。
今回のディップスイッチが接続されているポート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とかの停止をちゃんと確認していないのでトライしてみたいと思います。
CPUだけはその消費電力になるでしょう。
入力ポートについては、こんな質問を書く時間でデータシートを読めばわかるはずです。
勝手にハイインピーダンスなんてされたら、ピン変化割り込みでウェークアップ出来なくなるじゃないですか。
スリープ時に電力を消費したくないなら、自分でそのようにプログラムするんです。
ウォッチドッグやBODを動かしてたらそれ用のオッシレータも動きますし、その他の周辺機能も意図的に停止しなければウェークアップ用に動作し続けて電力を消費するでしょう。
周辺機能部の消費電流も書いているはずです。
お礼
2021/10/11 18:45
回答頂きありがとうございます。
パワーダウンモードに移行してもポートが入インピーダンスにならないことを確認しました。確かに考えてみればそうですね。
今回のディップスイッチが接続されているポート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程度減らせる可能性があるようです。
お礼
2021/10/11 18:42
回答頂きありがとうございます。
パワーダウンモードに移行してもポートが入インピーダンスにならないことを確認しました。確かに考えてみればそうですね。
今回のディップスイッチが接続されているポート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に接続されたとしてもハイインピーダンスで電流消費は軽減されたことを確認できました。