picburn-0.1.32 リリースしました。
Posted by arms22 on 2008年06月15日

picburn-0.1.32 リリースしました。
主な変更点は次の通りです。
- デバイス自動検出機能追加
- PIC16F631のプログラムサイズとデータサイズ修正(TADさん、thx!)
- PIC16HV785のデバイスID修正(TADさん、thx!)
- PIC16F916/PIC16F917のラッチサイズ変更(4から8)
- デバイス定義追加
12F519
16F505 16F506 16F54 16F59 16F526
16F737 16F747 16F767 16F777
16F722 16F723 16F724 16F726 16F727 16LF722 16LF723 16LF724 16LF726 16LF727
16F946
現在の課題
PIC16F716の書き込みに失敗します。原因は調査中。。ソフトは問題なさそう。。20word毎に実際に書き込んだ値と違う値になっている。殆どの場合0x0000。
対応デバイス一覧
http://arms22.blog91.fc2.com/blog-entry-157.html
Windows用バイナリ
http://xfind.hp.infoseek.co.jp/electric/picburn/picburn-0.1.32-i386-mingw.zip
ソースコード
http://xfind.hp.infoseek.co.jp/electric/picburn/picburn-0.1.32.tar.gz
picburn - autoconf/automakeに対応しました。
Posted by arms22 on 2008年06月07日

picburn-0.1.28リリースしました。このバージョンからautoconf/automakeに対応しました。MacOSX,Cygwin,MinGW+MSYS環境でコンパイル、動作確認しました。また今回からソースコードとは別にWindows用バイナリの配布もはじめました。
Windows用バイナリ
http://xfind.hp.infoseek.co.jp/electric/picburn/picburn-0.1.28-i386-mingw.zip
ソースコード
http://xfind.hp.infoseek.co.jp/electric/picburn/picburn-0.1.28.tar.gz
picburnはFTDIのFT232R,FT245R,FT2232に対応したUSB接続型のPICライタ(PICプログラマ,PIC Writer,PIC Programmer)です。秋月のFT232Rモジュールがあれば数個のトランジスタと抵抗で作ることができます(別途12Vの電源は必要ですが、、)。
Windows用バイナリをダウンロードした方はzipを解凍して適当なディレクトリにコピーして使用してください。picburn.devはpicburn.exeと同じディレクトリに配置してください。
MacOSX/Linux用バイナリは次のビルド手順にしたがってソースコードからコンパイルしてください。
※picburnのビルドにはD2XXドライバ付属のヘッダファイルとライブラリが必要です。D2XXドライバのインストールと同時にヘッダファイルとライブラリをソースと同じディレクトリもしくはパスの通った場所にコピーしてください。
Windows : ftd2xx.h ftd2xx.lib
MacOSX/Linux : ftd2xx.h WinTypes.h
D2XX Direct Drivers
http://www.ftdichip.com/Drivers/D2XX.htm
Installation Guides
http://www.ftdichip.com/Documents/InstallGuides.htm
MacOSX/Linux
./configureCygwin
make
make install
./configure --with-ftd2xx=/path/to/d2xxMinGW+MSYS
make
make install
./configure --with-ftd2xx=/path/to/d2xxCygwin,MinGW+MSYS環境では--with-ftd2xxオプションでヘッダファイル(ftd2xx.h)とライブラリ(ftd2xx.lib)があるディレクトリを指定してください。
make
make install
MacOSXでFTDIのBit-Bangモードを試す(2)
Posted by arms22 on 2008年05月19日

今回は FT232R, FT245R, FT2232C デバイスのみ使える Synchronous Bit Bang Mode を試す。
Synchronous Bit Bang Modeは書き込みの前に読み込みが行われるMode。1byte書き込むと、1byte読み込まれる。16byte読み込みたければ、16byteの書き込みを行う。
ポートの初期値が0xffの時、0x55, 0xaaの2byteをWriteすると、ポートの出力は次のように変化する。
0xff 0x55 0xaa2byteのWriteに続けて2byteのReadを行うと次の値が読み込まれる。
0xff,0x550x55のWriteに対して0xffが読み込まれ、0xaaのWriteに対して0x55が読み込まれる。
次の図はSynchronous Bit Bang ModeのR/Wのタイミングと波形。

