なんでも作っちゃう、かも。

Arduino/Make/フィジカルコンピューティング/電子工作あたりで活動しています。スタバの空きカップを使ったスタバカップアンプなど製作。最近はもっぱらArduinoと3Dプリンタの自作に興味があります。

picburn-0.1.32 リリースしました。

Posted by arms22 on 2008年06月15日 0  0

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
これで一通りフラッシュデバイスに対応したかな?デバイスの数が多くなってきたので、デバイスの自動検出機能を追加しました。自動検出に対応しているのはデバイスIDをもつPICのみです。ベースラインのPICはデバイスIDを持たない為、自動検出できません。必ず-cオプションでデバイスを指定してください。

現在の課題
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日 0  0

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

./configure
make
make install
Cygwin
./configure --with-ftd2xx=/path/to/d2xx
make
make install
MinGW+MSYS
./configure --with-ftd2xx=/path/to/d2xx
make
make install
Cygwin,MinGW+MSYS環境では--with-ftd2xxオプションでヘッダファイル(ftd2xx.h)とライブラリ(ftd2xx.lib)があるディレクトリを指定してください。

MacOSXでFTDIのBit-Bangモードを試す(2)

Posted by arms22 on 2008年05月19日 0  0

今回は FT232R, FT245R, FT2232C デバイスのみ使える Synchronous Bit Bang Mode を試す。

Synchronous Bit Bang Modeは書き込みの前に読み込みが行われるMode。1byte書き込むと、1byte読み込まれる。16byte読み込みたければ、16byteの書き込みを行う。
ポートの初期値が0xffの時、0x55, 0xaaの2byteをWriteすると、ポートの出力は次のように変化する。

0xff 0x55 0xaa
2byteのWriteに続けて2byteのReadを行うと次の値が読み込まれる。
0xff,0x55
0x55のWriteに対して0xffが読み込まれ、0xaaのWriteに対して0x55が読み込まれる。

次の図はSynchronous Bit Bang ModeのR/Wのタイミングと波形。
sync_bit_bang_3.png


ループバックテスト
次のように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日 2  0

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.kext
OSXを再起動すれば、またVCPドライバはロードされます。VCPドライバを再ロードしたい場合は次のようにします(※要管理者権限)。
kextload /System/Library/Extensions/FTDIUSBSerialDriver.kext
VCPドライバをアンインストールしたい場合は、次のファイルを別の場所に移動させます(※要管理者権限)。
/System/Library/Extensions/FTDIUSBSerialDriver.kext


LEDチカチカ
ブレッドボードに簡単なLED制御用の回路を作成。
bit_bang_led_test.jpg

D2XXドライバに付属していたサンプルを元に標準入力から入力された数値を、D0~D7端子に出力するプログラムを作成した。D0にLEDが接続されているので、'1'と入力するとLEDが点灯、'0'と入力するとLEDが消灯する。ソースコードは続きを読むで。

Bit-Bangモードの使い方
FTDI社USB-8ビットパラレル変換器FT245RLをMacOSXで使う
USB パラレル FTDI FT245RL を使ってみる
FT232RL USBシリアル変換モジュール

該当の記事は見つかりませんでした。