2016-04-06 3 views
1

私はstm32L1xDiscoveryボードをRTCが動作しているSTOPモードにすることができます。 データシートによれば、これは約1.3μAであるべきです。しかし、私のアプリケーションは3.3μAを消費します。STM32L1xストップモード+ RTC過大電流

私は、スリープ中にFLASHを低消費電力モードにしなかったことに気付きました。しかし、私がこれをしたとき、何も変わっていません。私がここで行方不明です何

SCB->SCR |= ((uint32_t)SCB_SCR_SLEEPDEEP); 

RCC->APB1ENR |= RCC_APB1Periph_PWR; 
PWR->CR |= ((uint32_t)(PWR_CR_LPSDSR|PWR_CR_ULP)); // ULP seems to have no effect on power consumption 
RCC->APB1ENR &= ~RCC_APB1Periph_PWR; 

FLASH->ACR |= SLEEP_PD; // seems to have no effect at all on power consumption 

__WFI(); 

任意のアイデアを:

これは私がSTOPモードに入るために使用何ですか?

+0

これはプログラミング側よりもエレクトロニクス側にあると思われます。http://electronics.stackexchange.com/ –

+0

注:キャストとカッコの使い方はあまり一致しません。 – wildplasser

+0

ボードには漏れがないのですか?プルアップなどのように。 – LPs

答えて

1

ディスカバリーボードを使用すると、多くの他のコンポーネントがエネルギーを消費するため、測定値が明確でないことがあります。保護ダイオード、3.3Vラインのドライバ、またはST-LINK/V2組み込みデバッグツールを備えた2番目のMCUです。

+0

ああ、そうでなければなりません。私は完成したPCBを取得するときに再試行します。 – MartijnJonkers

1

どこで消費電力を測定しましたか? JP1のピン1 & 2(2番ピンはVddに直接接続されています)に接続してください。それは、MCUによって消費される電力、そしてもちろん出力ピンによって電力供給される電力を示すはずです。

トリックは、必要のないクロックだけでなく、すべてのピン(ウェイクアップソースを除く)を適切に切断してシャットダウンすることです。設定しFLASH->ACR |= SLEEP_PD

    • その後、デバッガ、STがないものを起動し、すべてのGPIOクロックにアナログモード
    • 無効にRCC_APB1ENR_PWREN除くすべてのクロックへ
    • 入れて、すべてのunnededピンを有効にしRCC->xxxLPENR
    • でのGPIOをウェイクアップ-Link(CN3)ジャンパが取り外されました。

    ...その他の問題がある可能性があります。それを正しくするのは難しいです。

  • +0

    RCC_APB1ENR_PWRENも無効にしたことを除いて、私はまさにそれを行いました。なぜそれを実行し続ける必要がありますか? – MartijnJonkers

    関連する問題