初歩のhidspx (コマンドプロンプトに不慣れな方のための)  

 AVRマイクロコンピュータの書き込みにhidspxを使ってみようと考える方の参考になればと考えてダウンロードから書き込みまでの基本的な操作を私流に書いてみます。開発されたsenshuさんの意図を十分伝えられない点はご容赦下さい。
hidspxライティングソフトはChaNさんが開発されたavrspをHIDaspxライタで使用できるように機能を拡大した上にさらに多くの機能が盛り込まれています。ここではAVRに書き込む時の基本的な機能に絞って述べます。
手元には WinXP だけしかありませんのでそれ以外のOSの場合はこれに準じて考えてください。
また、ライタにはsenshuさんが開発されたHIDaspx(エイチ・アイ・ディー・アスペクスと読みます)を使います。

ソフトウエアのダウンロード 
ライティングソフトの準備 
hidspxG.exe(hidspxのGUI)を使う 
コマンドプロンプト窓でコマンドラインを使う方法 
拙作のGUI 「HAG」 を使う方法 
hidspx雑感 
hidspx-fuse設定の安全性 








ソフトウエアのダウンロード

 開発者senshuさんのサイト
http://www-ice.yamagata-cit.ac.jp/ken/senshu/へ行き、2ページほど下がったところのダウンロードアーカイブ表を見つけます。
その1行目の「hidspxとHIDaspx(2種類のGUIを同梱) hidspx-2009-1125.zip 」と書かれている欄の
 hidspx-2009-1125.zip が求めるファイルです。このzipファイルをダウンロードします。
日付は更新されると変わりますが、2009-0817以降のものを使用します(それ以前のものは使わないでください。この版からfuse設定の安全性が高くなっています。)
もちろん、zipファイルは解凍しておきます。



                                              



ライティングソフトの準備

 zipファイルを解凍すると沢山のファイルが見えますが、後の操作が便利になるように作者senshuさんが用意したバッチファイルを使って必要なファイルをコピーします。
その手順は次のとおりです。
@解凍したhidspx-20yy-mmddフォルダを開いてさらにbinフォルダを開きます。
Asetup.batをダブルクリックするとコマンドプロンプトが起動してsetup.batが実行されます。
B「↑にセットアップをしますか[Y/n]」に大文字のYを入力してエンターキーを押します。
 全体として次の表示があってコピーが完了します。
     ================= hidspx をセットアップします ====================
     C:\binフォルダ にコピーを希望する場合は、[Y]を大文字で入力のこと。
     ↑にセットアップをしますか[Y/n]Y
     必要なファイル群をC:\binにコピーします。
     ==== [COPY to C:\bin] ====
     hidspx.exe, hidspx-gcc.exe hidspx.ini, libusb0.dll, fuse.txt, usbtool.exe,
     hidspxG.exe, hidspx-GUI.exe
     firmware\genserial.awk , firmware\main-12.hex , firmware\firmprog.bat
     ..\HIDaspx.pdf ..\hidspx_tips.pdf ..\Readme-j.txt ..\avrx-tool.txt
     ==== hidspx setup finished ====
     続行するには何かキーを押してください . . .
Cc:\binフォルダを開いてファイル群がコピーされているのを確認します。

この中でさし当たって操作が必要なのは hidspxG.exe です。右クリックでドラッグしてデスクトップにショートカットを作って置きましょう。ショートカットをダブルクリックするとhidspx.exeのGUIが画面に現れます。
その他で必要なのはReadme-j.txtです。できるだけ読むように心がけます。hidspxを使いながら読むと多くのヒントが得られます。


                                             
 



hidspxG.exe(hidspxのGUI)を使う

デスクトップに設定したhidspxGのショートカットをダブルクリックして、simpleのチェックをはずすと次のような画面になります。

最初にライタを接続せずに RSTボタンを押してみます。デバイスがもちろん読みとれないのでerrorが出ます。
次に、ライタを接続してターゲットをつなぎ電源を含めて完全な接続をして、RSTボタンを押します。ターゲットのデバイス名が表示されます。
もし、errorになるなら、接続が完全でないか、デバイスが発振していないケースが多いのでチェックします。一度使用したデバイスは発振条件が変わったために動かないケースがあります。
基本的の使い方は上の図のとおりです。fuse設定以外は戻せなくて困ることはないと思いますので、それぞれのボタンを試してみてください。
不明な点はこのサイトに聞いていただいても、senshuさんのサイトに聞いていただいても結構です。

hidspxを使われた方は
senshuさんのサイトへ是非報告をお願いします。
また、このページの説明については掲示板やメールで感想や質問をいただくと幸甚です。


                                              



コマンドプロンプト窓でコマンドラインを使う方法

準備として、hidspx.exeのショートカットをデスクトップに作っておき、ショートカット名を hidspx に変更しておきます。

