deepsleep中にデジタルピンから電流が常に出力される


spresenseのdeepsleepモードについて質問です。

deepsleepは上手くいくのですが、deepsleep中にデジタルピンから電流が出力されてしまいます（deepsleep処理前にdigitalwriteでLowの指示でLEDを消しても、deepsleepになると常に点灯状態となってしまう）。

deepsleep中は、ESP32等ではデジタルピンから出力がなくなったと記憶しているのですが、これはspresenseの仕様でしょうか?  
また、仕様ならばdeepsleep中にデジタルピンの出力を停止する方法はございますか?

ご回答お待ちしております。




回答を重ねる形になってしまいますが、もう少しわかりやすく解説したいと思います。

kzzさんが指摘されているとおり拡張ボードのピンには常に電圧がかかっています。メインボードで何も制御しないとLEDのような負荷を与えると電流が流れてしまいます。

（言い換えると、拡張ボードでLEDを点滅できるのは、そのようになるようにメインボードがピンを制御しているからです）

[![拡張ボードの電源](https://i.stack.imgur.com/VZkE7.png)](https://i.stack.imgur.com/VZkE7.png)

これだと少しわかりにくいので、メインボードを外して拡張ボードだけでLEDが光るか実験をしてみました。ご覧のように拡張ボードだけでLEDが光ってしまっています。

（メインボードのUSB電源と拡張ボードのUSB電源は同じ電源ラインです）

[![拡張ボードのみでLED点灯](https://i.stack.imgur.com/YMpb1.jpg)](https://i.stack.imgur.com/YMpb1.jpg)

一方、メインボードにLEDをつなげてDeepSleepと起動を繰り返してみました。ご覧のようにDeepSleep中はGPIOに電流は流れていません。

[![Spresense MainBoard DeepSleep
LED実験](https://i.stack.imgur.com/ru0VQ.png)](https://i.stack.imgur.com/ru0VQ.png)

使ったスケッチは次のものです。

[code]

    #include <LowPower.h>
    #define LED_PIN 0
    
    void setup() {
      pinMode(LED_PIN, OUTPUT);
      digitalWrite(LED_PIN, HIGH);
      delay(2000);
      LowPower.begin();
      LowPower.deepSleep(2);
    }
    
    void loop() {
    }
    
[/code]

以上のことから、DeepSleep中の消費電力を抑えるには、メインボードに負荷をつなぐ必要があります。

ご参考になれば幸いです。

