2022年04月09日

MachXO3LF/L Starter Kit UART設定

MachXO3LF/L Starter KitはLattite社のFPGA、MachXO3シリーズの評価ボードです。FTDIのUSBシリアル変換ICが搭載されているため、Diamond Programmer等から書き込み治具なしでそのまま書き込んで動作確認できます。

特にMachXOシリーズは外部FlashなしでFPGA単体で動作可能なため、小規模な開発に便利です。MachXO3LFとMachXO3Lで2種類ありますが、何度も書き換えて使用する可能性がある場合はFlashベースのMachXO3LFとなります。MachXO3LF/L Starter KitはFTDIの2232Hを搭載しています。2232Hは1つのICにシリアル機能をデバイスAとデバイスBで2つ搭載しています。デバイスAはJTAG書き込み用(245FIFOモード)、デバイスBはUARTやI2C等のユーザ用途に設定可能になっています。一方でデフォルトではデバイスBが初期設定(245FIFOモード)となっており、UART等の用途で使用できません。今回はMachXO3LF/L Starter KitでFTDIのUARTを使用する設定について紹介します。


@ハードウェア設定
MachXO3LF/L Starter KitのデフォルトではFTDIのデバイスBとMachXO3が接続されていません。FTDIチップ横のR14(FTDI:TX-FPGA:RX)、R15(FTDI:RX-FPGA:TX)に抵抗(0~100Ω程度)を取り付ける必要があります。写真ではハンダでジャンパさせました。


uart1.jpg



AFTDI EEPROM設定
デバイスBが初期設定(245FIFOモード)となっており、UARTモードに切り替える必要があります。FTDIチップの横にEEPROMが接続されており、そこにFTDIチップの挙動を決定するパラメータが書き込まれています。パラメータを書き換えることでデバイスBをUARTとして動作させます。ここで注意点としてEEPROMのパラメータの書き換えに失敗した場合、Diamond Programmer等からJTAG治具として検出できなくなる可能性があるため、注意してください。

こちらのリンクからEEPROMのパラメータ書き換えのソフトウェアFT_Progをダウンロードします。ソフトウェアを起動し、F5キーを押して、ワーニングメッセージが表示されてOKを押すと、現在の情報が表示されます。

uart5.jpg

uart2.jpg

他にもFTDIデバイスが接続されている場合、誤って他のデバイスに書き込んでしまう可能性があるため、MachXO3LF/L Starter Kit以外のデバイスを外して、ツリー表示のデバイスが1つであることを確認してください。

Hardware Specificをクリックし、PortBのHardware設定をRS232 UARTに設定します。PortAはJTAG用の設定となっているため、間違えてPortAの設定を変更しないように注意します。

uart3.jpg

同様にDriverの項目をVirtual COM Portを選択します。

uart4.jpg

上記の設定で書き込みボタンを押します。USBを抜き差しするとCOMポートとして認識できるようになります。

なお、デバイスマネージャーから「表示をコンテナ別」に設定して、そこからVCP(Virtual COM Port)に設定変更できるチェックボックスがありましたが、こちらの設定だけではCOMポートが追加されるものの、UARTとして動作しませんでした。やはり、FT_Progを用いてパラメータの書き換えが必要なようです。

ftdi1.jpg

ftdi2.jpg


上記の手順後、C11にTX、A11にRXとしてユーザプログラムを書き込むことでMachXO3LF/L Starter Kit単体でPCとUART通信できるようになりました。R14、R15がデフォルトで未実装に気づかず、デバッグに時間を要してしまいました。Starter KitのPDF等にもUART通信を使用する手順について説明の記載がなく、ちょっと不親切だと思いましたが、なんとかPCとUART通信できるようになりました。

posted by Crescent at 00:00| Comment(0) | 電子部品 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。