基本的な操作は次のものです。(多くの機能がありますが、通常のプログラム開発ではこの程度しか使っていません)
 1.ターゲットボードのAVRデバイスの情報を読みとる。(接続が正常か、のチェックにも使う) hidspx -r
 2.fuse情報を読み出す。 hidspx -rf
 3.プログラムを読み出す。hidspx -rp
 4.プログラムを書き込む。 hidspx filename.hex
 5.プログラムを照合する。 hidspx -v filename.hex
 6.fuseを書き換える。  hidspx -fL0xXX -fH0xXX -fx0xXX    (XXは16進数)
 7.EEPROMを読み出す。hidspx -re
 8.EEPROMに書き込む。  hidspx filename.eep
 9.プログラムを消去する hidspx -e
実際には7,8はほとんど使っていません。


上の写真のように窓を起動しておいて、左下の「hidspx.exe」をコマンドプロンプト窓にドラッグアンドドロップします。
スペースを一つ空けてコマンドラインの続きを入力して、エンターキーを押すと実行されます。。
プログラムを書き込むときは、.hexファイルのあるフォルダを開いて、.hexファイルをコマンドプロンプト窓にドラッグアンドドロップできます。タイプしなくてもできます。
コマンドプロンプト窓の上手な使い方
 コマンドプロンプトを起動します。その窓のタイトルバー(「コマンドプロンプト」と書かれているところ)を右クリックして、「プロパティ」を開きます。「オプション」タブの「簡易編集モード」にチェックを付けて、また、「重複する古い履歴を破棄」にもチェックを付けます。「ok」をクリックした後に、「このウインドウを起動したショートカットを変更する」を選んで終了します。
この設定によって次の便利な機能が使えます。コマンドライン操作が極めて軽快になります。
1.上下の矢印キー「↑と↓」で以前に入力したコマンドラインが再度使えます。
  (同じコマンドをタイプする必要がなくなります。)
  また、「← → BS Del」キーを使って編集もできます。
2.画面をドラッグすると文字色が反転して、右クリックでコピーできます。コマンドプロンプトへのペーストは
  右クリックでできます。(テキストエディタへのペーストは通常の方法でします。)
基本操作の 1,2,3を試してみてください。

デバイスに書かれたプログラムを name.hex の名で保存したいときは hidspx -rp>name.hex でファイルにリダイレクトできます。ファイルが置かれる場所はコマンドプロンプトのカレントディレクトリです。見失わないようにしましょう。
fuseは誤って書き換えすると発振子や外部発振器の用意が必要になることがあります。理解できるまでは指定された設定だけにしましょう。また、設定には 0xE4 の代わりに2進数の 11100100 と書くことができます。


本来はpathのとおった場所に hidspx などを置いて、タイプ入力するものですが、ドラッグアンドドロップで使いやすくするためにこのようにしています。
この説明以外の多くの素晴らしい機能は付属のマニュアルをご覧下さい。



                                             
 



拙作のGUI 「HAG」 を使う方法

 * 改めて見直すと欠陥の多いwrapperですが基本的な使途には耐えると思って書きます。やがては修正すべきでしょうが。 *

 HAG はdelphiで書いたソフトで、hidspxのコマンドをボタン操作で自動的に生成するものです。人とhidspxの仲立ちをするだけで、AVRへの働きはすべてhidspxがします。タイピングを少なくしてマウスでhidspxを操作するために作りました。

上記の準備の上に次の追加をします。
hag.zip をダウンロードして解凍します。その中の hag.exe と hag.ini を上記の0myHIDフォルダにコピーします。
C:\0myHIDフォルダには次のファイルが含まれることになります。
 fuse.txt
 hag.exe
 hag.ini
 hidspx.exe
 hidspx.ini
 libusb0.dll

このうちの hag.exe のショートカットをデスクトップに作ります。HAGを実行すると次の画面が現れます。


主な基本操作を説明します。
.@の「読み出しボタン」:接続が正しく、ライタとターゲットが正常に働いていると
  デバイス名が表示されて、fuseも読み出されます。接続後にまずこのボタンを押します。
  同時にターゲットにリセットがかかりますから、リセットしたいときに押すこともできます。
  操作の途中でfuseデータが非表示になったときに押し直します。

2.Aの「fuse書き込みボタン」:左の窓に16進数で書いて(小文字可)ターゲットに書き込みます。
  間違って書き込むとクロック指定が変わって困るときがあります。間違いの無いデータが必要です。

