ashwatermelon

ashwatermelon

【学習ノート】stm32マイコンBKP、RTC、PWR

この数日間、STM32 の BKP、RTC、PWR について学びました。マイコンの学習は基本的に終わりに近づいており、残るのはウォッチドッグとフラッシュだけです。では、今日の学習ノートを始めましょう。

(一)PWR#

まず PWR について説明します。なぜなら、後の BKP と RTC は PWR クロックを有効にし、いくつかの PWR 機能を呼び出す必要があるからです。
PWR とは何でしょうか?
PWR は電源制御(Power Control)で、STM32 内部の電源供給部分を管理します。プログラム可能な電圧モニターと低消費電力モードの機能を実現できます。プログラム可能な電圧モニター(PVD)は VDD 電源電圧を監視し、VDD が PVD の閾値以下に下がるか、PVD の閾値以上に上がると、PVD は割り込みをトリガーし、緊急シャットダウンタスクを実行します。(PVD 機能はまだ使用していません)
低消費電力モードにはスリープモード(Sleep)、ストップモード(Stop)、スタンバイモード(Standby)が含まれ、システムがアイドル状態のときに STM32 の消費電力を低下させ、デバイスの使用時間を延ばします。
その設定プロセスは以下の通りです:

image

スタンダードライブラリの PWR 関数はすでにかなり完全で、操作は非常に簡単です。
まず PWR クロックを起動するだけで(スリープモードではクロックを起動する必要すらありません):
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);

次に、以下の関数を呼び出して対応するモードに入ります:
スリープモード:__WFI();
ストップモード:PWR_EnterSTOPMode();
スタンバイモード:PWR_EnterSTANDBYMode();

低消費電力モードに入った後は、プログラムを直接書き込むことはできず、リセットボタンを押し続けてからプログラムを書き込み、タイミングよくリセットボタンを放す必要があります。

(二)BKP#

image

江科大のビデオで TAMPER について言及されましたが、私たちがコードを書くときには使用していませんので、ここでは議論しません。私たちが必要なのは、BKP の保存が電源オフでも失われないことだけです。

こちらが BKP の構造です:

image

VBAT はバックアップ電源ピンで、BKP の電源オフ時のデータ保持はこのピンによるものです。

コードは以下の通りです:

RCC_APB1PeriphClockCmd(RCC_APB1Periph_BKP,ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);

クロックを有効にします。

PWR_BackupAccessCmd(ENABLE);

バックアップ電源を有効にします。

BKP_WriteBackupRegister();

書き込みます。

BKP_ReadBackupRegister();

読み出します。

(三)RTC#

RTC を使用するには、まず Unix タイムスタンプを理解し、<time.h> のいくつかの関数を学ぶ必要があります。

image

image

これらを理解した後、RTC を見ていきましょう。

image

RTC の構造は以下の通りです:

image

ここで注意すべきはクロックソースで、一般的には LSE 外部低速クロック、32.768kHz のクリスタルを選択しますが、この装置は振動しないことがあります(頻繁にそうなる可能性があります)。私が設定したときは LSI を使用し、クリスタル周波数は 40kHz でした。
また、RTC のクロック設定にはいくつかの注意点があります:

image

以下は設定コードで、ついでにタイムスタンプの変換も行いました:

image

image

これで BKP、RTC、PWR のすべての内容は終了です。書くのがだんだん面倒になってきました、悲しいです。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。