Lattice社のFPGAの開発環境はインストールパッケージが1GB前後と軽いのが特徴です。それもあってLattice社を好んで使っています。また書き込みツールがFTDIの2232Dなどでそのまま純正書き込みソフトで書き込むことが可能なため、高価な書き込みツールが不要なのも特徴です。
※Machxoシリーズに対応した開発環境Diamond、iCE40に対応したiCECubeともにそれぞれ1GB前後です
今回はLattice社のFPGA、Machxo2(LCMXO2-256HC-4TG100C)の書き込みについて少し紹介します。
秋月のサイトにもMachxo2の書き込み方法(PDF)について紹介されていますが、安定した書き込みができず少し苦労しました。
Machxo2のJTAGポートは弱いプルアップやプルダウンがありますが、安定化のための十分でないため、外部に別途プルアップやプルダウンが必要です。
TDO、TDI、TMSはプルアップ、TCKはプルダウンですが、抵抗値もポイントです。すべて4.7kohmでは安定した書き込みができませんでした。
評価用ボードの回路を確認すると理由が分かりました。TDO、TDI、TMSはプルアップが4.7kohmというのは同じでしたが、TCKのプルダウン抵抗が違いました。純正の評価ボードのTCKは2.2kohmでプルダウンしていました。
純正の評価ボードに合わせてTCKを2.2kohmでプルダウンすると安定して書き込みできることが分かりました。
ただ、正直、Machxo2(LCMXO2-256HC-4TG100C)を書き込む際には2232DよりもTinyFPGAプログラマが簡単です。
TinyFPGAプログラマ専用のソフトウェアでの書き込みになりますが、書き込み速度も高速で便利です。
TinyFPGA AX2 Boardでなくても書き込みできました。
なお、Machxo3は識別コードが異なるため、TinyFPGAプログラマ専用のソフトウェアそのままでは書き込みできませんでした。