Workbench

日付

著者

Workbench

QSP32 Solar Boost(ソーラーブースト)

日付

初回公開日

October 23, 2024

シリーズ全体を読む

/ 6

この記事は、Quilterの物理法則に基づくレイアウト自動化を使い、NXP i.MX 8M Mini搭載コンピューターを再現した過程を詳しく紹介するシリーズの一部です。 

QSP32の成功を踏まえ、Quilterの生成型PCB設計機能を新たな領域へと押し広げることにしました。エナジーハーベスティング機能を備えたIoT基板です。

QSP32 Solar Boostをご紹介します!

無線モジュール、USB-Cポート、電源コネクタを備えたQSP32 Solar Boost基板。

QSP32 Solar Boostは、あらゆるIoTプロジェクトに太陽光による充電機能を組み込めるよう設計されたPCBです。QSP32と同様に、この基板のレイアウトは人の手を介さず、すべてQuilterの生成型設計によって作成されました。

QSP32 Solar BoostはESP32-C3-MINI-1モジュールに加え、次の機能を備えています。

  • USB 2.0-UART変換チップ
  • 5Vから3.3Vへの電源レギュレータチップ
  • ソーラーパネルからマイクロワットまたはミリワット単位の電力を収穫するエナジーハーベスティング用チップ
  • ヘッダー経由でのGPIOへのアクセス
  • LCD画面用のI2Cインターフェース
  • 湿度・温度・気圧を測定する3-in-1パッケージのセンサー

電力効率の最適化に取り組む方にも、環境に優しいデバイスを開発する方にも、このプロジェクトはQuilterが現実の課題に取り組みながら大幅な時間短縮を実現できることを示しています。

要約:Quilterはレイアウトで素晴らしい仕事をしてくれました。Macrofabで製造し、すべて期待どおりに動作しています!

プロジェクトの詳細は以下をご覧ください!

Hello Worldを点滅表示するQSP32 Solar Boost

Quilterでの設計

Quilterでのジョブ設定は、大きく分けて2つのステップで行います。

  1. 入力ファイルのアップロード(回路図と基板ファイル):ネットリスト、部品フットプリント、基板外形、事前配置した部品の位置を定義します。
  2. 制約条件の定義:QuilterのAI設計エンジンがレイアウト時に考慮すべき主要な物理的要件を指定します。

入力ファイル

この設計では、位置が重要ないくつかの部品を事前配置しました。

  • ESP32-C3-MINIモジュール:信号干渉を減らすため、ESP32のパターンアンテナが基板の端から外側に出るようにしたかったためです。
  • USBコネクタとバッテリーコネクタ:共通の一辺に沿ってまとめて配置しました。
  • プッシュボタン:操作しやすいようESP32の近くに配置しました。
  • ソーラーパネル用のはんだ付けポイント:筐体との組み合わせ方を検討中です。

残りの部品は未配置のままQuilterに任せました。右側を見ると、部品は全部で63個あることが分かります。そのうち10個を事前配置し、265ピンを持つ残り53個の部品の配置と配線をQuilterに任せました。

Preview of my input board file to Quilter
Quilterに入力した基板ファイルのプレビュー

物理的制約

QSP32 Solar Boostの設計で主に考慮した物理的要件は次のとおりです。

  • USB-C電源供給とLi-Po充電回路のための大電流ネット
  • USB-CコネクタとUART間でUSB信号を伝送するための差動ペア
  • 十分なデカップリングとフィルタリングを確保するためのバイパスコンデンサ

💡

このレイアウトを最初に生成した時点(2024年8月)では、Quilterがサポートしていたのは大電流ネットと差動ペアのみでした。バイパスコンデンサの制約にはまだ対応していませんでした。

以下は、Quilterにレイアウトジョブを送信する前に定義した大電流ネットの制約です。

QSP32 Solar Boost high current net constraints
QSP32 Solar Boostの大電流ネット制約

Quilterに差動ペア機能が追加されました!差動ペアが必要なのはEthernetやUSBのような高速でノイズに敏感な通信プロトコルに限られますが、機能を試すため、USB-UART(USB-シリアル)ブリッジに差動ペアを1組定義しました。

Differential Pairs specification input to Quilter
Quilterへの差動ペア仕様の入力

出力ファイル

入力ファイルをアップロードしてから2時間後、12個の候補の中から候補7を選びました。片面実装、4層、希望する製造業者という条件を満たしていたためです。

Choosing a layout candidate
レイアウト候補の選択

選んだ設計はこちらです。

Output file in KiCad from Quilter
Quilterから出力されたファイルをKiCadで表示

立ち上げと検証

MacroFabから実装済みの基板を受け取った後、検証が必要な機能は次のとおりでした。

  1. 電圧レギュレーション:ESP32向けの安定した3.3V
  2. ソーラーパネルによるエナジーハーベスティング
  3. USB経由でのPCとのシリアル通信
  4. 外部LCDを使用した、露出したヘッダーピン経由のI2C通信
  5. I2C経由のセンサーデータ:気圧、温度、湿度

Solar Boostの電圧レギュレーション、シリアル通信、BME280センサーの動作は、BME280センサーのデータ収集スケッチをESP32-C3-MINIモジュールに書き込むことで、一度に検証しました。

下の2枚目の画像のとおり、書き込みとシリアルでのデータ読み取りができていることから、電圧レギュレータがESP32に安定した3.3V(5.2VのUSB電源から)を供給していることが分かります。さらなる検証として、すぐ下に示すように3.3VとGNDの間に電源投入LED(D7)があります。

Power-on LED in orange rectangle
オレンジ色の枠内が電源投入LED
Serial monitor validates voltage, serial comms, and sensor data
シリアルモニターで電圧、シリアル通信、センサーデータを検証

エナジーハーベスティング

エナジーハーベスティングはBQ25504によって行われます。これは、ソーラーパネルなどのデバイスが発電するマイクロワットまたはミリワット単位の電力を取得・管理するために設計された昇圧コンバータです。動作の検証には、開放電圧定格3.4V、最大電力点電圧2.2V(V @pmpp)の小型(約1.25インチ×2インチ)ソーラーパネルと、6.3V定格の470uF有極性コンデンサを使用しました。

パネルを日向と日陰の間で動かしながら、コンデンサにプローブを当てました。コンデンサは急速に充放電を繰り返します。この動画は1000倍速ですが、信号ははっきりと確認できます。

ソーラーパネルでコンデンサを充放電するQSP32 Solar Boost

The QSP32 Solar Boost set up to test with a capacitor and solar panel
コンデンサとソーラーパネルでテストするためにセットアップしたQSP32 Solar Boost

I2C経由のLCD

このLCDはSolar Boost基板の露出したヘッダーピンに接続されており、I2Cバス経由で送信されたリアルタイムデータを表示します。

バッテリー電圧を読み取って表示する簡単なスケッチを書き込み、PCBレイアウトが正しく機能していることを確認しました。

LCD showing battery voltage over I2C
I2C経由でバッテリー電圧を表示するLCD

設計の検証

QSP32 Solar Boostは完璧に動作しています!

機能の検証が済んだところで、さらに詳しく見ていきましょう。

シグナルインテグリティ:差動ペア

Quilterは常に新機能を追加しており、差動ペアにも対応するようになったので、この機能を使ってUSBとUART間の配線(オレンジ色の矢印)を処理しました。前述のとおり、USB-UARTブリッジにこの機能は必要ありませんが、それでもテストするのは楽しいものでした。

Schematic view of USB-C connector and UART. Orange arrows point to differential pairs.
USB-CコネクタとUARTの回路図。オレンジ色の矢印が差動ペアを示しています。

