プログラマ(ライター)   

 AVR用プログラマは本館に書いたようにかなりの種類をコピー製作してきました。今では実用性が乏しいものもありますので、ここではこれからAVRをはじめようとする方の参考になる3種のプログラマについて製作報告をします。作り方を解説したものではなく筆者の製作例としてご覧下さい。
私をこの世界へ導いてくれたChaNさんのプログラマが候補にあげられないのは残念ですが着実に研究を進めておられるのでぜひ参考にしていただきたいと思います。
本来、プログラマはCOMポート経由であったと思いますが今ではCOMポートの無いPCも多いのでUSB接続のものに限りました。


 1 HIDaspxプログラマ 
 2 FT232RLプログラマ 
 3 pic18spxプログラマ 





 1 HIDaspxプログラマ 

 V-USBを利用したプログラマは我が国でも複数の人が研究しておられその成果を発表されていましたが、senshuさんがそれに改良を加えて、かつ、書き込みソフトのhidspxを改良し完成して自作しやすく、使いやすいプログラマに作り上げたものと理解しています。
廉価なTiny2313と僅かの周辺部品で製作できます。また、デバイスドライバはwindowsの標準を使いますからインストールの必要がありません。唯一の欠点はプログラム済みのTiny2313が必要なことでこの「にわとり−たまご」問題解決のための方策も報告されています。もし書き込み済みのTiny2313をご希望の方がおられたらメールをいただければ用意します(2017.05 終了しました FT232RLをお薦めします)。





原典は千秋ゼミにあります。サイト内検索で「最新のHIDaspx関係ファイル[Download]」を検索します。そのページの hidspx-20yy-mmdd.zip(ymdは年月日)をダウンロードし解凍しますとハードウエアのHIDaspxとソフトウエアのhidspxとファームウエアがあり、またそれらの詳しい説明があります。
回路図を比べていただくと私の製作物はかなりの省略があるのが分かると思います。この形でも私の使用目的には十分な機能を発揮しています。
ここで使用されているV-USBでは原則としてD-信号線を5Vにプルアップすると正常に働きません(問題のないコンピュータもあります)。そこで電圧リミタとして青色ダイオードを入れて3V程度にクランプしています。また、書き込み信号線は5Vで駆動していますが5Vでは高すぎて困るときのためにUSBバスの5Vに赤色LEDを入れて電源電圧を3.2V程度となるように工夫しています。赤色LEDはスイッチで切り換えています。

ターゲットボードにつなぐコネクタは写真に写っていませんが、PCのATAケーブル(マザーボードとHDDを接続する40芯のもの)の廃物利用でピンソケットを2*3の6ピンに切り取ったものを使っています。プロの人には叱られるかもしれません。

Tiny2313に書き込むファームウエアは前述のファイルに含まれる main-12.hex です。
USBデバイスはシリアル番号が無い場合にはUSBポート毎に別デバイスと考えられますので不便ですが、このmain-12.hexを書き込むと自動的にシリアル番号0000となります。
書き込むためのPC上のソフトは hidspx.exe です。("HID"と"hid"の文字の違いにご注意下さい)

  1 HIDaspxプログラマ おわり





 2 FT232RLプログラマ 

 ビットバンモードを利用してシリアルプログラミングするものです。すzさんが研究されてきたようですがsenshuさんのavrdudeの改良のなかで報告されています。
多くのAVRライタはプログラム書き込み済みのAVRが必要なためにUSB-IOしか持たないPCに取っては最初の1歩に問題がありましたが、このライタはFT232RLとavrdude-GUIがあれば他の力を借りることなく書き込むことができます(にわとり−たまご問題がありません)。

内容的には十分な理解ができていないので「こうしたらライタとして使えました」という一例の報告としてお読み下さい。





