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を操作出来るようになった。


新しくコメントをつける

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

Front page   Freeze Diff Backup Copy Rename Reload   New Page Page list Search Recent changes   Help   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom)
Counter: 357, today: 1, yesterday: 2
Last-modified: 2021-05-25 (Tue) 08:13:12 (JST) (398d) by yuji