QuilterはFTDIチップをUSB-Cコネクタの近くにうまく配置してくれました。これらの配線はUARTチップ(上)とUSB-Cコネクタ(下)の間を結んでいます。差動ペアのレイアウトは精密に等長配線されており、良好なシグナルインテグリティが得られています。

DP_PとDP_N(白い矢印)にプローブを当てました。

PCB layout view of USB-C connector pins on the bottom and UART pins on the top
PCBレイアウト図。下がUSB-Cコネクタのピン、上がUARTのピン

このオシロスコープの波形は、USB-UARTインターフェースの差動信号を示しています。赤(DP)と青(DM)の波形は、期待どおり逆極性になっています。信号はクリーンで、安定したシグナルインテグリティを示しています。

Oscilloscope capture of Differential Pairs signals: DP (red) and DM (blue)
差動ペア信号のオシロスコープ波形:DP(赤)とDM(青)

差動ペアの拡大図も非常に良好です!ノイズはなく、信号は完全に鏡像になっています。

Oscilloscope closeup capture of Differential Pairs signals: DP (red) and DM (blue)
差動ペア信号のオシロスコープ拡大波形:DP(赤)とDM(青)

電源レギュレーション

QSP32 Solar Boostの電源経路は、USB-Cコネクタ経由のUSB電源(5.2V)から始まります。USB電源は3.3V電圧レギュレータに入り、3.3Vに降圧・安定化されます。ESP32は動作に非常に安定した電源を必要とするため、レギュレータの性能が重要です。

Schematic view of USB-C, 3.3V regulator, and ESP32-C3-Mini
USB-C、3.3Vレギュレータ、ESP32-C3-Miniの回路図

ほとんどのレギュレータは、入力側と出力側にバイパスコンデンサを必要とします。レギュレータに供給される電圧の安定化、デカップリング、高周波ノイズのフィルタ、そしてシステムの負荷が増加・変動したときの過渡応答のためです。

💡

このレイアウトを最初に生成した時点(2024年8月)では、Quilterはまだバイパスコンデンサの制約に対応していませんでした。

以下は、QuilterがSolar Boostの電圧レギュレータとその入力・出力コンデンサをどのように配置し、レイアウトしたかを示しています。自分でこれらの部品を手配置するなら、データシートの指示に従うでしょう。

外付け部品、特に出力コンデンサC13は、ICにできるだけ近づけて配置し、配線はできるだけ短くしてください。

とはいえ、基板上で測定できるすべての箇所で電圧は非常に安定した3.3Vだったため、この点は問題にならなかったようです。

QSP32 Solar Boost voltage regulator component layout
QSP32 Solar Boostの電圧レギュレータ周辺の部品レイアウト

Solar Boostを製造した1か月後、Quilterは「Circuit Comprehension(回路理解)」によってバイパスコンデンサに対応するようになりました。

Screenshot of Quilter’s bypass capacitor placement feature
Quilterのバイパスコンデンサ配置機能のスクリーンショット

このオシロスコープのスクリーンショットでは、青の波形がUSB-Cコネクタからの5Vラインの電圧、赤の波形が電圧レギュレータの3.3V出力を示しています。3.3V出力は非常にクリーンで、フィルタが効果的に機能していることが分かります。

Voltage regulator 5.2V input (blue) and 3.3V regulated output (red)
電圧レギュレータの5.2V入力(青)と安定化された3.3V出力(赤)

シグナルインテグリティ:I2C

このバス上では、LCDと3つのセンサーという2つのデバイスが同時に通信しています。両方のデバイスが動作している状態で、SDA(データ、赤)とSCL(クロック、黄)の信号をキャプチャしました。信号にはややノイズがあるように見えますが、これはLCD画面がかなり長い(3インチ)ジャンパーワイヤーで接続されているためと考えられます。

