keitanak が 2025年03月29日11時31分35秒 に編集
初版
タイトルの変更
e-Paperを利用したカレンダーの製作(STM32) 試作編
タグの変更
STM32
e-paper
電子ペーパー
Arduino
メイン画像の変更
記事種類の変更
製作品
ライセンスの変更
(MIT) The MIT License
本文の変更
# はじめに 前回までの実験結果などから実現性が見えてきたので、完成品を目指して試作を行い、結果以下のような仕様としました。 ・e-Paperの描画時にかなり電流(12mA程度)を消費することから、コイン電池駆動は難しいことが判明、LiPoバッテリー(200mAh)駆動に変更 ・STM32Lシリーズの中でモデル選定を行った結果、必要最低限レベルでSTM32L072KZT6を選択(192K フラッシュ、20KB RAM、 LQFP 32ピン) ・e-PaperのDriver HATはスタンバイ時の電流消費が大き目の為、Driver HATの回路+独自にロードスイッチを入れてe-Paperの電源を制御することに。(e-Paperをスタンバイすれば消費電力抑えられるかと思いましたが、DC-DCコンの部分が動作不安定になりましたので、ロードスイッチで電源をOFFにしたほうが確実のようです。) ・電波時計の受信状況はLED(緑・赤)のインジケータで状況を表現するようにしました。 ・カレンダーは当月を表示しつつ、前月・翌月も小さく表示するように。また9か月表示機能も持たせることに。 ・LiPoバッテリーの充電はTP4056の安価な充電基基板を利用。 # 全体構成 全体構成を絵にするとこのようになります。  # 回路図 kiCADで作図しました。説明を入れておきます。  # ソフトウエア 現時点のソースをこちらに保管しました。VSCodeでPlatformIO利用を想定のものです。 https://github.com/keitanak/E-PaperCalendar ## Arduinoへのボード登録 今回はSTM32のチップをそのまま利用することから、Arduinoにボード登録を行う必要があります。VSCode + Platform IOの場合は、以下のようになります。 以下のパスにSTM32ボード定義が保管されています。 C:\Users\<ユーザ名>\.platformio\platforms\ststm32\boards jsonファイルで自分用のボード定義を作成して保管します。これでPlatformIOの中でボードとして選択が可能になります。 ```json:genericSTM32L072KZT.json { "build": { "cpu": "cortex-m0plus", "extra_flags": "-DSTM32L0 -DSTM32L072xx", "f_cpu": "32000000L", "framework_extra_flags": { "arduino": "-D__CORTEX_SC=0" }, "mcu": "stm32l072kzt6", "product_line": "STM32L072xx", "variant": "STM32L0xx/L072K(B-Z)T_L082K(B-Z)T" }, "debug": { "default_tools": [ "stlink" ], "jlink_device": "STM32L072KZ", "openocd_target": "stm32l0", "svd_path": "STM32L07x.svd" }, "frameworks": [ "arduino", "cmsis", "libopencm3", "stm32cube" ], "name": "STM32L072KZT (20k RAM. 192k Flash)", "upload": { "maximum_ram_size": 20480, "maximum_size": 196608, "protocol": "stlink", "protocols": [ "jlink", "cmsis-dap", "stlink", "blackmagic", "serial", "dfu" ] }, "url": "https://www.st.com/ja/microcontrollers-microprocessors/stm32l072kz.html", "vendor": "ST" } ``` PlatformIO画面  ボード定義作成にあたり参考にさせていただいたページです https://qiita.com/shuji4649/items/6f86d65fc1442101d06d ## 動作中のクロック変更 消費電力を抑えるために、クロック変更の方法を前回調査しました。実際に動作させてみると、電子ペーパーの描画の際にはあまりに遅くなります、そのため描画時のみクロックはデフォルトに戻して動作させることにしました。 稼働中にクロック変更はどうかと思いましたが、意外と問題ありませんでした。シリアル通信だけはおかしくなるので、事前に停止して再開する処理を入れています。 # 試作時写真    # 消費電力 DVMで確認してみると、画面描画時は20mA程度流れます。 スタンバイ時はこのように20μAぐらいですね、いろいろ回路をつけたので、少しづつ電流が積み重なったようです。 200mAhの電池でどのぐらい持つか長期の評価が必要ですね。  # 今後の予定 しばらく動作させていて、動作も安定してきたので、この内容で基板オーダーしてみようと思います。 フォトフレームとかに入れて飾れるといいのですが。