Gnuk を作ってみたいけど開発環境が大変(高価)という貴兄に、以前 FTDI2232D Module can be JTAG dongle (英語)を書きましたが、あんまり作る人がいないみたいなので改めて日本語で書きます。ケーブルを含めて 2150円でできます。ハンダ付けも必要なく、ブレッドボードでつなぐだけで作れます。
以前であれば、このような dongle はプリンタのパラレルポートに接続する形式が一般的でした。プログラミングの面からも I/O ポートを直接叩く形でラクチンですので。しかし、昨今ではパラレルポートのない note PC なども多く、USB での接続が望まれます(パラレルポート接続の dongle であればもっと安価にできますが、今回の対象ではありません)。
注意点: この簡易 JTAG Debuuger は市販されている本物の JTAG Debugger と異なり、バッファーを入れておらず必要最小限の接続のため、あくまでも簡易バージョンであることをご理解ください。接続を間違って壊してしまうなどのトラブルを避けるためには、とても高価なボードにつないで利用する向きにはお勧めできません。
STM8S Discovery Kit の STM32 部分を使うのなら高価な JTAG Debugger は必要なく、この簡易 JTAG Debuuger で十分でしょう。
部品
部品はすべて秋月電子で入手できます。下記の表の部品を揃えます。抵抗は 4本しか使わないので友達と分けましょう。ジャンパーワイヤは 5本だけ使うので友達と分けましょう。ワイヤーの色はなんでもかまいません。
部品 | 値段 |
---|---|
炭素皮膜抵抗 1/6W 100Ω (100本入) | 100円 |
ブレッドボード EIC-301 | 150円 |
ブレッドボード・ジャンパーワイヤ(オス-メス) 15cm(青) | 300円 |
USBケーブル (A-miniB) 1.5m | 150円 |
FT2232D USB-シリアル 2ch変換モジュール | 1450円 |
合計 | 2150円 |
作り方
その一: FT2232D USB-シリアル 2ch変換モジュールの設定
ジャンパーの JP2A を外します。チャネル A の電圧レベルが 3.3V になるようにするためです。
その二: 部品の接続
FT2232D USB-シリアル 2ch変換モジュール をブレッドボードに刺します。
抵抗、ジャンパーワイヤーをつなぎます。信号の接続は下記のようになります。:
40 AD0 ----[100 Ω]-----> TCLK 39 AD1 ----[100 Ω]-----> TDI 38 AD2 ----[100 Ω]-----> TDO 37 AD3 ----[100 Ω]-----> TMS 25 GND ----------------> GND
これだけ。
使い方
STM8S Discovery Kit の STM32 部分との接続
STM8S Discovery Kit の STM32 部分の CN5 のピン配置は下記のようです。:
1 Vdd (3.3V) 2 --- (no pin) 3 TDO 4 TCLK 5 TMS 6 TDI 7 GND 8 nRST
Vdd , nRST 以外の 5 本の線をつなぎます。
ソフトウェアの設定
FTDI 2232 は usbserial のモジュールがロードされてしまい OpenOCD が使えなくなります。 と、思ったいたら、今試したら、 usbserial のモジュールがロードされていても使えますな。
ま、困った場合には下記のエントリを /etc/modprobe.d/blacklist.conf に足してみてください。:
# Don't load the driver for usbserial interface blacklist ftdi_sio
OpenOCD で使う
下記のコマンドラインのように interface/openocd-usb.cfg を指定します。:
$ openocd -f interface/openocd-usb.cfg -f target/stm32.cfg
感想
あぁ、これが 2007年にあればなぁ。 In chase of a bug in Marvell's Orion 88F5182 は半年もかからなかったかもしれない。いや、無いからこそ追うことができたのかも。