気が付いたら12月に入ってしまいました。今回はプログラマブルデバイスGreenPakを紹介したいと思います。デジタルの論理回路やアナログのコンパレータ、カウンタ、遅延、タイマといった比較的簡易な機能を実現するために特化したデバイスです。1個200円弱で16bit/32bitのマイコンよりも安く実現することが可能です。1個100円前後の8bitマイコンと比べると少し高いですが、アナログ系とデジタル系の簡易な機能が備わっているため、8bitマイコン単体+論理ICやアナログICを組み合わせる場合にはGreenPak1つで代替できる可能性があります。また、マイコンの周辺回路をGreenPakで統合するといったことが可能です。
GreenPakシリーズ内ではAD搭載モデルやロードスイッチ搭載モデル、レギュレータ搭載モデル等、他にも様々ありますが、多くのモデルは製品への組込を目的としており、書き込みが1回のみの焼き切りタイプ(OTP)です。ホビーユースや試作目的では何度も書き換え可能な下記のタイプ(MTP)に制限されます。
電源 | 電源2 | コンパレータ | CNT/DLY | LUTS | DFF | |
SLG46824 | 2.3-5.5 | 1.71-5.5 | 2 | 8 | 19 | 17 |
SLG46826 | 2.3-5.5 | 1.71-5.5 | 4 | 8 | 19 | 17 |
SLG47004 | 2.4-5.5 | ー | 3 | 7 | 20 | 18 |
SLG4682Xは2電源タイプのため、電圧レベル変換ICとしても利用できます。SLG46826のみ温度センサを搭載。SLG47004はオペアンプ、プログラマブルな基準電圧を搭載しています。
開発環境は無料で利用可能な専用のGo Configure Software Hubというソフトウェアを用いて設定します。ノーコードでGUI画面からモジュールを組み合わせて実装します。書き込みは専用のデバッガを介してI2C経由で書き込みを行うことが一般的ですが、昨今の半導体不足でデバッガが長期間在庫なし状況です。デバッガの代替としてArduinoを介して書き込みを行うことが可能です。
Go Configure Software Hubは設定の他、信号のシミュレーションもすることが可能なため、書き込み前に意図した信号処理ができているか確認することが可能です。
実際に使ってみると、コンパレータやLUT等の各モジュールで利用可能なポートの制約等ですべてのモジュールをフルに使うことはできないため、実装には工夫は必要であると分かりました。玉に瑕な点として、SLG4682Xは設定データ書き換え時のメモリ削除処理にエラッタがあり、I2Cに準拠しない挙動をします。その対処としてシステム内で書き換えを行う場合、書き換え時I2Cエラー処理が必須である点です。また、設定メモリの書き込みや削除は1ページ16byte単位となっており、1ページ毎に書き換える必要があります。8byteとか1byteとか細かく書き換えできればより便利だと思いました。
デバッガは入手しにくいものの、GreenPakIC自体は半導体不足の環境下でも在庫が豊富なため、今後はGreenPakを使ってちょっとしたデバイスを検討してみたいと思います。