別のUSB-シリアル変換に使っていたFT232RLからプログラマ用の端子を取り出し実験に成功しましたが、手持ちのFT232RLがありましたのでプログラマとしての専用機を作ってみました。
回路を簡単にするために5V専用としてパイロットランプも省略していますが、回路図の赤線部分を有効にすると3.3Vと切替が可能になります。
ハンダ付けはやや難しくなりますが小型で簡単な作品となっています。ハンダ付けが好きでない方は秋月でハンダ済みのモジュールを買うとブレッドボードで書き込めるプログラマとなります。

プログラムローダー(書き込みソフト)は avrdude-GUI が便利です。
  2 FT232RLプログラマ おわり





 3 pic18spxプログラマ 

 irukaさんが作ったAVRライタです。他の機能もありますので別項にも書きましたが、ライタの部分だけを取り出してここにもあげておきます。
特長は、
1 制作費が安く(PIC18F14K50 \200)、回路が簡単であること、
2 PICを使うにもかかわらずHIDaspxがあればファームを書き込めること、
3 AVRへの書き込みが高速であること、
4 PIC18とPIC24(一部)にも適用できること、
5 ブートローダによってファームの書き換えが簡単であること、
などがあげられます。

HIDaspxを持っていて工作好きの方には是非お勧めしたいライタです。





ブートローダを書き込むためにISPコネクタを付けてありますが、ブートローダファームに変更がなく他の方法でブートローダファームが書き込めるならばこのISPコネクタはなくても良いでしょう。ライタファームが更新されてもブートローダで処理できるからです。
リセットスイッチを付けたのは次の理由によるものです。私のPCは電源を切ってもUSBの電源は切れませんので、接続したままPCがスタンバイモードになってそれから復帰するときにライタを認識しなくなります。USBソケットを脱着すればいいのですが、めんどうなのでリセットスイッチを押すことにしています。また、ブートスイッチは、これを押してリセットするとブートローダモードになります。通常のリセットではライタに制御が移りますが、ブートローダを起動してファームの書き換えをするときはこのスイッチが必要になります。ソフトでも起動できるようですがエラーが出ますのでこのスイッチの方がすっきりします。(やがてソフトで問題なく切り換えられるようになると思います)

ハードウエア7番ピンPGMはLVP(高電圧を使わないプログラム)では 4.7〜10k でプルダウンが必要です。
17番ピンVUSBは3.3Vのレギュレータ出力端子とのことで 0.2〜0.47uF でバイパスします。0.3がよく使われるようですが手持ちの都合で0.1にしてあります。
水晶の負荷コンデンサはなくとも使えるという報告もありますのでテスト的に省略しています。問題があれば追加する予定です。

関係ファイルについて
関係するファイル群はirukaさんのサイトにあります。今までアーカイブの場所を紹介してきましたがそのためにirukaさんがアーカイブの名付けに苦労されておられますので紹介をやめて、以下の実験に必要なファイルをまとめたものをファイル群としてここに置きます。irukaさんの了承はこれからですが、実験のためにはこの方が使いやすいと思いますので変更します。
初歩の実験が済みましたら、ファイルの更新もありますから、正式にirukaさんのサイトを訪れて理解を深めていただきたいと考えています。

1 loader-18F14K50.hexというローダーファームを、PICspx.exeライティングソフトでHIDaspxハードを用いて、コマンドプロンプト上で書き込みます。
2 picmon-18F14K50.hexという名のAVRライタ/PICモニタファームを、picboot.exeをコマンドプロンプト上で起動して書き込みます。
3 picspx-gcc.exeをコマンドプロンプト上で実行してAVRの読み書きをします。
4 picwrite.exeを使うとPIC18F14K50の読み書きができます。
ということになります。

太字で示したファイルにpicspx-gcc.iniを加えたものを単独のフォルダ(パスが通っている方が良い)に保存すると便利です。

ブートローダの書き込み
ライタボードに電源を供給します。このときは3.3Vで行いますのでUSBコネクタはつなぎません。別電源を用意します。なければ乾電池2個の3Vでも良いでしょう。
ISP端子にHIDaspxをつなぎます(3.3Vが望ましい。書き込み回路に100Ω程度が入っていれば5V電源でも可)。コマンドプロンプトで次のように操作します。
>PICspx.exe loader-18F14K50.hex
*Device:PIC18F14K50  DEV_ID:0x4766
Erase ...
Writing   ... 0800
Verify Ok.... 0800
Writing Fuse ...
WARNING: config LVP=OFF -> ON .
CONFIG: 00 32 2a 1e 00 88 05 00 03 c0 03 e0 03 40

>
書き込みとベリファイに計2分強かかりました(同じPCでも日によって時間が違うようです)。2台目からはこのPIC18F14K50で作ったライタを使いますと5秒で終わります。HIDaspxを使った長い書き込みはブートローダを1回書くだけです。
ブートローダの書き込みが終わるとUSBに接続します。bootloaderが働いているとRC0のLEDが点滅します。

AVRライタファームの書き込み
USBに接続してLEDが点滅している状態で、ブートローダを使ってライタファームをアプリケーション領域に追加書き込みします。
>picboot.exe picmon-18F14K50.hex            // アプリケーションの書き込み
TARGET DEV_ID=14 VER=1.1(Bootloader)
Erase ...
Writing ... 29e0
Verify Ok.... 29e0
数秒で書き込めます
これでライタは完成です。USBをはずします。

AVRライタのテスト
USBにライタを接続します。PCはライタを認識するはずです。
AVRターゲットボードに電源を入れ、ライタリードを接続します。
ターゲットデバイスの情報を読みます。
>picspx-gcc.exe -r           
TARGET DEV_ID=14 VER=1.1
Detected device is ATmega168P.
Device Signature  = 1E-94-0B
Flash Memory Size = 16384 bytes
Flash Memory Page = 128 bytes x 128 pages
EEPROM Size       = 512 bytes

>
>picspx-gcc.exeエンター
とすると使い方が表示されます。オプションその他については極めて hidspx と似ています(hidspxの内容が出ている?ようです)。

私のPCではターゲットが12MHzの時に読み出しが -d0 で 8kB/s弱になりました。HUBを入れると残念ながらHIDaspxより遅くなりますが、HUB無しでは俄然高速で操作は快適です。他の報告ではHUBがある方が速いそうですがPCによって違いがでるのかもしれません。
その他の操作は hidspx に準じて行えますから詳細は省略します。

なお、picwrite.exe を使って PIC18F14K50、PIC18F2550 にもファームを書き込んでみましたが高速で使えるようです。

このライタのファームと書き込みソフトはsenshuさんのサイトで改良が進められています。picspx-gcc.exe が picspx.exe と改名されています。最新の機能を持つものはsenshuさんのサイトにあります。現在は私の研究不足により詳細を知りませんが分かれば別項で報告します。

2011.11.20追記
上に書いたようにsenshuさんのところで改良が続けられているようです。千秋ゼミのサイトのものはファームウエアとローダーのバージョンが最新のもので一致していないと不都合が生じることがあるので注意が必要です。ファームとローダーの組み合わせが適切でないといけません。
千秋ゼミの新掲示板でメンバー登録するとファイルをダウンロードすることができます。
ログインして Download をクリックすると最初の行に YCIT版、avrdude, pic18spx関連の評価用アーカイブ がありますからこれを開き、(本日現在では)pic18spx-0831a.zip  に最新のファームウエア loader-18F14K50.hex と 18F14k50.hex がありますので上記のブートローダーとライタファームをこれに代えます。
書き込みソフト(ローダー)は同じ掲示板の avrdude-2011-RC18.zip を解凍して setup.bat を実行すると c:\bin フォルダに picspx.exe (原作者irukaさんの picspx-gcc.exe と同じ機能のもの。 PICspx.exe とは全くの別物)とそのiniファイルがコピーされます。ここにpathを通しておけばコマンドプロンプトから使用できます。詳細は別項の プログラムローダー をご覧下さい。

 3 pic18spxプログラマ おわり























工事中 inserted by FC2 system