現: 2021-05-25 (火) 08:13:12 yuji Deleted an attach file: ft2232hlboard.cfg at 2021-05-25 (火) 10:34:23, Deleted an attach file: lpc2388_flash.cfg at 2021-05-25 (火) 14:46:37, Deleted an attach file: lpc2388_rclk_flash.cfg at 2021-05-25 (火) 14:57:56 |
|||
---|---|---|---|
Line 1: | Line 1: | ||
+ | * FT2232HLボード [#i7a1104e] | ||
+ | [[中国製のFT2232HLを使ったボード>https://www.amazon.co.jp/gp/product/B092VQPK5M/ref=ppx_yo_dt_b_asin_title_o04_s00?ie=UTF8&psc=1]]を購入した。 | ||
+ | このボードはFTDI社の[[FT2232HL>https://ftdichip.com/products/ft2232hl/]]を使用していて,USB-UARTコンバーターやJTAGアダプターなどに利用できる。 | ||
+ | |||
+ | 今回はJTAGアダプターとして使用してみる。~ | ||
+ | |||
+ | ** FT2232HL Boardついて [#r67a4873] | ||
+ | [[ここのサイト>https://github.com/arm8686/FT2232HL-Board]]に,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で動作している。 | ||
+ | |||
+ | - [[FT2232HL Board V3の回路図とデータシート>./FT2232HLboard回路図]] | ||
+ | |||
+ | * JTAGアダプターとしての使い方 [#ne5c39a9] | ||
+ | FT2232HL Board V3を,以下のようにしてJTAGアダプターとして使用できた。 | ||
+ | |||
+ | ** FTDIのデバイスドライバーのインストール [#i3ce3fa7] | ||
+ | Windows 10の場合は,デフォルト状態でFTDIのデバイスドライバーはインストールされている。~ | ||
+ | もしインストールされていない場合や最新バージョンにしたい場合は,[[FTDIのサイト>http://www.ftdichip.com/Drivers/VCP.htm]]から最新のデバイスドライバーのインストーラーをダウンロードしてインストールする。 | ||
+ | |||
+ | デバイスドライバーは,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用。~ | ||
+ | |||
+ | ** FT_PROGユーティリティのインストールとEEPROMの設定 [#h8e6c28d] | ||
+ | [[FTDIのサイト>https://ftdichip.com/utilities/]]から,FT_PROGをダウンロードする。~ | ||
+ | 解凍して中にあるexeファイルを実行いてインストールする。 | ||
+ | |||
+ | FT_PROGは,FT2232HLを使ったボードに搭載されているEEPROMを,読み書きするためのツール。EEPROMのデータでデバイスのIDやドライバーの動作を設定できるようになっている。 | ||
+ | |||
+ | このツールを使って,FT2232HLのChannel2側の設定を変更する。これは,BDBUSをJTAGポートとして使用するため。(もし,ADBUS側を使用する場合は,ABUSドライバーの設定を変更することになる。)~ | ||
+ | - D2XX Directにマークする~ | ||
+ | |||
+ | その後,一旦FT2232HL BoardとPCとの接続を外して,再度接続する。 | ||
+ | |||
+ | ** USB Serial Converter Bのデバイスドライバーを変更する [#mf858907] | ||
+ | OpenOCDは,USBのデバイスドライバーには汎用USBドライバー・ライブラリ(libusb)を使用している。~ | ||
+ | このため,USB Serial Converter Bのデバイスドライバーを,WinUSB(Microsoft製のlibusb互換デバイスドライバー・ライブラリ)に変更する。~ | ||
+ | |||
+ | これには,''[[zadig>https://zadig.akeo.ie/]]''を使用してWinUSBに変更する。~ | ||
+ | 「Dual RS232 (Interface 1)」のドライバをWinUSBに置き換える。~ | ||
+ | うまくいくと,仮想COMポートが一つ減ってユニバーサルシリアルバスデバイスに「USB <-> Serial Converter」が表示される。 | ||
+ | |||
+ | * OpenOCDを使えるようにする [#s4eb21cb] | ||
+ | [[OpenOCD>http://openocd.org/]]は,高価な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になっている。 | ||
+ | |||
+ | ** interface設定ファイルの用意 [#aecc7bed] | ||
+ | FT2232HL BoardをJTAGアダプターとして使えるように,ft2232hlboard.cfgというファイルを以下の内容で作成して,''interface/ftdi''ディレクトリにコピーする。~ | ||
+ | #code(TEXT,nonumber,ft2232hlboard.cfg) | ||
+ | |||
+ | ** ターゲットボード用の設定ファイルの用意 [#e8ac17fe] | ||
+ | ターゲットボード用のcfgファイルを用意する。~ | ||
+ | ターゲットボードは,[[2009年5月号のInterface>https://interface.cqpub.co.jp/magazine/200905-2/]]に付録になっていたLPC2388ボードを使ってみる。~ | ||
+ | ''target''ディレクトリに以下のファイルをコピーする。~ | ||
+ | |||
+ | LPC2388ボード用:&ref(lpc2388_flash.cfg);~ | ||
+ | |||
+ | ** OpenOCDを使ってみる [#s6d5d7e0] | ||
+ | > 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を操作出来るようになった。 |