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

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

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)があるディレクトリを指定してください。

秋月のPIC16シリーズDIP品限定ピン数別評価

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

これは参考になる!

8 :774ワット発電中さん:2008/06/04(水) 00:12:47 ID:/CtoOQvf
秋月のPIC16シリーズDIP品限定ピン数別評価
40ピンは16F887 ¥250
28ピンは16F886 ¥230で決まり
ADC有,eCCP/CCP有,mSSP有,USART有,8Kw,内蔵31K-8MHとフルサポート

20ピンはF690のバリエーションモデルが多いけど価格差が小さいからF690でOKかな
◎16F690 ¥210 ADC有,eCCP有,eUSART有,SSP有,4Kw,内蔵31K-8MHzとバッチリ
○16F689 ¥180 F690からeCCP機能削られた
×16F687 ¥180 さらにF689を2Kwと半分に
△16F677 ¥170 さらにF687からeUSARTも削られた
○16F685 ¥190 F690からSSP/eUSART機能が削られた
◎16F785 ¥180 ADC有,CCP有,2Kw,内蔵31K-8MHz,OPアンプ搭載ってのはいいね

18ピンは種類は多いけど選択の幅は狭い。F88かいっそ20ピンにするとか
×16F84A ¥300 機能無,1Kw,いまさら不要
×16F648A ¥200 CCP有,USART有,4Kw,内蔵4MHz,今はF87があるから
×16F628A ¥200 F648Aの2Kw版,値段同じじゃ価値無し
△16F627A ¥160 F648Aの1Kw版,低コストで勝負かな・・・
◎16F88 ¥230 ADC有,CCP有,SSP有,USART有,4Kw,内蔵31K-8MHzとGood
○16F87 ¥200 F88にADC無いだけ
×16F819 ¥250 ADC有,CCP有,SSP有,2Kw,内蔵31K-8MHz,F88に及ばない
○16F818 ¥200 F819の1Kw版,F87と比べるとROMとUSARTで負け,ADCで勝ち
◎16F716 ¥110 ADC有,eCCP有,2Kw,内蔵CLK無,EEPROM無だけど値段安い

14ピンは1品種だけだね
◎16F688 ¥160 ADC有,eUSART有,4Kw,内蔵31K-8MHz

8ピンはF683だと思っていたがF615も¥100にしてはなかなか良い
◎12F683 ¥150 ADC有,CCP有,2Kw,内蔵31K-8MHz,8ピンとしては多機能
○12F675 ¥120 ADC有,1Kw,内蔵4MHz
△12F629 ¥100 675のADC無(機能無しってこと)
△12F635 ¥120/¥130 機能無し,1Kw,内蔵31K-8MHz,環境によってはE/P版
◎12F615 ¥100 ADC有,eCCP有,1kw,内蔵4Mor8MHz,EEPROM無し
×12F609 ¥100 F615からADC,eCCP機能省かれてる

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

Posted by arms22 on 2008年05月31日 9  0

picburn-0.1.27 リリースしました。
主な変更点は次の通りです。

  • 読み込み/書き込み時間表示追加
  • デバイス定義追加
    PIC10F220 PIC10F222
    PIC12F510
    *PIC12F615 PIC12HV615 PIC16F616 PIC16HV616 PIC12F609 PIC12HV609 PIC16F610 PIC16HV610
    PIC16F631 PIC16F636 PIC16F639 PIC16F677 PIC16F687
    PIC16F685 PIC16F689 PIC16F690
    PIC16F716 PIC16F785 PIC16HV785
    PIC16F882 PIC16F883 PIC16F884 PIC16F886 PIC16F887
*印の点いたPICは動作確認済み。それ以外は未確認。

秋月の商品リストにあるものを重点的に追加しました。足りないデバイスがあれば追加してください。picburn.cfgを見れば大体書き方がわかります。
動作未確認のデバイスの動作確認報告お待ちしております。デバイスを送っていただければこちらで確認します;)

ダウンロードはこちら。
http://xfind.hp.infoseek.co.jp/electric/picburn/picburn-0.1.27.tar.gz

PICのMCLR端子を出力ポートとして使う。

Posted by arms22 on 2008年05月30日 2  0

EDN JapanにPICマイコンのMCLR端子を出力として使用という記事が掲載されています。MCLR端子の弱プルアップ機能を使ってMCLR端子を出力ポートとして使うってことなんだけど記事では次のように書かれている。