I2C signal -SCL (yellow), SDA (red)- from an LCD and pressure, temperature, and humidity sensors.
LCDと気圧・温度・湿度センサーからのI2C信号(SCL:黄、SDA:赤)

I2Cバス上のセンサーをソフトウェアで初期化しなくても大きな違いはありませんでした(図示せず)が、LCD画面を物理的に取り外すと信号のノイズが減りました。

前述のとおり、LCD画面は基板上の外部パッドに接続されたジャンパーワイヤーで取り付けられているため、これは驚くことではありません。

💡

ここから得られた2つの教訓:

  1. I2Cはノイズに耐えられる堅牢な通信プロトコルである
  2. PCBをどれだけ最適化しても、シグナルインテグリティは基板外の要因に影響されうる(そして実際に影響される)!
I2C signal -SCL (yellow), SDA (red)- from just the pressure, temperature, and humidity sensors.
気圧・温度・湿度センサーのみからのI2C信号(SCL:黄、SDA:赤)
Close-up of I2C signals
I2C信号の拡大図

試しに、Saleaeのロジックアナライザーでこの信号を調べてみました。センサーのアドレス0x76と、スケッチに組み込んだ8秒の遅延が確認できます。当然ながら、ロジックアナライザーはこれらの信号をI2Cとして正しく認識しています!

I2C signal capture with logic analyzer
ロジックアナライザーによるI2C信号のキャプチャ

まとめ

ESP32-C3-MINIモジュールを選んだのは、アンテナ、水晶振動子、負荷コンデンサ、バイパスコンデンサといった必須部品が統合されているためです。Quilterの機能が増えていくにつれ、Quilterを使ってESP32モジュール全体を設計できるようになるのを楽しみにしています。

QSP32 Solar Boostの次のリビジョンでは、バイパスコンデンサ機能も利用する予定です!この基板でのQuilterの自動配置・配線は非常にうまく機能し、手作業でのレイアウトにかかる数日分の時間を節約できました。

設計の改善点

  • USB-Cコネクタの両面を接続し、リバーシブル入力に対応する
  • ADCにプルダウン抵抗を追加する
  • USB電源に加えてバッテリー電源でも動作するよう構成する
  • GPIO0がQ1に誤って配線されている
  • D1の4ピンフットプリントを修正し、RGBステータス表示に使用する
  • D6を反転する(設計上で逆向き)
  • 電力を消費するためD5を削除する
  • BQ25504の設定用抵抗値を見直す
  • 不要なENスイッチを削除する
  • ソーラーパネルの配置を変更する
  • 「試作品」として緑色の基板で製造する

今後のステップ

QSP32 Solar Boostをベースに、低消費電力のソーラー用途で使えるよう効率の改善に取り組みます。筐体、より小型のLCD画面、ソーラーパネル用のより優れた機械的な固定具を備えれば、あらゆる種類の低消費電力の気象データ収集に使える、素敵な小型製品になるでしょう。

リンク/リソース

Quilterを実際に試す

Project Speedrunは、自律的なレイアウトの実際の姿と、Quilterが実現する時間短縮を示しました。次は、ご自身のハードウェアでお確かめください。

利用を始める

設計の検証

仕上げが完了したら、最後に確認するのはハードウェアが動作するかどうかです。電源投入時には電気的な不具合の多くが現れます。エンジニアにとって、緊張と期待が入り交じる瞬間です。

第4回に進む

設計の仕上げ

自律的なレイアウトにより、DRCを実施済みの完成した設計が得られます。仕上げは、製造に向けて最終調整するための短い精密な作業です。

第3回に進む

設計のコンパイル

設計の準備ができたら、次はQuilterに引き渡します。従来のワークフローでは、この段階でエンジニアとレイアウト担当者が設計意図を確認します。Quilterはこの打ち合わせを回路理解のプロセスに置き換えます。プロジェクトをアップロードし、制約条件がどう解釈されたかを確認して、ジョブを実行します。

第2回に進む