このQ&Aは役に立ちましたか?
アトメルマイコンでパワーダウンしても400uA消費
2023/09/07 14:34
- アトメル社製のマイコン ATxmega64a3uでパワーダウンモードに移行させて消費電流を削減したいと思っていますが、400uA程度の消費電流があります。
- パワーダウンモード中に消費電流を抑えるためにpower_all_enable()関数を利用しましたが、それでも400uA程度の消費電流があります。
- 他に確認すべき箇所や漏れ電流の確認方法などがあれば教えてください。
アトメルマイコンでパワーダウンしても400uA消費
2021/10/26 15:11
現在、アトメル社製のマイコン ATxmega64a3uでプログラミングを行っています。特にパワーダウンモードに移行させて消費電流を削減したいと思っています。
前回、消費電流が思うように削減できなかったため質問させて頂きました。
ATxmega パワーダウンしても消費電流1mA @okwave https://okwave.jp/qa/q9930101.html
上記の質問サイトにて記述しておりますが、マイコンがパワーダウンさせても400uA程度消費している可能性があるとのことで、実際にマイコン以外の部品を外して、消費電流を計測してみたところ、やはり400uA程度消費していることを確認しました。
前回の質問で教えてもらった
power_all_enable();
こちらの関数を利用して可能な限り消費電流を抑えたつもりなのですが、それでもパワーダウンモード中に400uA程度消費していました。
この場合なんですが、他に確認すべき箇所などはありますでしょうか?
一部基板担当の方から、
”漏れ電流があるかもしれないから仕方ない・・・”
みたいな声も聞こえてくるのですが、何か確認方法等ご教示頂きますようお願い致します。
なお、パワーダウンモードへのプログラムの一部ですが、
#include <avr/power.h>
//------(中略)-----------
main(void)
{
//------(中略)-----------
wdt_disable();
power_all_disable();
sleep();
wdt_enable(0x26); //wdt timeout 4sec enable
power_all_enable();
//------(中略)-----------
}
質問者が選んだベストアンサー
このQ&Aは役に立ちましたか?
この質問は投稿から一年以上経過しています。
解決しない場合、新しい質問の投稿をおすすめします。
その他の回答 (4件中 1~4件目)
power_all_disable(); は周辺回路ごとの停止機能で
ADCの消費電力を抑えるためのものですから
コア部分のクロックは動作してますよ。
まさかとは思いますが、Aruduinoの loop()で測定はしてませんよね?
#include <avr/sleep.h>
set_sleep_mode(SLEEP_MODE_PWR_DOWN);
sleep_enable();
sleep_cpu();
などとして、コアもパワーダウンモードに移行させてますよね?
お礼
2021/10/28 14:54
回答頂きありがとうございます。
教えて頂いたプログラムを追加してみました。
#include <avr/power.h>
#include <avr/sleep.h>
//------(中略)-----------
main(void)
{
//------(中略)-----------
wdt_disable();
power_all_disable();
set_sleep_mode(SLEEP_MODE_PWR_DOWN);
sleep_enable();
sleep_cpu();
//sleep();
wdt_enable(0x26); //wdt timeout 4sec enable
power_all_enable();
//------(中略)-----------
}
これでパワーダウンモードに移行させてみたのですが、やはり消費電流は400uA程度とあまり変化がありませんでした。
その後、ヒューズビットでBODPDをcontinuous--->disableに変更すると270uA程度まで低下することを確認しました。
助かります。
こういうのは可能性のある部分を一つ一つ外していくしかないです。
(1)マイコンも外して電流測定
(2)マイコンが外せないなら、動作させない状態にして電流測定
(3)マイコンの入力ピンを1ピンずつ外して電流測定
(3)は部品形状から難しそうですが……
どのような基板に実装しているかわかりませんが、全部の部品を外しても、電源ベタとGNDベタの間にコンデンサが形成されていたりするので、基板だけにしても電流が流れるかもしれませんよ。
そうなっているかどうかは(1)を実行するとわかって、(2)を実行すると、マイコンの入出力に電流が流れているかどうかがわかり、(3)を実行すると、どのピンに電流が流れているのかわかります。
お礼
2021/10/29 08:56
回答頂きありがとうございます。
色々と試してみたところ、ヒューズビットでBODPDをcontinuous--->disableに変更すると400uA---->270uA程度まで低下することを確認しました。
1uA以下とまでは行っていないのですが、時間があればマイコン周辺の漏れ電流も確認してみたいと思います。
お礼
2021/10/28 14:48
回答頂きありがとうございます。
ヒューズビットの設定で、BODPDとBODACTの2つはAD変換のピンでバッテリー電圧を2.2Vの閾値で監視するため”continuous”に設定していたのですが、BODPDを"disable"に設定したら、約150uA消費電流が低下しました。
(sampledの場合は約100uA低下)
1uA以下とはいきませんが、約250uAまで落ちてきました。
BODPDってパワーダウンモード時にBOD監視するかどうかの機能なのですね。
特にdisableに設定しても問題ないかもです。
助かります。