図1の回路は、6本の端子のうち、1本をアナログ入力として用い、ほかの3本を出力に使用する例である。通常の使い方では出力が1本足りないので、MCLR(GP3/MCLR)端子を出力として使用するのだ。なお、この図は簡略化したものなので、MCLR以外のI/O端子への接続は示していない。
pic_mclr_outport.gif
図1 MCLR端子を出力として使用する例

この回路では、MCLR端子を出力として用いるために、マイコンが備えるコンフィギュレーション可能な弱プルアップ機能を使用する。GP3/MCLR端子がMCLR端子としてコンフィギュレーションされていれば、コンフィギュレーションワードにより弱プルアップを有効にすることができる。


コンフィギュレーションワードってプログラムで変更可能だったっけ?OPTIONレジスタのGPPUの間違いじゃないの?。今回の場合、コンフィギュレーションワードでMCLR端子はGP3にして、OPTIONレジスタのGPPUで弱プルアップを有効無効切り替えるのが正解だと思う。

picburnをCygwin環境でコンパイルする。

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

picburnをCygwin環境でコンパイルしてみました。

当初、ftd2xx.libからシンボルを抽出しdlltoolでlibftd2xx.aを作ってリンクさせていたのですが、シンボルが見つからないといエラーに悩まされました。
色々試していくうちにftd2xx.dllをソースと同じディレクトリに置くだけでリンクが通ることを発見しました(理由は良く分かりません)。

コンパイル手順は次の通り。

  • D2XXドライバのインストール(Windows用)
  • ftd2xx.dllをpicburnのソースディレクトリにコピー
  • Makefileの5行目を次のように変更する
    TARGET = picburn
    ↓↓↓
    TARGET = picburn.exe

  • コンパイルしてインストール
    % make dep
    % make
    % cp picburn.exe /usr/local/bin
    % chmod 4755 /usr/local/bin/picburn.exe
    % mkdir /usr/local/share/picburn
    % cp picburn.cfg /usr/local/share/picburn
make installがうまく動かなかったので、cpで実行ファイルとデバイス定義ファイルをコピーしました。

D2XX Direct Drivers
http://www.ftdichip.com/Drivers/D2XX.htm

Installation Guides
http://www.ftdichip.com/Documents/InstallGuides.htm

picburn - PIC Programmer for FTDI devices

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

FT232R(FT245R, and FT2232C)のSynchronous Bit Bangを使ったPICプログラマ'picburn'を作成しました。プログラマにPICを使わないUSB接続型PICプログラマです(ややこしや~)。
秋月のFT232Rモジュールを使えば、トランジスタ3個と数本の抵抗だけで作ることができます(別途12V電源は必要です)。1Kワードの読み込みに1秒、1Kワードの書き込みに10秒程度とそこそこ早いPICプログラマです。

次の図はpicburnの回路図です。
picburnsch080527.png
FT232R周辺の回路は秋月のモジュールと殆ど同じです。トランジスタ周りの回路はオレンジ電子さんのWriter509を参考にしました。12V電源にはNJM2360を使っています。

制御ソフト
picw509をベースに picburn というソフトを作成しました。picw509と同様にコマンドラインベースでプラットフォームに依存しないコードで書かれています。linux、Windowsでも動作するはずです。開発はMacOSX(10.3.9)+gccで行っています。

D2XXドライバインストール
FTDIデバイスとの通信にD2XXドライバを使用します。次の記事を参考にD2XXドライバをインストールしてください。
http://arms22.blog91.fc2.com/blog-entry-148.html

picburnインストール
次のURLからソースコードをダウンロードしてください。
http://xfind.hp.infoseek.co.jp/electric/picburn/picburn-0.1.0.tar.gz
ダウンロードしたら展開してターミナルから次のコマンドを入力します。

% make dep
% make
% sudo make install
コンパイルが終わると実行ファイルとデバイス定義ファイルが次のディレクトリにコピーされます。
/usr/local/bin
/usr/local/share/picburn

使い方
# PIC16F84Aからの読み込み
% picburn -c PIC16F84A -r -o something.hex

# PIC16F84Aへの書き込み
% picburn -c PIC16F84A -pv -i something.hex

