JDMプログラマ
by K.I
日付 2000/xx/xx〜
Index
PICライタとして、多分もっともシンプルで作りやすいJDMプログラマについてのメモ。
[top]
オリジナルのJDMプログラマは、Jens Dyekjar Madsenさんの PIC-Programmer2というもので、RS-232Cのシリアルポートから、巧妙に5VとVpp電圧を生成している。
PIC-programmer2は、PICの本に紹介されていたが、書込み用プログラムはDOS版だった。
それで、Windows版はないかと検索していたら、Bonny Gijzenさんの IC-Progを見つけた。市販のプログラマに負けない高機能のプログラムが、フリーで提供されていることに驚いた。
それで最初のJDMライタを作成した。こんなにシンプルな回路でちゃんと書き込めるのに感動した。→この時点では、それで満足して実際には使っていなかった。
- オリジナルの回路図をほぼそのまま作ったが、25ピンのシリアルコネクタを9ピンのコネクタに、変更してみた。
16F873の書込みは秋月のPICライタを使っていたが、いちいち付け外しするのが面倒になったので、ICSP用にJDMプログラマを改造することにした。
- ICSP書込み用の端子を追加 →必要な5端子を出しただけ
検索してみると、JDMプログラマやIC-Progに関する情報が沢山あることに驚いた。16F873については以下の 変更が必要ということが分かった。
- 書込み電圧を上げる必要がある
- ツェナを8.2Vから8.7Vに変更ということだったが、手持ちが無かったのでSiダイオードのVFを直列に接続してごまかす。(これだけは、オリジナルかなぁ。。。)
- RB3を10kΩでプルダウン→これは、実際の基板上で対応。
→最初に作ったJDMライタをICSPに改造
8ピンの12C509を良く使っていたが、ワンライトなのでデバッグは結構苦痛だった。
フラッシュの12F6xxが出て、いろいろと楽になった。
試しにJDMライタでICSPをやってみようと基板を作ったが、どうもうまく行かない。
書き込めたと思ったら、ダメになったり変な現象だった。
なんか間違ってるのかなー。。。ということで簡単に諦めて、放っておいた。
暫くして、やっぱりJDMライタで12F6xxをやりたいということで検索してみると、JDMライタではVDDをコントロールしていないので、書き込めない事が 分かった。
- VppをONしてからVDDをONしなければならない。
- また、GP5,GP4をオープンにする必要がある。
結局 えびめもを参考にさせていただいて、トランジスタでVDDを遅延させる回路を使うことにした。
→基板はH.Iさんに作ってもらったJDMをパターンカットして改造、部品を追加した
12F6xx対応版で16F873も書いてみたが、特に問題無いようだ。
[top]
ところが、最近 RCDライタなるJDMライタの亜種を作成された方がいることに気が付いた。
- 折角、JDMプログラマを改良したけど、こっちの方がさらに簡単で良さそう。。。
これは非常にシンプルな回路なので今度作ってみよう。→JDMライタが究極のライタと思っていたけれど、考え方を柔軟に変えなきゃダメだなぁ。
- で、作ってみました。OLIMEXで作った基板。ちょっと頑張れば、もっと小さく作ることも出来るなー。
→やっぱり、ちゃんと基板を作るとカッコいいな
とりあえず、初めてだけど16F628をICSPで書いてみました。問題無く書けてるみたい。12F675もソケット差しでOKだった。16F873もICSPでいければ良いなぁ。(今、手持ちが無いんで未確認)
[top]
- JDMプログラマやRCDライタは、ICprogというWindowsアプリケーションと組み合わせて使われることが多い。
- ICprogのような使いやすいツールがフリーで公開されているのは、とても有り難い。
- ICprogのページから、プログラムをDownloadする。
- Windows2000/NTの場合1は、ドライバも落としておく。
- icprog.exeと、w2k用ドライバicprog.sysを同じ場所に入れておく。
- icprogを起動すると、HardwareSettingのダイアログが出るので、
- シリアルポートの設定をする。interfaceはDirectI/Oで良いと思う。
- 次に、Settingメニュー→Options→Miscタブで、Enable NT/2000/XP Driverにチェックを入れる。
- これをしないと、Privilegeなんたらのエラーが出る。
- 久しぶりにICprogを使ってみようとしたら、起動時に、while starting driver! というDialogが出るようになった。
- 気にせず、書き込もうとすると、failed to connect to any servicesと出て、さらにDialogが出て2プログラムが落ちてしまうようになった。
- failed...は、Com Port Redirectorが出していたので、それをアンインストールしたら出なくなったが、プログラムは落ちるので直接関係は無かったかもしれない。
- 結局、ICprogのSetupメニューのOption-MiscでWin2000用ドライバのチェックを一回外して、プログラムを再起動。
- 再度、ドライバのチェックをし直したら、正常に書き込めるようになった。
- シリアルポートをいじるプログラムをいろいろインストールしてるから、ドライバの場所を見失ったのかな?
1もしかすると、XPでも必要なのかもしれない。
2内容は、ちょっと忘れたけど。。。
[top]
[電子工作関連に戻る]