3.プログラムの操作:Bのメニュー選択で「プログラム」を選びます。右側の1の窓が現れます。
  プログラムを書き込むとき:白い窓の右のボタンを押して.hexファイルを選択するか、または、
   ドラッグアンドドロップしてファイルを決め、「書き込みボタン」を押します。
  プログラムを読み出すとき:「読み出しボタン」を押します。hexファイルが青地の窓に白地で表示されます。
   プログラムの大小程度は判断できます。
  読み出したプログラムを保存するとき:まず「保存ボタン」を押します。
   ファイル名指定用のダイアログボックスが現れるので適当なフォルダを決めて、ファイル名を.hexを付けて
   指定します。okボタンで保存されます。青地の窓に正常かどうかの表示がありますので注意してください。
   前もってファイル名を白い窓に書いても無視されます(バグです)。
  プログラムのベリファイをする:白い窓にプログラムを選んで(またはドラッグアンドドロップして)
   「ベリファイボタン」を押します。結果は青地の窓に表示されます。(内容はテキストエディタにコピーできます)

4.EEPROMの操作:Bのメニュー選択で「EEPROM」を選びます。右側の2の窓が現れます。
   書き込みその他の操作は「プログラム」の時と同じです。

5.プログラムの消去:再書き込みの時は必要ないのですが、使用を終えて保存するときは消去しています。
   Bのメニューで「その他」を選んで、「プログラム消去ボタン」を押します。
   (ついでに、fuseも内蔵RC発振に戻しておく方が良いでしょう)

  *Chidspxコマンドライン:HAGがhidspxに渡しているコマンドとオプションが表示されます。
   同じオプションは後のものが優先されます。
  *Dコマンドラインオプションの使い方:hidspx.iniにオプション -ph と -d4 が書かれていますので、
   通常の使用では -d の変更を書く程度です。クロックが十分速いときは -d1 などとすると短時間に読み書き
   されます。ただし、fuseの書き込みは -d10 に固定しています。

  fuseの書き換え以外は操作によって後々困ることはありません。その他のボタンは試してください。

  自前のためにHAGについて書きましたが、senshuさんのzipファイルに含まれる hidspx-GUI や hidspxG は完成度の高いGUI-wrapperです。 そちらを使っていただく方がスマートだろうと思います。使い方は極端には変わらないと思います。(hidspx-GUIは .NET FW が必要です)



                                              



hidspx雑感

 AVRをはじめた頃、ChaNさんのサイトで抵抗4本だけのライタを知り、それをきっかけに新しいライタを作って使うことになりました。
辿りついたのが COMポートSPI Bridge ライタ です。COMポートからの信号を74HC04で受けてTiny2313で制御して書き込むものです。
これらは一貫してChaNさん製作のライタソフト avrsp(多分シリアルプログラミングだと思う)で動作していました。
このavrspがT.K.さんによって拡張されてavrspxとなり、引き続いてsenshuさんが1個のTiny2313でUSBで使えるライタ HIDaspx を開発され、それに対応できるようにavrspxを改良されました。当初は改良が完結するとavrspxの名に戻す予定だったそうですが、拡張された機能が多くなって hidspx のままの方が混乱が起こらないだろうとのことで hidspx で今後も改良を進められるようです。
添付のマニュアルには詳細に書かれていますが、覚えきれないほどの機能が盛り込まれています。コマンドラインで使うか、hidspx-GUIで使うとすべての機能が使えます。

hidspxはavrspおよびavrspxの機能を包含していますので、今までに作ったavrspまたはavrspxが使えるライタにはこれからも使えることになります。
ChaNさんのサイトにあるUSB接続の高速ライタもこのhidspxで使えますからAVRシリアルライタにはこのソフトが基本になると考えて良いかと思います。

いずれの形であっても hidspx を使われたらその結果をsenshuさんにレポートしていただくことをお願いします。多くの人の意見の集約でより使いやすいソフトができることになります。

なお、長期間に亘って使い続けてきた COMポートSPI Bridge ライタ ですが、HIDaspxを調べている内に使用頻度が高くなり、今では HIDaspx がメインになっています。


                                             
 



hidspx-fuse設定の安全性

 hidspx-200-0817版からfuse設定の安全性が高くなりました。
fuse設定のうち、 RSTDISBLビットはreset端子をI/O端子に変更するもので、これをプログラムするとresetが使えなくなり、一般のシリアルライタではプログラムを書けなくなります。
また、DWENビットはreset端子をデバグ専用端子に変更するもので同じくシリアルライタが使えなくなります。
いずれにしてもhidspxを用いるライタでは復元不可能ですから これらのビットはプログラムしたくはありません。この版からRSTDISBLビットは特別の記述でなければ変更できないし、DWENビットはプログラム禁止となっています。
不注意に対する安全対策が向上しました。これによって修復不可能なfuse設定は間違ってすることは無くなりました。(感謝)
hidspxの改良ですから、これを使うGUIソフトには自動的に反映されています。


                                             
 
TOPページへもどる




















 



                           


inserted by FC2 system