先日作った、ラジオ用のUI基板をデバッグしています。
当初、三端子レギュレータの脚を間違えてレイアウトしていたことが発覚したり、LCDの内部断線が発覚したりとトラブルに見舞われましたが、その後はハードウェアのトラブルも無く利用できています。
元々この基板は将来作るラジオの実験用の意味があるので、LCDコントローラの制御ソフトを書いてみました。
LCDはaitendoのHD18253T、LCDコントローラはNXPのPCF8562です。
PCF8562のコントローラはクラス型として実装しました。PCF8562はI2C接続でプラットフォームはmbedですので、I2Cポート・コントローラもクラスです。ですので、PCF8562のコンストラクタに接続ポートのI2C型オブジェクトを渡すようにしています。こうして作ったPCF8562の操作オブジェクトを、HD18253Tの操作オブジェクトのコンストラクタに渡すようにしています。
PCF8562は1:3マルチプレックス駆動のときのメモリ・マップの癖が強く、HD18253との相性はやや悪いのですが、一度クラスでラップしてしまえば気楽に使えます。
今後はプラットフォームをSTM32のHAL+FREERTOSに変更する作業を行います。