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

  • 開発/JTAG/FT2232HLボード のバックアップ差分(No. All)
    • 現: 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

トップ   差分 バックアップ 複製 名前変更 リロード   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom
Counter: 1266, today: 2, yesterday: 1