電子ペーパーをESP32-WROVER-Bで制御する基板を作るシリーズ、前回は部品の実装をしました。今回は、動作テストを行います。
CPLDにプログラムを書き込み
まずは、MAX V CPLDに、プログラムを書き込みます。このCPLDは、ESP32からSPIで電子ペーパーを制御したり表示データを送信したりできるようにするための、プロトコル変換を行います。
以前実験していたボードとは、ピンアサインが違うので、PinPlannerで配置を変更します。
基板のJTAGのところにテストピンを押し当てて、書き込みます。
「AutoDetect」ボタンを押すと、5M160ZE64と正常にCPLDが認識されました。続いて「Start」でプログラムを書き込みます。右上の緑色のステータスバーがどんどんのびで100%になりました。プログラムも正常に書き込みできました。
ESP32にプログラムを書き込み
Arduino IDEからテストのプログラムを転送してみます。
USBシリアル変換ICに安価なCH340を使っているので、最大転送速度が460800bpsですが、正常にプログラムが書き込むことができました。
基板のバグ修正
ブートモードの設定ミス
なぜかブートモードが0x17になっていました。回路図を見るとIO4がプルダウンでなくて、プルアップしていました。このままでも動作はしたのですが、基板を修正してプルダウンに変更しました。
基板を修正したところ、0x13でブートするようになりました。
シリアル2が使えない
ESP32にはハードウェアのシリアルが0〜2までの3つあります。そのうち0はプログラムの書き込みに使っていて、1はESP32の内部で使っているためユーザーは利用できません。残る2(IO16,17)を。GPSとの通信に使おうと思ったのですが、なぜか通信できません。GPIOとしても利用できませんでした。
ESP32-WROVERのデータシートを見るとシリアル2のIO16とIO17はNC (未接続)になっていました。どうやら、シリアル2はESP32内部のPS-RAMに接続されて使用されていて、ユーザーは利用できないようです。
仕方がないので、GPSはIO25,26のソフトウェアシリアルで利用することにします。
パワーGOODのLEDが光らない
電子ペーパー用のDCCDコンバータICには、DCDCコンバータが動作を開始し、それぞれの出力電圧全てが規定の電圧に達した場合には、それがわかるのようにPOWER GOODの信号が出力されます。今回、その信号にLEDをつないでいたのですが、電源を入れても光りませんでした。
全ての出力電圧をチェックしましたが、全て正常にも関わらずLEDが光らなかったので、回路を調べたところ、POWER GOODの信号は電流を吐き出すタイプではなく、オープンドレインの吸い込みタイプでした。
LEDの極性を反対にして、配線を変更したところ、正常に光るようになりました。
電子ペーパーを接続して表示のテスト
それぞれの機能単位での動作確認ができたので、最終的に電子ペーパーを接続して、表示ができるかのテストです。以前作った、アニメーションを表示するプログラムでテストしたいと思います。
さて、結果は...
アニメーションが表示されて、動作テストは無事成功しました!!!
ハードウェアが完成したので、次はソフトウェアをこの実験ボードに合わせて改良していきたいと思います。
コメント