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
編集
差分
HIDmon-2550 の編集
-- 雛形とするページ --
(no template pages)
[[PIC日記:http://psp.dip.jp/web/log/2009-05PIC.html]] [[PIC18F2550]] [[PIC18F4550]] [[HIDmon-14K50]] ---- **HIDmon for AE-18F2550 [#c1a44cd4] -AE-18F2550用のHIDmon です。 http://psp.dip.jp/web/jpg/ae18f2550.jpg 内容 -HIDmonとはHIDクラスのUSBデバイス内に実装されたマイコン用の簡易モニタのことです。 -マイコン内のROM,RAM,I/O PORTをUSB経由でPC上から自由に参照、変更するツールです。 --I/O PORTの操作については、Gainerや[[汎用USB-IO]]的な応用が可能です。 --RAM参照が可能なので、ユーザープログラム実行後のダンプを見ることも可能です。 --bootloaderとして使用することも出来ます。 -HIDmonに関する詳細は[[HIDmon88]]の項目をあわせてお読みください。 - ---- **ファームウェアDownload: [#y7f5f4f1] ''新バージョンのご案内'' -これまでhidmon-2550とhidmon-14K50は別々のソースアーカイブで公開しておりましたが、ソース統合と高速化 を施したものを公開します。[[HIDブートローダー>pic18boot]]を参照してください。 旧バージョン: [[hidmon-0814.zip:http://psp.dip.jp/web/upload.cgi/PIC/hidmon-0814.zip]] [[hidmon-14kの使い方]] -- 使い方は18F14K50用と同じです。 -単独のブートローダーとして使用できるHEXと、他のブートローダーを使ってお試しが出来るHEXの両方が入っています。 -ホストPC側のツールとして --HIDmon (picmon.exe) : 簡易モニタ --HIDboot(picboot.exe): ブートローダー書き込み&実行ツール --とそれぞれのソースファイル(MinGW gcc用)が含まれています。 ~ ---- **変更履歴 [#bafa16b0] -2009-0814:'p.'コマンドの動作が間違っていたのを修正しました。 -2009-0521:senshuさんのパッチを取り込みました。 -2009-0514 2200: senshuさんのパッチを取り込みました。 -2009-0514: EEPROM に対するFill (fr adrs1 adrs2 data)がハングする問題を修正 -2009-0514: picboot.exe を更新。 -p:? オプションの有効化 -2009-0513: EEPROMのダンプが1バイトずれていたのを修正。 -2009-0513: コマンド番号を変更。バージョン表示を追加。 -2009-0512 2000: test/ にデバッグ支援機能(vregdump)サンプルを追加しました。 -2009-0512: test/ にデバッグ支援機能(regdump)サンプルを追加しました。 ~ -2009-0511 2000: bios_exit()するときにputc()済みの文字を捨ててしまう問題を修正。 -2009-0511: 逆アセンブル機能の細かいバグ修正 -2009-0510: PICmon.exe に逆アセンブル機能を追加しました。ファームに変更はありません。 ~ -2009-0509 1300: メモリー節約。余白は326バイト。 -2009-0509 1300: アプリ起動処理で USB停止処理がうまくいっていなかった。修正。 -2009-0509 1300: コマンドの番号を整理。firm内での分岐方法を変更。 ~ -2009-0509 1200: メモリー節約。余白は296バイト。 -2009-0509 1200: EEPROMに対する読み書きが出来なかったのを修正しました。 -2009-0509 0900: アプリ単独起動にて puts などを使用した場合に起動出来ないバグを修正。 ------ **トラブルシュート [#oaba34d3] USBデバイスとして正常認識できない旨のWindows側メッセージが出る場合 -(1) VusbとGND間にパスコン(0.3uF程度)を入れ忘れていませんか? -(2) brownout voltageが高すぎて、ブラウンアウトが多発していませんか? --その場合はLEDがデューティ50%ではない点滅を繰り返します。 http://psp.dip.jp/web/jpg/pic2550borv.png --USB +5V 電源とGND間に10uF程度の電解コンと0.1uF程度のパスコンを入れ忘れていれませんか? --それでも電圧が足りない(ホストPCからのUSB電圧が想定外に低い)場合はfuse.incの BORV=1 を BORV=2 程度に変更してhexfileを作り直してみてください。 -あるいは、5V電源をUSB給電から切り離して、充分安定な外部5V電源を繋いで動作テストします。 ----- **ToDo [#xe5d10cf] 現在ToDoはありません。 ~ ---- **将来の拡張展望 [#oa85c06c] これはToDoではありません。 ~ -GNUpicのアセンブラ gpasm に対応させたい。 ---> たぶん、#define BDT_ADRH(x) (x+3) のようなマクロを手で展開すればOKではないかと思います。 -逆アセンブラをホストツールに組み込み。 ---> たぶん簡単に出来ます。 -PGMEM (FlashROM) に対する1バイト単位の書き込み(パッチ当てともいう) ---> これで、HEX打ちコード入力&ハンドアセンブルをやれば、30年前のTK80とかH68/TRのノスタルジに浸れます。 -他のデバイスクラス(CDC,HID-key,HID-mouse)の雛形として使いたい。 -オンチップデバッガ --夢ですな。 *以下は現在、仮実装を行っています。 [#fa4ed789] test/ディレクトリに、下記の機能を利用したサンプルを用意しています。 -sdccと共存できる形のバイナリーにして、BIOS的に使いたい。 ---> そうするとsdccで書く部分は純粋にアプリのみになり、USBドライバーがASMという棲み分けが可能です。 -NEC78Kのトラ技BIOS的な機能を追加 --これは、USB周りのプログラミングは毎回面倒なので、getchar,putchar,やputs的なものをBIOS側で面倒見ようというものです。 --つまり、0番地〜0x800番地のブートローダーのどこかにエントリーテーブル(jmp命令がいくつか並んだ箇所)を用意して、そこをC言語から呼べばUSB経由でホストPCに対してgetcharやputchar,puts的なことが出来るようにするというものです。 --ただし、現状のHIDmon(というかUSBフレームワーク側)は、USB処理のステートマシン部分をmain_loop(ビジーループ)内で常時callする必要があるので、アプリ側は多少制約を受けると思います。 --が、それでも、毎回USB周りを記述するよりずっと楽になるでしょう。 --Arduinoでも init() と loop() を記述するので、これと同じmain()関数のフレームワークを用意してあげて、loop()呼び出しの元のビジーループにUSBステートマシン呼び出しを挟んでおくというのも手ではあります。 ~ ---- 他の研究テーマ -64byteを越えるサイズのパケットはPIC上で正しく分割転送出来るのか? -その場合、速度はどの程度向上するのか? -ping pongバッファを使うメリットは? このPICはVID,PID,そして挙動を他のUSBデバイスに合わせることで「なりすまし」を行うことが出来ます。 -簡単に言えば、HID-keyboardやHID-mouseなどであれば、VID,PIDをそのまま手持ちのデバイスからコピーしてきても、PCホストから見たらまったく区別がつかないデバイスが作れるということです。 -AVRチップ用のHIDmonファームウェアと同じ挙動をするようにして(現時点でもほぼ同じ挙動ですが)VID.PIDまで同じにすればホストPC側ツールを開発することなくHIDmonを使用することもある程度可能です。
タイムスタンプを変更しない
[[PIC日記:http://psp.dip.jp/web/log/2009-05PIC.html]] [[PIC18F2550]] [[PIC18F4550]] [[HIDmon-14K50]] ---- **HIDmon for AE-18F2550 [#c1a44cd4] -AE-18F2550用のHIDmon です。 http://psp.dip.jp/web/jpg/ae18f2550.jpg 内容 -HIDmonとはHIDクラスのUSBデバイス内に実装されたマイコン用の簡易モニタのことです。 -マイコン内のROM,RAM,I/O PORTをUSB経由でPC上から自由に参照、変更するツールです。 --I/O PORTの操作については、Gainerや[[汎用USB-IO]]的な応用が可能です。 --RAM参照が可能なので、ユーザープログラム実行後のダンプを見ることも可能です。 --bootloaderとして使用することも出来ます。 -HIDmonに関する詳細は[[HIDmon88]]の項目をあわせてお読みください。 - ---- **ファームウェアDownload: [#y7f5f4f1] ''新バージョンのご案内'' -これまでhidmon-2550とhidmon-14K50は別々のソースアーカイブで公開しておりましたが、ソース統合と高速化 を施したものを公開します。[[HIDブートローダー>pic18boot]]を参照してください。 旧バージョン: [[hidmon-0814.zip:http://psp.dip.jp/web/upload.cgi/PIC/hidmon-0814.zip]] [[hidmon-14kの使い方]] -- 使い方は18F14K50用と同じです。 -単独のブートローダーとして使用できるHEXと、他のブートローダーを使ってお試しが出来るHEXの両方が入っています。 -ホストPC側のツールとして --HIDmon (picmon.exe) : 簡易モニタ --HIDboot(picboot.exe): ブートローダー書き込み&実行ツール --とそれぞれのソースファイル(MinGW gcc用)が含まれています。 ~ ---- **変更履歴 [#bafa16b0] -2009-0814:'p.'コマンドの動作が間違っていたのを修正しました。 -2009-0521:senshuさんのパッチを取り込みました。 -2009-0514 2200: senshuさんのパッチを取り込みました。 -2009-0514: EEPROM に対するFill (fr adrs1 adrs2 data)がハングする問題を修正 -2009-0514: picboot.exe を更新。 -p:? オプションの有効化 -2009-0513: EEPROMのダンプが1バイトずれていたのを修正。 -2009-0513: コマンド番号を変更。バージョン表示を追加。 -2009-0512 2000: test/ にデバッグ支援機能(vregdump)サンプルを追加しました。 -2009-0512: test/ にデバッグ支援機能(regdump)サンプルを追加しました。 ~ -2009-0511 2000: bios_exit()するときにputc()済みの文字を捨ててしまう問題を修正。 -2009-0511: 逆アセンブル機能の細かいバグ修正 -2009-0510: PICmon.exe に逆アセンブル機能を追加しました。ファームに変更はありません。 ~ -2009-0509 1300: メモリー節約。余白は326バイト。 -2009-0509 1300: アプリ起動処理で USB停止処理がうまくいっていなかった。修正。 -2009-0509 1300: コマンドの番号を整理。firm内での分岐方法を変更。 ~ -2009-0509 1200: メモリー節約。余白は296バイト。 -2009-0509 1200: EEPROMに対する読み書きが出来なかったのを修正しました。 -2009-0509 0900: アプリ単独起動にて puts などを使用した場合に起動出来ないバグを修正。 ------ **トラブルシュート [#oaba34d3] USBデバイスとして正常認識できない旨のWindows側メッセージが出る場合 -(1) VusbとGND間にパスコン(0.3uF程度)を入れ忘れていませんか? -(2) brownout voltageが高すぎて、ブラウンアウトが多発していませんか? --その場合はLEDがデューティ50%ではない点滅を繰り返します。 http://psp.dip.jp/web/jpg/pic2550borv.png --USB +5V 電源とGND間に10uF程度の電解コンと0.1uF程度のパスコンを入れ忘れていれませんか? --それでも電圧が足りない(ホストPCからのUSB電圧が想定外に低い)場合はfuse.incの BORV=1 を BORV=2 程度に変更してhexfileを作り直してみてください。 -あるいは、5V電源をUSB給電から切り離して、充分安定な外部5V電源を繋いで動作テストします。 ----- **ToDo [#xe5d10cf] 現在ToDoはありません。 ~ ---- **将来の拡張展望 [#oa85c06c] これはToDoではありません。 ~ -GNUpicのアセンブラ gpasm に対応させたい。 ---> たぶん、#define BDT_ADRH(x) (x+3) のようなマクロを手で展開すればOKではないかと思います。 -逆アセンブラをホストツールに組み込み。 ---> たぶん簡単に出来ます。 -PGMEM (FlashROM) に対する1バイト単位の書き込み(パッチ当てともいう) ---> これで、HEX打ちコード入力&ハンドアセンブルをやれば、30年前のTK80とかH68/TRのノスタルジに浸れます。 -他のデバイスクラス(CDC,HID-key,HID-mouse)の雛形として使いたい。 -オンチップデバッガ --夢ですな。 *以下は現在、仮実装を行っています。 [#fa4ed789] test/ディレクトリに、下記の機能を利用したサンプルを用意しています。 -sdccと共存できる形のバイナリーにして、BIOS的に使いたい。 ---> そうするとsdccで書く部分は純粋にアプリのみになり、USBドライバーがASMという棲み分けが可能です。 -NEC78Kのトラ技BIOS的な機能を追加 --これは、USB周りのプログラミングは毎回面倒なので、getchar,putchar,やputs的なものをBIOS側で面倒見ようというものです。 --つまり、0番地〜0x800番地のブートローダーのどこかにエントリーテーブル(jmp命令がいくつか並んだ箇所)を用意して、そこをC言語から呼べばUSB経由でホストPCに対してgetcharやputchar,puts的なことが出来るようにするというものです。 --ただし、現状のHIDmon(というかUSBフレームワーク側)は、USB処理のステートマシン部分をmain_loop(ビジーループ)内で常時callする必要があるので、アプリ側は多少制約を受けると思います。 --が、それでも、毎回USB周りを記述するよりずっと楽になるでしょう。 --Arduinoでも init() と loop() を記述するので、これと同じmain()関数のフレームワークを用意してあげて、loop()呼び出しの元のビジーループにUSBステートマシン呼び出しを挟んでおくというのも手ではあります。 ~ ---- 他の研究テーマ -64byteを越えるサイズのパケットはPIC上で正しく分割転送出来るのか? -その場合、速度はどの程度向上するのか? -ping pongバッファを使うメリットは? このPICはVID,PID,そして挙動を他のUSBデバイスに合わせることで「なりすまし」を行うことが出来ます。 -簡単に言えば、HID-keyboardやHID-mouseなどであれば、VID,PIDをそのまま手持ちのデバイスからコピーしてきても、PCホストから見たらまったく区別がつかないデバイスが作れるということです。 -AVRチップ用のHIDmonファームウェアと同じ挙動をするようにして(現時点でもほぼ同じ挙動ですが)VID.PIDまで同じにすればホストPC側ツールを開発することなくHIDmonを使用することもある程度可能です。
テキスト整形のルールを表示する
ログインまたはアカウント作成