対応デバイス
  • PIC10F206 PIC10F204 PIC10F202 PIC10F200
  • *PIC12F683 *PIC12F675 PIC12F635 PIC12F629 *PIC12F509 PIC12F508
  • PIC16F917 PIC16F916 PIC16F914 PIC16F913 PIC16F877A PIC16F876A PIC16F874A PIC16F873A PIC16F877 PIC16F876 PIC16F874 PIC16F873 PIC16F88 PIC16F87 *PIC16F84A PIC16F84 PIC16F83 *PIC16F819 PIC16F818 PIC16F77 PIC16F76 PIC16F74 PIC16F73 PIC16F688 PIC16F684 PIC16F648A *PIC16F628A PIC16F627A PIC16F628 PIC16F627 PIC16F676 PIC16F630 PIC16F57
*印付きのPICのみ動作確認済み。それ以外のPICはソフトは対応したけど未確認。PIC18Fは未対応。

既知の問題
  • コードプロテクト(CP)をかけたプログラムのベリファイは必ず失敗する

良くある問題
  • ベリファイに失敗する
    CPがかかっている
    →無視する
    PGM端子がちゃんと処理されていない
    →GNDに接続する
  • Eraseできない
    VDD電圧が低い(VBUSからたくさん電流を取り出すとVBUS電圧が下がる)
    →VDD電源を別途設ける
  • 0x0000しか読み出せない
    CPがかかっている
    →EraseしてCPを解除する
    Program/Verify Mode に入れていない
    →VDD電圧、VPP電圧、PGM端子を確認する


PIC Writer 509 for Linux
http://senta.s112.xrea.com/senta/product/picw509/picw509.html

オレンジ電子工作 PIC Writerを作る
http://www.geocities.jp/orange_denshi/writer509.html

OSXでPICプログラミング(2)

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

OSXでPICプログラミングの続きです。ブレッドボードに組み立てていたWriter509をユニバーサル基板に実装しました。
writer509_univ.jpg

左からUSB-to-Serial変換モジュール、制御用PIC12F675、NJM2360、ICソケット(写真では16F84Aがささっています)。VPP電源にNJM2360を使う事にしました。安いし、マイクロインダクタを使えばサイズもまぁまぁ抑えれます。最終回路は次のようになりました。
writer509_sch.jpg

オリジナル回路からの変更箇所は、

  • VPP電源ONOFF用トランジスタのベースにダイオードを追加
  • VPP電源にNJM2360を使用
NJM2360の過電流検出用の抵抗は省略しています。なくても大丈夫、、と思う。USB-to-Serial変換モジュールは省略しています。

OSXでPICプログラミング

Posted by arms22 on 2008年05月03日 1  0

writer509_brb01.jpg writer509_brb02.jpg

普段、PICのソースコードはOSX、書き込みはRCDライタとWindowsノートPC、と2台のPCを使い分けています。HEXファイルの移動やその他もろもろの作業が面倒になってきたので、OSX用のライタを製作しました。

今回作ったライタはオレンジ電子工作さんのWriter509です。
Writer509はシリアルポートを使う事を前提に設計されていますが、Macにはシリアルポートなどのレガシーなインターフェースはありませんので、ライタとの通信はUSB-to-Serial変換ICを使って行います。
FENG3さんがFT232RLを使ったWriter509を製作されています。回路図も公開されているので、こちらを参考に製作しました。USB-to-Serial変換は秋月のFT232RLモジュールを使用しました。
制御プログラムはpicw509というLinux用のプログラムをOSX用に少し修正して使っています。

[Vpp電源(12V)]
書き込み用のVpp電源をどうするか色々悩んでいます。幾つかの方法がありますが、現状PICでVBusから12Vを生成しています。以下、幾つかの方法。

  • 006P電池×2からレギュレータで降圧
    簡単、部品少なめ。電池がもったいない?
  • MAX662Aを使ってVBusから12Vへ昇圧
    簡単、部品少なめ。秋月で¥400。
  • NJM2360Aを使ってVBusから12Vへ昇圧
    オリジナルの昇圧部と同じ。部品多め。デジットで¥130。
  • PIC(12F683)でVBusから12Vへ昇圧
    部品多め。制御用PICも12F683にして、デュアル683ライタとか?

[ボーレート]
デフォルトの38400bpsだとフレミングエラーが発生し、制御用PICとうまく通信できませんでした。38400bpsから19200bpsに変更したらうまく通信できました。これは多分ブレッドボードで仮組した状態だった為でしょう。半田付けしたらうまくいくかも。

[制御プログラム]
オリジナルからの変更箇所。
  • ボーレートの設定追加
  • デバイス定義追加(v2.53のDeviceSpec.pasベース)
    -hで対応デバイス一覧が見れます。
  • 細かなバグ修正

