FT2232HLボード anchor.png

中国製のFT2232HLを使ったボードを購入した。

このボードはFTDI社のFT2232HLを使用していて,USB-UARTコンバーターやJTAGアダプターなどに利用できる。

今回はJTAGアダプターとして使用してみる。

Page Top

FT2232HL Boardついて anchor.png

ここのサイトに,FT2232HLを使ったボードの情報がある。

FTDI社のFT2232HLは2個のUSB-UARTコンバーターを搭載している。
UARTコンバーター機能(最大12Mbps)の他にも,JTAG,I2C,SPI,BitBangなどのインターフェースに変換できる機能が入っている。

購入したFT2232HL Board V3では,JTAGコネクターと接続するのにBDBUSを使用している。ADBUSは通常のUSB-UARTコンバーターとして使用できる。
FT2232HLを使用したJTAGアダプターは多く市販されているが,BDBUSをJTAG信号に使っている製品は少ないようだ。

ボードのCN4が,20pin ARM-JTAGコネクター仕様になっている。FT2232HLとコネクター間はなんのbufferも入っていない。
USBコネクタからの5VDCから3.3VDCをオンボードレギュレータで作成して,FT2232HLに供給している。
JTAGインターフェースとして使用する場合,入力は5Vトレラントなので5V系ターゲットを接続しても壊れることはないが,出力は3.3V系になるので5V系のターゲットボードではうまく動作しない場合があると思う。
FT2232HL内部Coreは,内臓のレギュレータにより1.8Vで動作している。

Page Top

JTAGアダプターとしての使い方 anchor.png

FT2232HL Board V3を,以下のようにしてJTAGアダプターとして使用できた。

Page Top

FTDIのデバイスドライバーのインストール anchor.png

Windows 10の場合は,デフォルト状態でFTDIのデバイスドライバーはインストールされている。
もしインストールされていない場合や最新バージョンにしたい場合は,FTDIのサイトから最新のデバイスドライバーのインストーラーをダウンロードしてインストールする。

デバイスドライバーは,VCP(仮想COM)ドライバーとD2XXドライバーの両方が入っている。
FT2232HL BoardをPCに接続しWindowsのデバイスマネージャーを開くと,ポート(COMとLPT)に2つの仮想COMポートが表示される。

  • USB Serial Port (COM12)
  • USB Serial Port (COM13)

また,ユニバーサルシリアルバスコントローラーに,以下のような2つの項目が表示される。

  • USB Serial Converter A
    ABUS用。
  • USB Serial Converter B
    BBUS用。
Page Top

FT_PROGユーティリティのインストールとEEPROMの設定 anchor.png

FTDIのサイトから,FT_PROGをダウンロードする。
解凍して中にあるexeファイルを実行いてインストールする。

FT_PROGは,FT2232HLを使ったボードに搭載されているEEPROMを,読み書きするためのツール。EEPROMのデータでデバイスのIDやドライバーの動作を設定できるようになっている。

このツールを使って,FT2232HLのChannel2側の設定を変更する。これは,BDBUSをJTAGポートとして使用するため。(もし,ADBUS側を使用する場合は,ABUSドライバーの設定を変更することになる。)

  • D2XX Directにマークする

その後,一旦FT2232HL BoardとPCとの接続を外して,再度接続する。

Page Top

USB Serial Converter Bのデバイスドライバーを変更する anchor.png

OpenOCDは,USBのデバイスドライバーには汎用USBドライバー・ライブラリ(libusb)を使用している。
このため,USB Serial Converter Bのデバイスドライバーを,WinUSB(Microsoft製のlibusb互換デバイスドライバー・ライブラリ)に変更する。

これには,zadigを使用してWinUSBに変更する。
「Dual RS232 (Interface 1)」のドライバをWinUSBに置き換える。
うまくいくと,仮想COMポートが一つ減ってユニバーサルシリアルバスデバイスに「USB <-> Serial Converter」が表示される。

Page Top

OpenOCDを使えるようにする anchor.png

OpenOCDは,高価なJTAGデバッガーと同様な機能を持ったオープンソースで開発されているオンチップ・デバッガー。

