AVRライター「AVRspx」を作る
基板製作
- 編集中
- 低速ターゲットジャンパは不要と思われる(理由は後述)
完成品
これは試作品なのですが、意外と出来が良かったのでグラペで写真を撮ってやりました・・・。
- 部品面
- ハンダ面
実装
- 編集中
ケーシング
- 編集中
ISPケーブルの製作
仕様と製作
ISPケーブル-ICクリップ変換基板
仕上げ
- Atmel推奨の6ピンISPコネクタの側面にピンアサインを貼り付けることが出来るものを適当に製作しました。印刷してトンボに沿って裁断した後、ピンソケットの側面などにのり付けしてお使い下さい。ISPコネクタ用シール
使用準備
- はじめに
- USBaspには似た名称で様々なハードやソフトがあるため混同しやすいです。
USBasp | AVRライタ基板(原典) |
AVRdude | USBasp標準書き込みソフト(使い勝手が悪い) |
AVRsp | メジャーなライター(USBaspは除く)をサポートする使いやすいライティングソフト |
AVRspx | kkk氏がUSBaspx(後記)がAVRspxで使えるようにAVRspを改良したもの |
USBaspx | USBaspをAVRspxで使うために、USBaspのハードはそのままにファームウェアをUSBaspxというものに書き換えたもの |
- つまり、要約すると原典ではファーム-ソフトの組み合わせがUSBasp-AVRdudeの組み合わせであったところ、有志の改良によってUSBasp(同一ハード・ファーム違い)-AVRspxの組み合わせへと発展。今回は後者で行きます。
ドライバチップへのファームウェアの書き込み
- 既存のAVRライタを使う
- ISPケーブルで同一信号名を1対1で接続する
- ここでは送出側のバスパワー供給によって書き込むことを想定する
- 送出側
- 送出側のライターはバスパワーのジャンパを短絡して、相手にバスパワーを与える
- ロースピードターゲット、セルフプログラミングのジャンパは開放
- 受信側
- 受信側(新規ライター)のバスパワーのジャンパピンを短絡する
- ロースピードターゲット、セルフプログラミングのジャンパは開放
- \usbaspx113 20060830\binにある、ファームチップとして使っているチップ名のhexを書き込む。パワーインジケータが点灯したらおk
ドライバチップへのフューズビットの書き込み
- \usbaspx113 20060830\usbaspx.txtを参考に、使用しているドライバチップごとのフューズを、既存のライタを使って書き込む(-flと-fh、-fxオプション・・・後述)
- Mega48だったら、-fh11011101と-fl11010111
- fx11111111も必要なはずなんだが、なんか知らんがやらなくても動いてる感じ。
Windows用ドライバのインストール
- USBデバイスの検出の時に、ドライバの場所として\usbaspx113 20060830\win-driverを指定してやる(はず。)
- 複数のUSBasp(x)を同一(=同時なのだろうか・・・恐らく。)PCで使う場合
- ドライバの関係で問題が生じて使えないので次の作業を行う。
- ライタを1枚だけ接続した状態で、avrxpx.exe -pu --set-serial=XXXX(XXXXは4桁の英数字、デフォルトで0000)を実行する。
- USBasp serial number set to [0000].となりシリアル番号が設定される。
- 一度USBプラグを抜いて、再び差し込むと、OSはシリアル番号で監理するようになる。
- 別S/Nのライタが刺さると、OSはドライバのインストール画面を出す。
- ドライバの関係で問題が生じて使えないので次の作業を行う。
使い方
はじめに
- avrspx.exeを使って読み書きを行う。avrspx.iniで使用するライターに関する設定を行う。
- 書き込みソフトのavrsp(x)は、同一書式で様々な通信方式やライターを使えるので、avrspx.iniでライターの種類や通信方式を指定する。-pu(改行)-d4(改行)でUSBaspと通信速度を指定する。これは初期設定なので基本的に後では変えない。
avrspxの使い方
- DOS窓などでavrspx.exeの引数に焼くhexを取るだけ。DOS窓に2つを投げ込んで、半角スペースで区切る。(\avrspx.exe \hoge.hex)
- オプションはavrspx.exeを引数無しで実行すれば出てくるし、-?だかのヘルプコマンドもあるはず。
- Read code, data or fuse : -r{p|e|f}とあったら、Fuseを読みたいときには\avrspx.exe -rf
- Fuseを読むときは同じ場所にあるfuse.txtが読み込まれるので、それぞれのビットの意味が分かる。
- Fuseの書き換えは上位・下位8bit・拡張フューズ8bit単位で(-fh -fl -fx)。うっかり間違って変な値に書き換えると自己発振が止まったり、外部リセットが無効になったりしてISPで書き換えられなくなるなどメンドイことになるので注意。
おすすめ
- ただチップを書き換えるだけなら、avrspx.exeのショートカットを作ってそこにhexを投げ込むだけでいい。とても楽
avrspx.iniについて
- avrspx.iniに記述される中で、-puがUSBaspxを指定している。
- dオプションは通信速度の指定です。
- オリジナルのUSBaspは低速ターゲットジャンパでターゲットクロック1.5MHzを境に2段階で速度を切り替えていました
- avrspx.iniを使うとジャンパを使わなくても10段階以上に速度を変えられます。(マザボで流行ったジャンパフリーコンフィギュレーションか・・・)
- ジャンパ使ってハード的に変更も出来るのかも知れないけど、USBaspxを入れた場合ぶっちゃけジャンパの意味が無いのかも知れない。むしろ、あのジャンパを一度も使ったことが無い。
- avrspx_b10.txtに-dオプションの詳細が載ってます。-d4だと従来の低速モードより遅いようだけど、全く遅さは感じないのでデバイスを選ばない(1MHz以下)ということで-d4で十分だと思う。