以前にWeb HID APIを用いたMCP2210とWeb HID APIでブラウザを介して通信するツール、Web USB SPI Toolを紹介しました。今回はWeb HID APIとMCP2210を応用して、ブラウザを介して簡単にSPI Flashの読み書きをするツール、Web USB SPI Flash Toolを実装してみました。
SPI FlashのデバイスIDの確認やメモリの読み出し(binファイルへの書き出し)、SPI Flash全体の消去、メモリの書き込み(binファイルの読み込み)に対応しています。ページサイズやアドレス長を選択できるため、様々なSPI Flashにも対応しています。SPI Flashの他、インストラクションに互換性のあるSPI接続のFRAMやEEPROMにも対応しています。
ただし、残念ながら、読み書きの速度が非常に遅いです。Web HID APIに限らず、MCP2210はUSBのHIDインタフェースを使用しているため、規格の制約上、1msec毎に64byteの送受信が行われます。USB2.0等であってもHIDインタフェースのため、読み書きの速度が大幅に制限されます(HIDインタフェースは人の入力等を想定した規格で高速な転送は想定されていない)。数十Mbit以上になると読み書きに30分~1時間以上要するため、日常ユースとしては向いていません。また、環境によっては読み書きが不安定な場合もありました。数百kbit程度のちょっとしたメモリの確認程度が良いかと思いました。なお、今回紹介したWeb USB SPI Flash Toolによるデータ読込/書込ミス、データ喪失等、一切の責任を負いかねます。また、ブラウザはEdgeもしくはChromeのみ対応となっており、24年1月時点ではFirefoxやSafariは対応していません。
Web HID APIを用いることで専用のソフトウェアなしでブラウザ単体で様々なツールを実装できるのは非常に魅力的だと思いました。今後もWeb HID APIを用いた応用的な機能を開発して順次公開したいと思います。