このOpenOCDを使用してみる。

通常OpenOCDはソースコードからビルドするのだが,ここでは,MSYS2/MinGW64環境でパッケージマネージャーpacmanを使ってインストールしている。

> pacman -S mingw-w64-x86_64-openocd

または,

> pacman -S mingw-w64-i686-openocd

環境変数を設定する。

OPENOCD_SCRIPTS = D:/msys64/mingw64/share/openocd/scripts

OpenOCDのバージョンは,

$ openocd --version
Open On-Chip Debugger 0.11.0
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html

で,0.11.0になっている。

Page Top

interface設定ファイルの用意 anchor.png

FT2232HL BoardをJTAGアダプターとして使えるように,ft2232hlboard.cfgというファイルを以下の内容で作成して,interface/ftdiディレクトリにコピーする。

fileft2232hlboard.cfg
#
# OpenOCD config file for FT2232HL Board V3
# by Yuji Ueno
# use BDBUS of FT2232HL for JTAG
#
#        FT2232HL                  CN4(JTAG)
#                               1  VTref      NC   2
#        BDBUS4   ---------     3  -TRST      GND  4
#        BDBUS1   ---------     5  TDI        GND  6
#        BDBUS3   ---------     7  TMS/SWDIO  GND  8
#        BDBUS0   ---------     9  TCK/SWCLK  GND  10
#        BDBUS7   ---------    11  RTCK       GND  12
#        BDBUS2   ---------    13  TDO/SWO    GND  14
#        BDBUS6   ---------    15  -RESET     GND  16
#        BDBUS5   ---------    17  DBDRQ      GND  18
#                              19  +5V        GND  20
#
# init:
#     bit  7654321076543210
#  0x00f8  0000000011111000      data
#  0x00fb  0000000011111011      ddr
#
#  0x0040  0000000001000000      nSRST
#  0x0010  0000000000010000      nTRST
#
adapter driver ftdi
ftdi_vid_pid 0x0403 0x6010
 
# ftdi_channel 0=ADBUS, ftdi_channel 1=BDBUS
ftdi_channel 1
 
transport select jtag
adapter speed 1000
 
ftdi_layout_init 0x00F8 0x00fb
ftdi_layout_signal nTRST -data 0x0010 -oe 0x0010
ftdi_layout_signal nSRST -data 0x0040 -oe 0x0040
Page Top

ターゲットボード用の設定ファイルの用意 anchor.png

ターゲットボード用のcfgファイルを用意する。
ターゲットボードは,2009年5月号のInterfaceに付録になっていたLPC2388ボードを使ってみる。
targetディレクトリに以下のファイルをコピーする。

LPC2388ボード用:filelpc2388_flash.cfg

Page Top

OpenOCDを使ってみる anchor.png

> openocd -f interface/ftdi/ft2232hlboard.cfg -f target/lpc2388_flash.cfg
Open On-Chip Debugger 0.11.0
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
Info : clock speed 500 kHz
Info : JTAG tap: lpc2388.cpu tap/device found: 0x4f1f0f0f (mfg: 0x787 (<unknown>), part: 0xf1f0, ver: 0x4)
Info : Embedded ICE version 7
Error: EmbeddedICE v7 handling might be broken
Info : lpc2388.cpu: hardware has 2 breakpoint/watchpoint units
Info : starting gdb server for lpc2388.cpu on 3333
Info : Listening on port 3333 for gdb connections
Info : Listening on port 6666 for tcl connections
Info : Listening on port 4444 for telnet connections

のようにターゲットボードを認識しているか確認する。Ctrl-Cで,停止できる。

PuTTYなどを使って,telnet:4444ポートに接続する。

Open On-Chip Debugger
>

とプロンプトが表示され,OpenOCDを操作出来るようになった。


新しくコメントをつける

題名
ゲスト名
投稿本文
より詳細なコメント入力フォームへ

トップ   凍結 差分 バックアップ 複製 名前変更 リロード   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom
Counter: 1276, today: 1, yesterday: 0
最終更新: 2021-05-25 (火) 09:13:12 (JST) (1066d) by yuji