広告
*FT232RLを使ってPICライターを作る [#y21ecbc4] 新しく買ったパソコンを見てみたらなんとシリアルポートがなかった。なので、USBを使ったPICライターが必要になってしまった。~ 世の中には[[FT232RL>FT232]]というUSB-シリアル変換チップがあるので、を使ってPICライターを作ってみた。 **コンセプト [#r524e60f] -もちろんLinuxで使える。 --自分でプログラムを作るのならどんなものでも良いのかも知れないけれど、Linuxで動くライターに[[PICprog:http://hyvatti.iki.fi/~jaakko/pic/picprog.html]]というプログラムがあるのでこれを使う(Debianの公式パッケージあり)。 --ちなみにこのライターは[[WinPIC:http://freenet-homepage.de/dl4yhf/winpicpr.html]]にも対応しているのでWindowsマシンでも使える。 -簡単な回路で済む。 -電源はUSBから取る -18ピンと8ピン(12xx系)に書き込める --将来的には28ピンとか40ピンも書き込めるようにすると思う。 **回路 [#ia8569bd] [[PICprog:http://hyvatti.iki.fi/~jaakko/pic/picprog.html]]は、[[JDMライタ:http://www.k9spud.com/jdm/]](参考:[[シリアルポート接続PICライターの製作:http://cgi.biwa.ne.jp/~jr3roc/pic/]])や[[RCDライタ:http://feng3.cool.ne.jp/rcd/]]([[FENG3のホームページ:http://feng3.cool.ne.jp/]])に対応しているので、これらの回路を参考にする。~ また、FT232RLは[[ストロベリー・リナックス:http://strawberry-linux.com/]]の[[「FT232RX」というUSBーシリアル変換モジュール:http://strawberry-linux.com/shop/index.php?c=&s=date&p=1&r=1&page=#50025]]を使う。 PICの書き込みには12V(12.6V)が必要なのでこれをUSBの5Vから作る必要がある。~ これは「[[MAX662A:http://akizukidenshi.com/catalog/items2.php?q=max662&s=score&p=1&r=1&page=#I-01165]]」という5Vから12Vを作るチップを使った。このチップは[[秋月電子通商:http://akizukidenshi.com/]]で購入できる。 で、実際の回路は下図の通り。''[[ストロベリー・リナックス:http://strawberry-linux.com/]]のUSBーシリアル変換モジュールは描いていない。''~ 回路は[[NS企画:http://www.h6.dion.ne.jp/~nskikaku/]]の[[ライタ:http://www.h6.dion.ne.jp/~nskikaku/picwrt/picwrt.html]]を参考にさせてもらった。~ これは、RCDと互換だけれど元は[[WinPIC:http://freenet-homepage.de/dl4yhf/winpicpr.html]]の[[PICライター回路:http://freenet-homepage.de/dl4yhf/winpic/#eprom_prog]]のようだ。~ ''このライターはRCDライタ(WinPICではCOM84)として認識されるようだ。'' #ref(pic_writer.png,,nolink) USBーシリアル変換モジュールからの出力は0-5Vなので、[[JDMライタ:http://www.k9spud.com/jdm/]]とか[[RCDライタ:http://feng3.cool.ne.jp/rcd/]]にあるようなレベル変換用のダイオードは必要がないのでかなりすっきり。~ ただし、もともとRS232Cは、負のとき「1」で正のとき「0」なので、USBーシリアル変換モジュール(FT232RL)の出力はRS232Cと反対。それで、インバータ(NOT)を入れて反転している。 MAX662のところに付いているダイオードD2は12Vを12.6Vにするために付けている。特に指定はないけれど電流を多めに(100mA以上?)流せるものが良い。~ MAX662のところに付いているコンデンサ(C3,C4)は0.22uFから1uFの間ならいくつでも良い。ただし、電解コンデンサなど極性があるものは極性に注意する。~ **プリントパターン [#j8b232b0] 一応参考のためにプリントパターンも。''回路図では分からないけど74xx04の電源を5Vラインから取ることを忘れない。'' #ref(pic_writer_board.png,,nolink) **できあがり [#c3aa6bbb] 今のところPIC16F84でしか試していないけど、おそらく他のものでも書き込めるはず。~ この書き込み機は上のプリントパターンを参考にユニバーサル基板で作ったもの。上のプリントパターンと配置が違うけど、配線は同じ #ref(usb_pic_writer.JPG,,nolink) 5Vから12Vをつくり出しているMAX662はUSBーシリアル変換モジュールの下に隠れている。 **Linuxで書き込む [#q46c14b4] Debianの場合、このライターをつなぐと「/dev/ttyUSB0」などにつながったことになる。(「[[FT232]]」参照、ユーザーの設定も忘れずに)~ なので、Picprogで書き込むときは、まず $ picprog --erase -p /dev/ttyUSB0 とやって消去してから $ picprog --burn --input test1.hex -d pic16f84 -p /dev/ttyUSB0 とやって書き込む。ここでは「test1.hex」と言うのが書き込むプログラム。デバイスによっては自動認識するので「-d pic16f84」の部分がいらない場合もある。 **おわりに [#a9e495ab] 専用の書き込みプログラムを作れば74xx04はいらなくできるのでもっと回路は簡単になるだろうけど、多くの人が使っているプログラムで使えた方が便利だからこれで良いのだろうと思う。~ 特にWinPICは新しいデバイスにもすぐに対応するので、これで書き込めることは重要だと思う。~ Linuxで使う場合もPICProgなどに対応しているので便利だろう。 ちなみに「JDMライタ」として認識させたかったら、「IC3D」(TXD用)を取って直結すればいいはず。 広告 |