2009年02月23日

FT245R/FT232R で avrdude (Linux)

FTDI の D2XX ドライバが Mac やら Linux(i386/x86_64) に対応していることを今更ながら知ったので、ビルドだけしてみた。

用意するもの

ビルド

    1. serjtag-0.3/avrdude-serjtag/README.txt にしたがってパッチを当てる。
    2. avrdude-5.3.1 ディレクトリに libftd2xx0.4.16/ftd2xx.h と WinType.h あと static_lib/libftd2xx.a.0.4.16 をコピー。
    3. configure 実行
    4. Makefile に以下の 変更を行う。

    CFLAGS = -g -O2 -DSUPPORT_FT245R
    ================ 追加
    LIBS = -lreadline -lncurses -ltermcap libftd2xx.a.0.4.16 -lrt
    ===================== 追加
    5. make

こういう手順で ビルドが出来るみたい。

コンフィグファイル

    1. libftd2xx0.4.16/ftd2xx.cfg を /usr/local/lib か /usr/lib にコピー
    2. avrdude.conf を /etc にコピーするか、$HOME/.avrduderc に 置く。


今テストできる環境を持っていないので、動くかどうか分かりませんが、こんな感じです。Mac は知りませんが、同じようにすれば出来そうな気がします。

なお、avrdude は GPL なので、バイナリの配布には注意が必要です。
ちなみに、バイナリを配布する際は、上のように スタティックライブラリをリンクするのではなくダイナミックライブラリにした方良さそう。(D2XX の バージョンが上がったときに入れ替えられるから)

追記:
FT245RL_Linuxのページを参考にすると ダイナミックライブラリを使う場合

1. libftd2xx.so.0.4.16 を /usr/lib か /usr/local/lib ( 以下 LIBDIR)にコピー
2. cd LIBDIR
3. ln -s libftd2xx.so.0.4.16 libftd2xx.so ( リンクに必要)
4. ln -s libftd2xx.so.0.4.16 libftd2xx.so.0 ( 実行に必要 )

とすれば良いらしい。

注意点としては、 /proc/bus/usb が見えているか確認すること。

FT245RL_MacOSXでは Mac で使うときの例も書いてあるので、Mac 使う人は参考になるはず。

ちなみに、私の USB での 基本の環境は、玄箱/HG (PPC) なので、ftd2xx 版は使えない。libftdiを使おうと思っているんだが、 そうなると avrdude も 最新版に対応したいし ... みたいな感じで面倒になっていて 結局放置中。

5/11 追記 Coffeebot Labs(英文)で Linux 版の動かし方が紹介されています。参考まで。

2011/03/10 追記:

FT245R/FT232R で avrdude (2)』 に最新版があり、avrdude-5.10 に対応しています。eeprom の書き込みの問題があり修正していますので、そちらも参照してください。
posted by すz at 20:31| Comment(7) | TrackBack(0) | SERJTAG
この記事へのコメント
macでやってみました。

http://www15.atwiki.jp/arduino/pages/23.html

困ったことに、USBシリアルのドライバと排他的な様な気がしています。
Posted by elec_avr at 2009年03月07日 02:31
お、できましたか。おめでとうございます。

USBシリアルのドライバと排他的というのは、割とありがちで、エレキジャックの記事
http://www.eleki-jack.com/Kurobox-pro2/2008/02/usb-led.html

なんかでも、rmmod ftdi_sio usbserial をやって シリアルドライバを外して使うようになっています。

Mac でも ドライバの組み込み・切り離しの コマンドがあると思うので探してみたらどうでしょう?
Posted by すz at 2009年03月07日 03:00
探してみたらありました。
まだ試していませんが、
kextunload /System/Library/Extensions/FTDIUSBSerialDriver.kext
kextload /System/Library/Extensions/FTDIUSBSerialDriver.kext
です。
http://www15.atwiki.jp/arduino/pages/23.html

ヒントありがとうございました。
Posted by elec_avr at 2009年03月09日 11:23
はじめまして。
出版社で編集をしています。

すzさんのavrdudeを利用してAVRにブートローダを書き込むという内容を含んだ書籍が出ます。2007年06月21日http://suz-avr.sblo.jp/article/4438871.htmlの部分が中心です。
感謝の気持ちを込めて、書籍を献本させていただきたいと思っております。
Posted by kon at 2009年04月22日 15:45
連絡ありがとうございます。喜んでお受けします。
suz @ ダウンロードサイト(www ヌキ) にメールください。
Posted by すz at 2009年04月23日 13:02
秋月の AE-FT2232 で動作確認しました。
http://doswa.com/blog/2010/08/24/avrdude-5-10-with-ftdi-bitbang/
Posted by 5.10 対応パッチ at 2011年03月10日 12:01
独自に 5.10 に対応した人がいたのですね。情報ありがとうございます。

AE-FT2232 でも動いたとのことですが、コマンドラインのオプションとか教えて頂けませんでしょうか? てっきり動かないものだとばかり思っていました。それとも、doswa.com も David さんが何か対応したのでしょうか?

一方私の方も 5.10 に対応しています。

http://suz-avr.sblo.jp/article/33907127.html 

の記事で avrdude-serjtag04g.zip を紹介しています。できましたらこれでどうなるか確認して頂けるとありがたいです。04g では、eeprom に書けない問題が直っています。

ちなみに、最新版は

http://nmj.sumomo.ne.jp/suz-avr/serjtag/avrdude-serjtag04k.zip

です。FTDI はほとんど関係ありませんが、一応。

Posted by すz at 2011年03月10日 20:04
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/30760466
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック