!USB接続のパラレルプログラマー http://star.gmobb.jp/koji/data/avrhpppic.JPG AVRを使い始めたのだが、ヒューズビットの誤設定を考えるとやはりパラレルライター(高電圧プログラマー)は欲しい。製作例はないかと検索してみるものの、[STK500|http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2735]、[AVRdragon|http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3891]、[ELM-ChaNさんの|http://elm-chan.org/works/avrx/report.html]ぐらいしか見当たらない。ChaNさんのが一番安上がりだが、いまどきプリンターポート付きのPCも限られているのでこれも作る気はしない。ならば自作するしかない。 幸いChaNさんのパラレルライターの制御ソフトはソースが公開されているのでこれを応用させてもらいました。電源のスイッチ制御のTr4個以外はポートにただ繋ぐだけなので製作は非常に簡単です。 [回路図|http://star.gmobb.jp/koji/data/AVRhppcir.PNG] 写真の製作例は[DC12Vの昇圧コンバーター|http://star.gmobb.jp/koji/data/12Vup.PNG]を搭載し外部電源不要にしています。ソケット変換アダプターの結線図はELM-ChaNさんのページに詳しく掲載されています。 http://star.gmobb.jp/koji/data/avrhppadpt.JPG ZIFソケット(本体28ピン)と変換アダプター(8ピン、20ピン兼用) !主な材料とソフトウェア *ストロベリーリナックスの[AT90USB162ボード|http://strawberry-linux.com/catalog/items?code=50027] AT90USB162ボードはUSB接続でプログラミングできるライター不要のAVRボードで、これからライターを作る人にとっていわゆる鶏卵問題は無く、適度なユニバーサルエリアもあり、製作には都合がよいのでこれを選びました。 ファームウェアはATMELのサンプルソフト[USB HID Generic|http://www.atmel.com/dyn/resources/prod_documents/AVR328.zip]をベースに作成しました。HID準拠デバイスとして認識されるのでドライバーインストールは不要です。PCアプリで通信するためのDLLが付属しています。 PC側のソフトは、[ELM-ChaNさん|http://elm-chan.org/works/avrx/report.html]のAVRライター制御ツールのパラレルライターの制御ソフトavrpp.exeを改造(avrhpp.exeと命名)して作成しました。 http://star.gmobb.jp/koji/data/avrhppdgm.PNG !製作結果 avrppの機能一通り動作しました。(但しHVS15モードは削除しました)通常はISPライターを使うのであまり出番は無いと思いますが、いざというときにあると便利だと思います。avrppベースなので使いやすく、対応デバイスも豊富です。 {{ref AVRHPP20121117.zip,AVRパラレルライターの製作,ソフト一式(2012.11.17最新)}} {{ref AVRHPP20111130.zip,AVRパラレルライターの製作,旧版(2011.11.30)}} {{ref AVRHPP20101121.zip,AVRパラレルライターの製作,旧版(2010.11.21)}} !速度計測結果 パラレル:0.26秒/1kB(3.8kB/秒)、高電圧シリアル:0.48秒/1kB(2.1kB/秒) <測定環境条件> CPU:Intel Core2Duo E6300 1.8GHz、メモリ:2GB、OS:WindowsXP FLASH、EEPROMへデバイスの容量一杯に書込、ベリファイ完了までの時間。 実行時間を表示するコードを埋め込んで測定(※リリース版は表示されません) [capt(PP)|http://star.gmobb.jp/koji/data/avrhpp_test01.JPG] [capt(HVS)|http://star.gmobb.jp/koji/data/avrhpp_test02.JPG] !確認済デバイス AT90 S1200, S2313 /Tiny 2313, 13A, 45, 85, 861A /Mega 8, 88P, 168P, 328P, 164P, 644P, 1284P, 128#1, 8535 *#1. ISP書込みできなくなったデバイスでIDが正常に読めない報告あり。(eNasty様)詳細はコメント欄参照。 !8ピンデバイスの接続について [ChaNさんの|http://elm-chan.org/works/avrx/report.html]回路図(8/14ピン専用)では7ピン(SDO)に2つのTRと抵抗が接続されていますが、このライターではその役割をファームで行っているので不要です。7ピン(SDO)はBUSY(PB7)に接続するだけです。 !変更履歴 *[2010.11.19] ページサイズが256バイトのデバイスへフラッシュの書込ができない不具合を修正。 *[2010.11.21] AVRPP R0.43bベースで再構築。特定のデバイスでヒューズの書込が失敗する不具合を修正。 *[2011.11.30] AT90S1200/S2313等、消去とヒューズ書込の完了をポーリングしないデバイスでタイムアウトエラーになる不具合を修正。 *[2012.11.17] ATmega164(及びmega324)のEEPROMの書込みができない不具合を修正。(Mark6様のご報告により解決。コメント欄参照) http://star.gmobb.jp/koji/data/avrhpppic2.JPG [写真大1|http://star.gmobb.jp/koji/data/avrhpppic3.JPG] [写真大2|http://star.gmobb.jp/koji/data/avrhpppic4.JPG] http://star.gmobb.jp/koji/data/avrhppadpt2.JPG 40ピン(8535系)変換アダプタと20ピン(TN26系)変換アダプタ [TOeNasty.zip|http://star.gmobb.jp/koji/data/TOeNasty.zip] !!関連リンク ELM-ChaNさんのページ http://elm-chan.org/index_j.html ATMELサンプル http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4440 ストロベリーリナックスAT90USB162ボードの使い方 http://strawberry-linux.com/products/at90usb162/ 昇圧する(DC-DCコンバータ) http://www.riric.jp/electronics/design/power/up-convert.html http://strawberry-linux.com/catalog/items?code=12004 http://akizukidenshi.com/catalog/g/gI-01165/ 千秋ゼミ ISPライター HIDaspx http://www-ice.yamagata-cit.ac.jp/ken/senshu/sitedev/index.php?AVR%2FHIDaspx#content_1_1 USB http://www.picfun.com/usbframe.html AVR Wiki http://www34.atpages.jp/avrwiki/wiki.cgi?page=AVRWiki //http://avrwiki.jpn.ph/wiki.cgi //http://wikiwiki.jp/avr/ AT90USBKEY(AT90USB1287)へ移植された方のブログ http://d.hatena.ne.jp/yoch/20120122 その他AVR関連の製作 AVR学習リモコンの製作 AVRとZ80でCP/M AVRとZ80でTK-80 Mega64でLED GAME ---- *製作された方は、確認済みデバイスへ追記しますので試したデバイスの報告いただけると助かります。お気軽にコメント下さい。 - 管理人 (2011年05月05日 14時13分01秒) *パラレルライタを欲しいと思っていたので制作したいのですが、アーカイブのhexファイルはそのまま使えないでしょうか? - eNasty (2011年06月05日 23時16分15秒) *そのままで使用できます。 - 管理人 (2011年06月06日 13時17分51秒) *迅速回答ありがとうございます。早速AT90USB162ボードを注文します。動かしたらデバイスの追記報告ができると思います。 - eNasty (2011年06月06日 14時42分28秒) *AT90USB162ボードを入手してFLIP3.4.3でavrhpp-firm.hexをLoadしようとすると、Cannot openfile となります。対策は解りませんでしょうか? - eNasty (2011年06月09日 14時40分29秒) *自己解決できました。フォルダ名に日本語が入っていたのが原因でした。 - eNasty (2011年06月09日 16時06分41秒) *遅くなりましたが動作確認報告です。ATMEGA168P,ATMEGA328Pに加えてATMAGA128も確認できました。ただ、狙いであったFUSE書き損ないのATMEGA128はデバイスIDが"1E-97-FF"と表示(Unknown device)されて、復活の目論みは外れてしまいました. - eNasty (2011年06月16日 00時32分15秒) *ご報告ありがとうございます。-q オプションは試されましたか。 - 管理人 (2011年06月16日 04時07分42秒) *フォローありがとう御座います。早速試してみましたが改善は見られませんでした。COMポート制御ISPアダプタで書込み、"Verifying Passed"と表示されたあと、よくよく見ると、FHとFLの指定が逆でSPIENを1にしてしまったためとISPアクセスが出来なくなっただけと思っていたのですが。 - eNasty (2011年06月16日 23時19分05秒) *ご確認ありがとうございます。-q オプションでだめとなるとちょっとわかりませんね。後は望みは薄いですが回路図のC2とC4の0.1uFをはずして試すぐらいしか思いつきません。 - 管理人 (2011年06月17日 01時23分12秒) *再度のフォローありがとうございます。ただ、残念ながらNGのようです。 - eNasty (2011年06月17日 23時58分58秒) *そうですか。関連リンクの前の行に電圧のタイミングを少し変更したavrhpp-firm.hexを置きました。よろしければこちらを試してみていただけませんか。(-qオプションは付けないで) - 管理人 (2011年06月18日 02時36分14秒) *重ねてのフォローありがとうございます。こちらも試しましたが変化なしです。誤設定したFUSEビットは記録を見るとクロックが32KHz設定のようなので、この辺りにも問題がありそうには思うのですが。 - eNasty (2011年06月19日 00時08分47秒) *だめでしたか。何度もお手間を取らせて申し訳ありませんが、よろしければ同じところにTOeNasty.zipを置きました。添付の手順をお試しいただければと思います。 - 管理人 (2011年06月19日 03時27分21秒) *対策尽力ありがとう御座います。お蔭様で復活しました。大感謝です。(何故か全てのフューズビットが"1"になっていました。) - eNasty (2011年06月19日 14時54分29秒) *このライタ良いですね、早速Mega32u2+MAX662Aで組み立ててみました。Tiny45/2313 Mega8/88/168P/8535/1284PでOKでした。しかしAT90S1200/S2313はFailしました。Mega32Uではだめなのかな。 - Mark6 (2011年11月20日 21時29分32秒) *Mark6様。ご報告ありがとうございました。確認済デバイスに追記させていただきます。掲示板の方の書込も復活させましたのでご一読下さい。 - 管理人 (2011年11月23日 02時19分27秒) *AT90USBKEYで取り組んでますが、シグネチャすら読めてません。ロジアナでは問題ないようですが、アドレスセットの後データ読み出しに反応ない状況です。進展しましたらまた報告いたします。 - yoch (2012年01月17日 00時54分47秒) *今度はスト・リナDaVinci(mega32u4)で作ってみました。問題なく動作いたしました。 - Mark6 (2012年11月14日 21時45分54秒) *mega164PのEEPROMですがページサイズがDatasheetだと4byteのところAVRpp.cで8になっています。これを修正したら正常に書き込めました。またmega324も同様に修正要です。 - Mark6 (2012年11月17日 13時52分29秒) *ご報告、感謝致します。修正しておきます。 - 管理人 (2012年11月17日 15時39分58秒) *初歩的な質問ですみません。 ATMELのサンプルソフトUSB HID Genericは大きく3個のホルダーに分割されているようですが、その中のどれをどのように使用すればよろしいでしょうか?? - ピグピグ (2014年05月07日 16時20分31秒) *series4, series2, series6 の数字が製作するライタに使うAVRの型番の末尾と一致するものです。例えばAT90USB162ならseries2です。本記事通りにこのボードを使って製作し、改造せず使うならコンパイル済みのバイナリを書き込めばよいので必要ありません。 - 管理人 (2014年05月07日 16時37分40秒) *お返事ありがとうございます。そうすると、Series2のホルダの中にあるDemoホルダの中のhexをボードに搭載のAT90USB162に書き込むということで宜しいでしょうか?? まだ製作途中なのですが、このボードにはISPの端子も付いていますね。他の書き込み機を使って事前にこのボードへの書き込みをしておくということは出来るのでしょうか?? 色々とすみません。 - ピグピグ (2014年05月08日 17時43分02秒) *状況が良く分かりませんね。まず、記事どおりに作成されるのか、改造されるのかをお答えください。 - 管理者 (2014年05月08日 17時58分58秒) *この記事通りに作らせていただくつもりでおります。ストリナのボードもオリジナルのままです。 - ピグピグ (2014年05月08日 18時22分54秒) *READMEファイルを良く読めば良かったのですが、すみません。大きな勘違いをしていたようで、、この記事通りに制作すれば、avrhpp-firm.hexをボードのAT90USB162にに書き込めば、USB HID Generic等は関係なく書き込み動作が行えるという理解で宜しいでしょうか? - ピグピグ (2014年05月08日 18時56分46秒) *その通りです。 - 管理者 (2014年05月08日 20時07分16秒) *度々すみません。この記事を使用させていただき、それなりのライターが出来上がったつもりなのですが、avrhpp-firm.hexのファイルはどの様にAT90USB162に書込みすれば宜しいでしょうか?? ISPで書込みをしようとしましたが、うまくいきません。 - ピグピグ (2014年05月12日 01時24分05秒) *話が長くなりそうなので、スレッドを立てました。そちらでお願いします。[[BBS-掲示板/11|BBS-掲示板/11]] - 管理者 (2014年05月12日 02時19分05秒) *このライター、予想以上にすごいですね。私の早トチリや知識不足でNekojavaさんには大変ご迷惑をお掛けしましたが、先頃2枚目のUSB162 - ピグピグ (2014年05月21日 10時57分22秒) *ボードにてやっと完成。(1枚目は再起不能)昨日より使用させて頂いておりますが、ISPではどうにもならなかった書き損じの石がバリバリ復活して行きます。高電圧パラレルライターの存在は知っていたのですが、PCのポートの問題もあり諦めておりましたが、このライターはUSB接続でチョちょいです。是非諦めている方にはお勧めです。(但し、私のように迷惑を掛けないように、、) - ピグピグ (2014年05月21日 11時05分54秒) *無事に動いて何よりです。ご報告ありがとうございました。 - 管理者 (2014年05月21日 13時44分23秒) *VCCの制御Trですが、RN2202では非常に不安定でした。デバイスに十分な電圧が印加されないようです。Chanさんの回路を参考にして、RN2205に変更したら安定して動作するようになりました。対象デバイスは、ATtiny2313A-PUです。情報まで。 - nhole (2014年09月16日 16時34分55秒) *情報ありがとうございます。今まで特に問題が無かったので気にしていなかったのですが、確かにRN2205の方がベース電流が多く流れるのでその方がよさそうです。様子見で同様の報告があれば回路図を修正したいと思います。 - 管理人 (2014年09月16日 22時36分26秒) {{comment}}