make & install
% make
% sudo make install

picw509とpicw509.cfgが以下のフォルダにコピーされる。
/usr/local/bin
/usr/local/share/picw509

使い方はこんな感じ。
# ライタの確認、デバイスの確認
picw509 -d /dev/cu.usbserial-A5002xZv -c PIC12F683 -k -s 19200
# 読み出し
picw509 -d /dev/cu.usbserial-A5002xZv -c PIC12F683 -r -o out.hex -s 19200
# 書き込み
picw509 -d /dev/cu.usbserial-A5002xZv -c PIC12F683 -pv -i in.hex -s 19200
  • -d
    ポート指定。/dev/cu.xxxx
  • -c
    デバイス指定。PIC16F84Aなど。
  • -s
    通信速度。オプションなしの場合38400bps。
  • -r -o out.hex
    読み出しと出力ファイル名。
  • -pv -i in.hex
    ライト&ベリファイ。入力ファイル名。

今後の予定。
  • ユニバーサル基板に実装
  • 12F508/509などUserIDAddress が2000、ConfigAddress1が2007以外のPICの対応

ボーレートを19200bpsに変更した制御用PICファームウェアとOSX用に修正したpicw509をこちらに置いておきます。
http://xfind.hp.infoseek.co.jp/electric/writer509/20080503/12F675Ia.zip
http://xfind.hp.infoseek.co.jp/electric/writer509/20080503/12F683Ia.zip
http://xfind.hp.infoseek.co.jp/electric/writer509/20080503/picw509_v0.2a.zip

関連URL
オレンジ電子工作 PIC Writerを作る
http://www.geocities.jp/orange_denshi/writer509.html

USB接続(可能な)PICライタの探求(4)
http://feng3.cool.ne.jp/usbpgm/index4.html

PIC Writer 509 for Linux
http://senta.s112.xrea.com/senta/product/picw509/picw509.html

PICライタ製作(2)

Posted by arms22 on 2006年02月18日 0  0

今日は本番用のPIC16F84Aにうまく書き込めるかテストした。
しかし、前回と同様"データの照合に失敗"というエラーが発生する。

ノートPCだからMCLRに印可する電圧が足りないのかと思ったけど、テスターがないので確認できない。書き込みソフトのIC-Progの設定でなんとか書き込めないかと色々試す。

まず"2000/XP用のドライバを使用する"にチェックし、DirectIOを使うようにしたら書き込めるようになった。

今までWindowsAPIを使う設定にしていたんだけど、DirectIOを使うようにしたら書き込み速度が何倍も早くなった。
書き込み速度は10秒位に。WindowsAPI使用時は3分位書き込みに時間がかかっていた。

追記 2/19
RCDライタは書き込みサイズが大きくなると書き込みに失敗することがあるらしい。

PICライタ製作

Posted by arms22 on 2006年02月16日 0  0

f141c41c.png

今日はPICライタを製作。
PIC マイクロプロセッサ プログラマの製作を参考にRCDライタと言うをPICライタを製作した。

RCDライタはパソコンのRS232C(EIA-574)に接続するだけで使えて、抵抗(R)、ダイオード(D)、コンデンサ(C)だけでできているとっても安価なライタ。

だいたい500円くらいで必要な部品はすべて揃う。
組み立てるのは結構むずかしいかもしれない。。
ここではライタ製作に1時間と書かれているけど、丸一日かかってしまった。

組み立てが完了したので書き込みのテストを行う。
IC-Progというソフトを使ってPICにプログラムを書き込む。

IC-Prog Prototype Programmer
http://www.ic-prog.com/

日本語化用パッチ
http://cgi.biwa.ne.jp/~jr3roc/pic/#icprogj

書き込むプログラムはここのLED点灯プログラム。
書き込むPICは12F629を使った。
書き込みを開始しすぐにデータ照合時に"次のアドレスで照合に失敗 0000h!"というエラーが発生してうまく書き込めず。。
組み立て失敗したかな~

gglと以下のURLで解決策を発見。
http://www2.ezbbs.net/cgi/bbs?id=feng3&dd=36&p=3

回路図のR3可変抵抗を10KΩから11KΩ~33KΩに変えるとよいとあった。
手持ちがないので、抵抗値をMAX10KΩにして再度書き込み。

今度はうまくいった。
テスト回路を組み立てて、LEDが点滅していることを確認した。

このカテゴリーに該当する記事はありません。