USB-シリアル変換機対応型 JDM PICライター
ついに追い求めていたものが現れました。JDMライターというと、本家JDMさんのサイトを元に、ROCさんのサイトやFENG3さんのサイトでいろいろな製作例がありますが、「電源不要」というのが、利点であり欠点でもありました。最近ではシリアルポートがついていないパソコンも多いため、USB-RS232C 変換を使ったシリアルポートでは、JDM PICライターが動作しないということが問題となっていました。
そして、このJDM互換で電源供給型の新しい PIC ライターを見つけました。
これと同じようなものを作りたいと思っていた矢先のことでした。
「PICを始めよう」の「PIC プログラマー(ライタ) の製作 その2」に載っています。まだ出来たばかりのサイトみたいですが、非常に良く出来てます。
ここで紹介されている JDM互換の PIC PROG X2 は、15Vの電源を必要としますが、USB-RS232C 変換器でも安定した動作が望めそうです。
回路を見ると、JDMオリジナルとはだいぶ違います。TXD から信号が来たら、NPNトランジスタで2つのPNPトランジスタをONにし、PIC側に 書き込み用電源13.2V (VPP) と 電源5V (VDD) を供給します。13.2V はツェナーダイオードで、5V は 78L05 三端子レギュレータで作ってます。しかもジャンパピンの設定により、2200pF のコンデンサをPNPトランジスタのベース側に接続することができ、VCCとVPPの供給タイミングをずらすことが出来るという素晴らしい仕様。
こんなものを見つけてしまったら、JDM PICライターマニアとして、作らないではいられません。見つけた1時間後には基板加工機で基板を削ってました。ユニバーサル基板での作り方が書いてあったので、それと全く同じパターンで作ったため、あっという間に完成しました。
パターンはこんな感じ。(PDF。基板面。たぶん原寸大)
学校帰りにサトー電気で 13V と 9.1V のツェナーダイオードを購入し、さっそく家に帰ってハンダ付け。0.1uF のマイラーコンデンサがなかったため、代わりに電解コンデンサを使用したら、スペースが足りなくてカッコ悪くなってしまったが気にしない。
そしてドキドキ動作チェック。デスクトップのシリアルポートにつないで、IC-Prog 1.05D でとりあえずハードウェアチェックをしてみたところ、ちゃんと必要なピンに必要な電圧がきてました。これは期待できる!と思い、さっそく PIC16F84A に書きこみ。
しかし・・・
なんか、おかしい。
ベリファイエラーが出る。時々うまく書き込めることもあるんだが、多くの場合失敗するという、非常に不安定な動作。なんということだ・・・。作り方が悪いのか、回路が悪いのか・・・。良く分からないがうまく動かない。今度は USB-シリアル変換器を使ったところ、IC-Prog の Interface を Direct I/O ではなく Windows API モードにしないと、そもそも動かないのだが、Windows API モードだと恐ろしく遅い。書き込みに10分くらいかかるあげくに、うまく書き込めないという散々な結果に・・・。
何か対策を考えねばなりませぬな。
とりあえず今日の基板の反省メモ。
・電解コンデンサー用にランドの位置を変更。
・ジャンパ線ゼロ対策
・DCコネクタ用のランドは広めに。
このエントリーのトラックバックURL:
http://mono-zukuri.net/cgi-bin/mt/mt-tb.cgi/246
Calendar
Categories
Monthly Archives
Search
私もこの回路は気になっています。
そのうち作ってみようと思いますが、正常に書き込めないのは困ったものです。
投稿者 U : 2005年06月16日 01:10
U さん。こんばんは。
そうなんですよ。
回路だけ見ると安定してそうなんですけどね。
JDMの仕様自体に無理があるんでしょうか。
いっそ、書き込み側にもコントロール用のマイコンを積もうかと思っちゃいます。(秋月ライターみたいに)
作ったら是非レポお願いします。
投稿者 mimiham : 2005年06月16日 01:18
無茶を承知でブレッドボードで組んでみました。('A`)
ちょっとだけオリジナルと違うところがあります。
1)Vppの生成にレギュレータを使った。
オリジナルは100Ωと13.2VツェナーDiのところ、78L12とそのGNDの1N4148を1つかませてかさ上げし、約12.8Vの出力とした。
2)2SA1015のベースに入ってるツェナーDiは8.2Vとした。
オリジナルは8V〜10Vとなっている。
3)空きピンの処理を一部省略している。
オリジナルは18Pinソケットの空きピンは全てGNDに落としているが、面倒だったのでGNDに落とすのを1、5、9の3本だけとした。
…で、結果はというと、JPをBの方に接続して成功しました。
16F84Aの場合はVdd(5V)がVpp(13V)より先に立ち上がらないといけないようです。
また、2200pF(222)を1000pF(102)に減らしてみたところ失敗しました。
増やす方は0.01uF(103)までOKでした。
さらに、JPを無接続でPIC挿入後Vdd(5V)を強制的にONに(78L05の右の2SA1015のEとCをショート)してみたところこれも成功しました。
結果として、
1)回路の変更はあまり関係なさそう。
2)16F84Aの場合はVppよりも十分先にVddが立ち上がっている必要がある。
3)そのほかのデバイスは未検証。
ちゅーことで、VddとVppのタイミングが成功/失敗の分かれ目か…。
投稿者 U : 2005年06月16日 23:06
U さん詳細な報告ありがとうございます。
確かに Vdd と Vpp のタイミングが重要な気がしてました。
私と違うことは、ジャンパをAに設定したときの方が安定した書き込みが出来るんです。逆にジャンパBだと、読み込みも書き込みも出来なくなってしまいます。なんでこうなってるのか理解に苦しみます。私もジャンパBに設定する方がベターなのかと思ってましたので。
もともとオリジナルのJDMライターは、常時5V電源が供給されているので、12F675などで内部オシレーターを有効にしない限りは、常に5Vを供給しておいても支障はなさそうですけどね。
ブレッドボードで実験回路を組んでみようかな。
USB-シリアル変換器ではやってみました?今後のことを考えると、この変換が使えるかどうかが重要なんですよね。
投稿者 mimiham : 2005年06月17日 00:22
USB-シリアルを使うまでもなく、Direct-I/OからWinAPIにしただけでかなり不安定になってしまいました(´・ω・`)。
ストレージオシロなどでデータやクロックの波形を見てみないとちょっと無理みたいです。
投稿者 U : 2005年06月17日 23:37
Windows API モードは微妙ですね。
でも Windows API モードでないと、シリアル変換器が全くコントロールできないとなると、そろそろ JDM ライターにも限界が・・・。
シリアル変換器の種類にもよるのかな。
そもそもシリアルの規格って、TXD と RXD の調歩同期のタイミング以外は、出力レベルにも明確な規定がないし、他のピンの出力タイミングもPCによってバラバラですからね。
逆に強引にでも動かせるから、電子工作には使いやすいインターフェースでもあるんでしょうけど。
次は USB で簡単に自作できて動かせる PIC ライターを作ってみたいもんですな。
投稿者 mimiham : 2005年06月19日 02:58
はじめまして。
外部電源式PICライター(「PICを始めよう」の「PIC プログラマー(ライタ) の製作 その2」)ですが、実は僕が問い合わせして設計してもらいました。
作ってみましたが僕の環境では100発100ちゅうで書き込めます。もちろんUSB−RS232C変換機を使ってです。
また、これでも不安定でだめだという方はUSB接続のこれを作ってみては??
http://www3.airnet.ne.jp/saka/hardware/MPW/mpw3001.html
投稿者 taka : 2005年07月03日 23:04
taka さん情報ありがとうございます。
やはり私の作り方がまずかったんでしょうか。
あれ以来、全然検証していないので分かりませんが。
USB 接続の MPW3 PICライターは、かなりマジに作ってますね。
USB ターゲットとして動作して、専用のツールで
書き込みですか。
部品代だけで、5〜6000円いきそうなので
ここまでくると、秋月のライターを買った方が
信頼性の面からいってもいいかもしれないですね。
投稿者 mimiham : 2005年07月06日 05:24
お久しぶりです。
100%安定して動作している方もいらっしゃるんですね。
やはり私も作り方がまずかったのでしょうか。
ただ、USB-シリアル変換を使った時の時間のかかりようには、なんかやる気がうせてしまいそうです。
takaさんが紹介してくださったのもいいのですが、せっかくシンプルな回路でと考えていたのでちょっと本格的過ぎます。
(かなりワガママです・・・)
やはりここは自分で作るしかなさそうです。
MICROCHIPのサイトでProgrammingSpecificationをいくつも調べてみましたが、古いものを除いて(古いものはパラレル書き込みのものがある)同じような書き込み方式になっています。(といっても結構バラバラだったり)
現在、主要デバイスのProgramming仕様書を見てコマンド等を整理しています。
コントローラはシンプルに8PinのPICを考えています。
PICとPC(Windows)の両方のプログラムを書かなければいけないので相当時間がかかりそうですが、ライフワークとしてぼちぼちとやりますので期待はしないでください。
投稿者 U : 2005年07月23日 23:22
U さん。こんにちは。
やはり JDM では限界が見えてきましたね。
私も以前、PIC の書き込み仕様について調べたことがありますが、外部メモリの書き込みなどと似ていて、それほど難しくなかった記憶があります。
ただ、いかんせんPICの種類も多く、また書き込み仕様も少しずつ違っていたりして、うんざりした覚えがあります。
ぜひとも、新しい書き込み機が完成しましたら、お知らせください。
投稿者 mimiham : 2005年07月29日 17:35
はじめまして、「PICを始めよう」の管理をしております DANGAN4と申します。
taka さん、どうもです。
このプログラマーを確実に動作させるポイントは 13.2Vのツェナーにあります。
ここの電圧で 上手く行く確率がだいぶ変わるようです。
ランクの違うツェナーダイオードを数種類テストして最も良いものをチョイスしました。
8−10Vの方は「だいたい」で良いようです。
今後の改良のためにも皆さんのレポートを頂ければと思っています。
投稿者 DANGAN4 : 2005年08月05日 14:37
DANGAN4 さん。はじめまして。
コメントどうもありがとうございます。
なんとこれの開発者様ですか!
本来ならリンクした旨を連絡するのが常ですが、無断でのリンクで申し訳ないです。
さらにアドバイスまで頂いてしまって・・・。
なるほど。書き込み電圧を作る13.2Vツェナーがポイントですか。13.2Vで違うランクのツェナーはないので、いくつかの電圧を組み合わせる必要がありそうですが、いろいろ挑戦してみます。
どうもありがとうございました。
投稿者 mimiham : 2005年08月05日 18:14
できました。
まだ、完璧ではないけれど何種類かのREAD、WRITE、ERASEなどができました。
当面はサポートデバイスの追加と検証が必要です。
よかったら作ってみてください。
投稿者 U : 2005年08月13日 08:52
U さん。こんにちは。
ページの方拝見しました。
素晴らしいです!!!
ソフトの方まで完全自作というのには驚きです!!!
私の方でもこのライターを作ってみて、検証してみたいと思います。
特性差が出そうなのが5Vから13Vへの昇圧回路かと思いますが、どうですかね。
これが安定して動作すれば、かなり強力兵器になりますね。
投稿者 mimiham : 2005年08月15日 11:53
Uさん、はじめまして。
USB - RS232C変換器を用いたときの「遅さ」を解決するには、ライタにPICなどを搭載して TXD,RXDのみでコントロールするのは 正解だと思います。
私も 12F675搭載のタイプを作りましたが 「サポートデバイスの追加」の段階で 忙しさを理由に 中断状態です。
対応デバイス については 根気のいる作業だと思いますが 頑張って下さい。
投稿者 DANGAN4 : 2005年08月16日 20:03
たしかにそうですね。
IC-Progの対応するデバイスの多さはかなり魅力があるので、これが使えなくなることにずいぶん悩みました。
ただ、他の人はわかりませんが、私は安くて入手性のよいデバイスしか使わないだろうということで割り切ることにしました。
一応、汎用性をもたせたつくりにしたので、データの追加だけで対応できるデバイスもいくつかありますが、
これから先も、あまりポピュラーでないデバイスは使いたい人にテストなどを頼むようになるでしょう。
投稿者 U : 2005年08月18日 14:16