Top
HIDaspx
DownLoad
HIDasp高速化
制作
AVR関係
AVR_Monit
AVR_term
W32_term
HIDmon88
HIDtester
usbRS232
Arduino2313
デジタルテスター
ATmega88生活
KeyBoardマニア
KeyBoardマニアII
Arduino400
PICライター
ARMライター
赤外線リモコン
ARM
STM32ブートローダー
STM8S-Discovery改造
STM8S-OpenOCDライター
LPCXpresso
LPC用ブートローダー
NXP用LPCUSB
NXP用ブートローダー
MARY基板
LPC1114FN28
OpenOCD JTAGアダプター
OpenOCDビルド方法
arm-gccビルド方法
mapleIDEの改造
libmapleで仮想COM
PIC32
PIC32MX
Pinguinoで遊ぼう
ブートローダーを作る
シリアルブートローダー
USB仮想シリアル
USBカスタムデバイス
USB簡易モニター
USBオシロスコープ
USBホスト
PIC32でBluetooth
USBAudio
USBStudy
VGA出力に挑戦
BASICを動かす
WinUSB
勝手に改蔵*PIC32
PIC18F
HIDブートローダー
AVR/PIC両用ライター
ARMライター
usb汎用クラス
usbシリアル変換
usbキーボード変換
sdccを使いこなす
mcc18を使いこなす
HIDmon-2550
HIDmon-14K50
PICmonitor
試行錯誤の記録
UBWを試す
旧HIDboot
PIC18F2550試用記
PIC18F4550試用記
その他マイコン
NEC78K
RX62N
SH2A
H8
FM3
XPからubuntuに乗り換え
Android
Xen-hypervisor
Windows8カスタマイズ
開発日記
2015-04
ノウハウ
AVRUSB_Tips
HIDasp情報
汎用USB-IO
・
リンク
フリースペース
ゲストブック
旧コンテンツ
WinVista
インターフェース考
最新の20件
2022-07-25
2008-10
HIDasp高速化
H8/3048F
AutoTicketLinkName
2021-12-11
FormattingRules
2021-12-08
PukiWiki/1.4/Manual/Plugin/O-R
PukiWiki/1.4/Manual/Plugin/L-N
PukiWiki/1.4/Manual/Plugin/V-Z
PukiWiki/1.4/Manual/Plugin/A-D
PukiWiki/1.4/Manual/Plugin/E-G
PukiWiki/1.4/Manual/Plugin/S-U
PukiWiki/1.4/Manual/Plugin/H-K
2020-02-23
YukiWiki
PHP
PukiWiki
WikiWikiWeb
2018-12-19
SandBox
InterWiki
2015-05-07
2015-04
2015-05-02
MenuBar
編集
差分
HIDasp情報 の編集
-- 雛形とするページ --
(no template pages)
From:[[HIDasp]] ''このページは瓶詰堂さんが2007.3月に公開されたオリジナル版HIDaspに関する情報です'' [[瓶詰堂さんのHPへのリンク:http://www.binzume.net/library/avr_hidasp.html]] のほうを見てください。 瓶詰堂さんのHPは最新版のHIDaspに変わっていますので、~ 下の情報はもう当てはまらなくなっております。 ---- ***HIDaspとは? [#p8e5e109] -USB経由でAVRに書き込むライターの一種。~ -''ATtiny2313''で作れるUSBライターはこれしか無かったので、とりあえず''作る''。 -自分が作った奴は、ここの''Wikiの左上''に画像を貼り付けてあります。 *質疑応答 [#n181b201] #contents ---- ***Q1:HIDaspが動かん。 [#e9b8a78e] -パソコンに挿すと、不明なUSB機器になる。 -動かんのじゃあ! ''A1:''USBのD+、D−はどこに繋ぎましたか? --D+は PB1とPD2(==INT0)の両方に接続する必要があります。 --D−は PB0に繋ぎ、1.5kΩでプルアップする必要があります。 -[[AVRUSB:http://www.obdev.at/products/vusb/index.html]]のページを見るとD+,D−はPD2,PD3なので間違えやすいです。~ http://www.obdev.at/Images/vusb/circuit-zoomed.gif -↑D+、D−の接続は上の回路と違うので注意しましょう。 ---- ***Q2:HIDaspは遅い? [#s131d559] -2K書き込むのにVerify含めて10秒以上待たされるぞ! ''A2:''avrspx の-dオプションを与えましょう。 C:> avrspx -ph -d3 main.hex とか、します。自分はavrspxのソースを書き換えたので、-phと-d3は不要になりました。 -これで2秒くらいに短縮されます。 ---- ***Q3:なんでHIDaspなの? [#v816e86d] ''A3:''なにかとUSBのほうが手軽だからです。 -実はChaNさんのシリアルライタの方が高速なんですが、 -5V電源を別に用意しないといけないのが面倒です。 -それに、最近のインテル3シリーズのマザーではレガシーポートが消滅しつつありますので。 -今のところATtiny2313で作れるUSBライターがこれしか無かったというのもあります。 -USBtoシリアルのケーブルでシリアルライタを使うという手もありますが、やはり5Vをどうするかという点があります。 -しかし、シリアルコンソールとして使えないという問題もありまして、今は微妙なところですねー。 -ChaNさんのFT232+シリアルというのが良さそうですが、配線が微細なので不器用な向きにはつらいですね。 ---- ***Q4:HIDaspのAVR側ソースをビルドするとでかくなるんですけど・・・ [#w0369d46] ''A4:''たしかに2Kに入りませんね。ちょっと待ってください。 -WinAVRのバージョンを最新でなく、2つくらい前に戻すとオリジナル版と同じHEXが作れるようです。 -GCC4ベースでなく、GCC3ベースのほうがAVRにとっては吉なのかもしれませんね。 -それでも、2Kから''僅か12バイト''しかお釣りが来ませんが・・・。 ---- ***Q5:AVR側のコードサイズはもっと縮まんかのー? [#p76708d7] ''A5:方法はあります。'' -全部アセンブラで書く ---そんなアホな!。 -crt.Sに相当する部分を最適化する。 --WinAVRのライブラリソースにcrt1.Sが含まれています。 --これは、実際のATtiny2313のものと微妙に違ってるんですが --それを改造して、小さなcrt.Sを作ります。~ http://psp.dip.jp/web/upload.cgi/crt_S.zip --リンクするときは gccのオプションに -nostdlib を追加して、標準のcrt.oがリンクされないようにしておきます。 改造方法は -まず、割り込みテーブルを削る。 -- initとint0以外は使ってないのでばっさりと。 -次に、dataのコピーとbssのクリアを最適化する。 --ATtinyのSRAMは128バイトで、アドレス上位が常に0なので --上位も含めてポインタ比較する必要はありません。 --dataの直後にbssが来るというのが事前に分かっているので、bssクリア前にポインタセットアップするのをサボります。dataのポインタのお古をそのまま使います。 -dataのコピーとbssのクリアは、while()なループになっているのを do { } while()型にランクダウン。 --これは、ループ末の条件比較へダイブしているrjmpをコメントアウトするという意味です。 --実際にこれをやると、data,bssどちらかが0バイトのときにバグるので、そこは適切に対処です。 ~ -あとは、固定データをPRGMEMではなくEEPROM上に移すとか。 --アクセスルーチンが余分にいりますけどね。 ---- ***Q6:実際にAVRに書き込むと、時々AVRデバイスを認識しない。 [#t93be3c9] ''A6:''リセット直後に書いていませんか? -どうやらリセットして20mSしか待っていないようですが。 -avrspxのソースをいじって、長くしてみます。 -どうですか? ---- ***Q7:これ作る前にどうやってATtiny2313に書き込むのだ。 [#i41076fe] ''A7:''ChaNさんのシリアルライターを作ったのじゃ! -http://elm-chan.org/works/avrx/report.html -上記リンクの ''COMポート用ISPアダプタ回路図'' というやつです。 -74HCが無かったので、手持ちの適当な74LS86(XORゲートだが片方をGNDにして単なるバッファ化)で動かしました。 -TTLの入力抵抗は10k〜20kくらいに下げます。 -本当はCOMポートが±10Vくらい振れるので逆流防止ダイオード入れたほうが良いけれど入れてません。 -TTL電源の5Vが必要ですが、これはシリアルから確保できないので書き込みターゲットから借用してます。(書き込みターゲット=USBライタ) -ChaNさんの回路ではバッファの3ステートオープンスイッチがありますがLS86では無理なので省略です。 ~ -ここだけの話、%%HIDaspよりシリアルライターの方が書き込み速いし安定してるんだよねー。%% --制作直後はいくつかの点で不安定でしたが、今は安定しています。誤解を招く表現をしてしまいました。 ---- ***Q8:なんで5Vに整流用ダイオード2個挟んで減圧するの? [#ufb824d5] ''A8:''USBの1.5kΩのプルアップ抵抗は3.3V(〜3.6V)に繋ぐ必要があります。(5Vでは高すぎ) -それと、D+、D−ラインの受電側差動アンプのレベル範囲が0.8V〜2.5Vに設定されているので、5Vフルスィングするとエラーの原因になります。 -整流用ダイオードの代わりに3.3V〜3.6Vの減圧レギュレータを使用してもOKです。 -レギュレータを使用する場合は発振防止コンデンサを必ず入れましょう。 -さらに負荷側にも47μF以上の電解コンを入れておきます。 --そうしないと発振してしまい、出力をテスターで計ると4V以上になり、''壊したか''と錯覚します。 -どうしてもAVRを5Vで駆動したい場合はD+、D−に3.6VくらいのツェナーDiを入れるという方法もあります。 //--でも面倒くさいときは、ツェナーも入れずに直結してますけど、一応動いてます。 //--ついでにクリスタルの負荷コンデンサも入れてません。(つーか15pFとか持ってないもん) //--そんなこと、とても%%素人には%%人にはお勧め出来ない。 //--恐らくは、ホストコントローラ側のコンパレータの性能とか0〜5Vの範囲を超えたオーバーシュート波形発生時のクランプ特性などに依存するので //--全てのパソコンでOKなわけはないです。 //--たまたま自分のPCで動いてるだけ・・・ハハハ、お勧めできんわ。 ---- [[AVRUSB_Tips]] [[HIDasp高速化]] -- 実験記録 ---- #ref(http://psp.dip.jp/counter/dream.cgi?id=HIDasp&name=a.gif);
タイムスタンプを変更しない
From:[[HIDasp]] ''このページは瓶詰堂さんが2007.3月に公開されたオリジナル版HIDaspに関する情報です'' [[瓶詰堂さんのHPへのリンク:http://www.binzume.net/library/avr_hidasp.html]] のほうを見てください。 瓶詰堂さんのHPは最新版のHIDaspに変わっていますので、~ 下の情報はもう当てはまらなくなっております。 ---- ***HIDaspとは? [#p8e5e109] -USB経由でAVRに書き込むライターの一種。~ -''ATtiny2313''で作れるUSBライターはこれしか無かったので、とりあえず''作る''。 -自分が作った奴は、ここの''Wikiの左上''に画像を貼り付けてあります。 *質疑応答 [#n181b201] #contents ---- ***Q1:HIDaspが動かん。 [#e9b8a78e] -パソコンに挿すと、不明なUSB機器になる。 -動かんのじゃあ! ''A1:''USBのD+、D−はどこに繋ぎましたか? --D+は PB1とPD2(==INT0)の両方に接続する必要があります。 --D−は PB0に繋ぎ、1.5kΩでプルアップする必要があります。 -[[AVRUSB:http://www.obdev.at/products/vusb/index.html]]のページを見るとD+,D−はPD2,PD3なので間違えやすいです。~ http://www.obdev.at/Images/vusb/circuit-zoomed.gif -↑D+、D−の接続は上の回路と違うので注意しましょう。 ---- ***Q2:HIDaspは遅い? [#s131d559] -2K書き込むのにVerify含めて10秒以上待たされるぞ! ''A2:''avrspx の-dオプションを与えましょう。 C:> avrspx -ph -d3 main.hex とか、します。自分はavrspxのソースを書き換えたので、-phと-d3は不要になりました。 -これで2秒くらいに短縮されます。 ---- ***Q3:なんでHIDaspなの? [#v816e86d] ''A3:''なにかとUSBのほうが手軽だからです。 -実はChaNさんのシリアルライタの方が高速なんですが、 -5V電源を別に用意しないといけないのが面倒です。 -それに、最近のインテル3シリーズのマザーではレガシーポートが消滅しつつありますので。 -今のところATtiny2313で作れるUSBライターがこれしか無かったというのもあります。 -USBtoシリアルのケーブルでシリアルライタを使うという手もありますが、やはり5Vをどうするかという点があります。 -しかし、シリアルコンソールとして使えないという問題もありまして、今は微妙なところですねー。 -ChaNさんのFT232+シリアルというのが良さそうですが、配線が微細なので不器用な向きにはつらいですね。 ---- ***Q4:HIDaspのAVR側ソースをビルドするとでかくなるんですけど・・・ [#w0369d46] ''A4:''たしかに2Kに入りませんね。ちょっと待ってください。 -WinAVRのバージョンを最新でなく、2つくらい前に戻すとオリジナル版と同じHEXが作れるようです。 -GCC4ベースでなく、GCC3ベースのほうがAVRにとっては吉なのかもしれませんね。 -それでも、2Kから''僅か12バイト''しかお釣りが来ませんが・・・。 ---- ***Q5:AVR側のコードサイズはもっと縮まんかのー? [#p76708d7] ''A5:方法はあります。'' -全部アセンブラで書く ---そんなアホな!。 -crt.Sに相当する部分を最適化する。 --WinAVRのライブラリソースにcrt1.Sが含まれています。 --これは、実際のATtiny2313のものと微妙に違ってるんですが --それを改造して、小さなcrt.Sを作ります。~ http://psp.dip.jp/web/upload.cgi/crt_S.zip --リンクするときは gccのオプションに -nostdlib を追加して、標準のcrt.oがリンクされないようにしておきます。 改造方法は -まず、割り込みテーブルを削る。 -- initとint0以外は使ってないのでばっさりと。 -次に、dataのコピーとbssのクリアを最適化する。 --ATtinyのSRAMは128バイトで、アドレス上位が常に0なので --上位も含めてポインタ比較する必要はありません。 --dataの直後にbssが来るというのが事前に分かっているので、bssクリア前にポインタセットアップするのをサボります。dataのポインタのお古をそのまま使います。 -dataのコピーとbssのクリアは、while()なループになっているのを do { } while()型にランクダウン。 --これは、ループ末の条件比較へダイブしているrjmpをコメントアウトするという意味です。 --実際にこれをやると、data,bssどちらかが0バイトのときにバグるので、そこは適切に対処です。 ~ -あとは、固定データをPRGMEMではなくEEPROM上に移すとか。 --アクセスルーチンが余分にいりますけどね。 ---- ***Q6:実際にAVRに書き込むと、時々AVRデバイスを認識しない。 [#t93be3c9] ''A6:''リセット直後に書いていませんか? -どうやらリセットして20mSしか待っていないようですが。 -avrspxのソースをいじって、長くしてみます。 -どうですか? ---- ***Q7:これ作る前にどうやってATtiny2313に書き込むのだ。 [#i41076fe] ''A7:''ChaNさんのシリアルライターを作ったのじゃ! -http://elm-chan.org/works/avrx/report.html -上記リンクの ''COMポート用ISPアダプタ回路図'' というやつです。 -74HCが無かったので、手持ちの適当な74LS86(XORゲートだが片方をGNDにして単なるバッファ化)で動かしました。 -TTLの入力抵抗は10k〜20kくらいに下げます。 -本当はCOMポートが±10Vくらい振れるので逆流防止ダイオード入れたほうが良いけれど入れてません。 -TTL電源の5Vが必要ですが、これはシリアルから確保できないので書き込みターゲットから借用してます。(書き込みターゲット=USBライタ) -ChaNさんの回路ではバッファの3ステートオープンスイッチがありますがLS86では無理なので省略です。 ~ -ここだけの話、%%HIDaspよりシリアルライターの方が書き込み速いし安定してるんだよねー。%% --制作直後はいくつかの点で不安定でしたが、今は安定しています。誤解を招く表現をしてしまいました。 ---- ***Q8:なんで5Vに整流用ダイオード2個挟んで減圧するの? [#ufb824d5] ''A8:''USBの1.5kΩのプルアップ抵抗は3.3V(〜3.6V)に繋ぐ必要があります。(5Vでは高すぎ) -それと、D+、D−ラインの受電側差動アンプのレベル範囲が0.8V〜2.5Vに設定されているので、5Vフルスィングするとエラーの原因になります。 -整流用ダイオードの代わりに3.3V〜3.6Vの減圧レギュレータを使用してもOKです。 -レギュレータを使用する場合は発振防止コンデンサを必ず入れましょう。 -さらに負荷側にも47μF以上の電解コンを入れておきます。 --そうしないと発振してしまい、出力をテスターで計ると4V以上になり、''壊したか''と錯覚します。 -どうしてもAVRを5Vで駆動したい場合はD+、D−に3.6VくらいのツェナーDiを入れるという方法もあります。 //--でも面倒くさいときは、ツェナーも入れずに直結してますけど、一応動いてます。 //--ついでにクリスタルの負荷コンデンサも入れてません。(つーか15pFとか持ってないもん) //--そんなこと、とても%%素人には%%人にはお勧め出来ない。 //--恐らくは、ホストコントローラ側のコンパレータの性能とか0〜5Vの範囲を超えたオーバーシュート波形発生時のクランプ特性などに依存するので //--全てのパソコンでOKなわけはないです。 //--たまたま自分のPCで動いてるだけ・・・ハハハ、お勧めできんわ。 ---- [[AVRUSB_Tips]] [[HIDasp高速化]] -- 実験記録 ---- #ref(http://psp.dip.jp/counter/dream.cgi?id=HIDasp&name=a.gif);
テキスト整形のルールを表示する
ログインまたはアカウント作成