ループバックテスト
次のようにD0-D3端子をD4-D7端子に接続し、簡単なループバックテストを行った。
D0端子-->D4端子
D1端子-->D5端子
D2端子-->D6端子
D3端子-->D7端子
D0からD3端子を出力に設定。D4からD7端子を入力に設定。0x0から0xfの16byteの値をWrite。16byteのReadを行った結果は次のとおり。
rx[0] ff
rx[1] 00
rx[2] 11
rx[3] 22
rx[4] 33
rx[5] 44
rx[6] 55
rx[7] 66
rx[8] 77
rx[9] 88
rx[a] 99
rx[b] aa
rx[c] bb
rx[d] cc
rx[e] dd
rx[f] ee
気をつけないといけない点は、
- Writeの前にReadされる
- 1byte目のReadの結果は最後にWriteした時の値
- 16byte目のWriteに対する値が欲しい場合、17byte Writeして16byte目のReadの結果を使う
サンプルコードは続きを読むで。
FT232RBitBangModes.pdf
http://www.ftdichip.com/Documents/AppNotes/AN232R-01_FT232RBitBangModes.pdf
FTDI Application Notes
http://www.ftdichip.com/Documents/AppNotes.htm
MacOSXでFTDIのBit-Bangモードを試す
Posted by arms22 on 2008年05月18日

FTDIのUSBシリアル変換IC FT232RL にはデータ端子を8bitの双方向IOポートとして使う Bit-Bang モードがあります。このモードを使えば FT232RL に接続したハードウェアをPCアプリから直接制御することができます。
秋月電子から FT232RL を搭載したUSBシリアル変換モジュールが販売されています。Writer509用にこのモジュールを購入したのですが、汎用IOポートとして使えると分かってかなり得した気分です。早速このモジュールを使って Bit-Bang モードを試したいと思います。
D2XXドライバのインストール
FTDIから Bit-Bang モードを利用する為の D2XX ドライバが提供されています。D2XX ドライバは Windows, Linux, MacOSX と各種プラットフォーム用のドライバが提供されています。
ここからMacOSX用のD2XXドライバをダウンロードしてきて、次のようにターミナルから手動でインストールします(※管理者権限が必要です)。
cp libftd2xx.0.1.0.dylib /usr/local/lib
cd /usr/local/lib
ln -sf libftd2xx.0.1.0.dylib libftd2xx.dylib
VCPドライバのアンロード
D2XXドライバとVCP(仮想COMポート)ドライバは同時に使用できないため、VCPドライバがインストールされている場合は、VCPドライバをアンロードします(※要管理者権限)。
kextunload /System/Library/Extensions/FTDIUSBSerialDriver.kextOSXを再起動すれば、またVCPドライバはロードされます。VCPドライバを再ロードしたい場合は次のようにします(※要管理者権限)。
kextload /System/Library/Extensions/FTDIUSBSerialDriver.kextVCPドライバをアンインストールしたい場合は、次のファイルを別の場所に移動させます(※要管理者権限)。
/System/Library/Extensions/FTDIUSBSerialDriver.kext
LEDチカチカ
ブレッドボードに簡単なLED制御用の回路を作成。

D2XXドライバに付属していたサンプルを元に標準入力から入力された数値を、D0~D7端子に出力するプログラムを作成した。D0にLEDが接続されているので、'1'と入力するとLEDが点灯、'0'と入力するとLEDが消灯する。ソースコードは続きを読むで。
Bit-Bangモードの使い方
FTDI社USB-8ビットパラレル変換器FT245RLをMacOSXで使う
USB パラレル FTDI FT245RL を使ってみる
FT232RL USBシリアル変換モジュール