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
編集
差分
USBStudy の編集
-- 雛形とするページ --
(no template pages)
[[2014-08]] *[[UsbStudy:http://www.kumikomi.net/interface/contents/201412.php]]をPIC32MX に移植する [#i5ec33bb] 現時点では、 -Pinguino gccを使用してビルドが通る。 -シリアル、LEDは動作している -%%USB HOSTはAttach Detachの検出まで出来ているが、BDT周りに問題があって動いていない。%% ---> なんとなく動いています。 ~ 非互換の原因になっている問題 -BDT(Buffer Descriptor Table)の構造が違う。 --PIC24Fでは BDTは1個あたり4byte。内訳は BDSTAT(6bit) , COUNT(10bit) , BufferAddress(16bit) --PIC32MXでは BDTは1個あたり8byte。内訳は BDSTAT(2byte中6bit) , COUNT(2byte中10bit) , BufferAddress(32bit) -BDTの配置が異なる --PIC24FではNO PING PONGモードで使用。BDTは稠密に並んでいます ( EP0〜15 x IN/OUT ) --PIC32MXではFULL PING PONGモードしか存在せず、EP0〜15(x Even / Odd)( x IN/OUT)でPING PONGモード(EvenバッファとOddバッファ交代を毎回行う)が強制的に採用されます。 ~ ~ ~ *とりあえずダウンロード [#cdf82d7d] -ソース:[[UsbStudy.X.zip:http://psp.dip.jp/web/upload.cgi/PIC/UsbStudy.X.zip]] -各種デバッグプリント(UART向け)の埋め込みは可能。 ~ ~ ~ *■ 配線 PIC32MX220F032B 8MHz水晶使用. [#zccf876a] 3.3V | *------10Ω--------------+ 10k | | ___ ___ | 0.1u ラ --> ----*-MCLR [1 |__| 28] AVDD-*-||---GND イ --> --PGD3/RA0 [2 27] AVSS--------GND LED ター --> --PGC3/RA1 [3 26] RB15--1kΩ-------|>|--GND RB0 [4 25] RB14 RB1 [5 24] RB13 SDA2/RB2 [6 23] Vusb3v3--------3.3V SCL2/RB3 [7 22] usb D- Xtal GND----Vss [8 21] usb D+ +10uF +-----------------OSC1 [9 20] Vcap------||---GND *--|□|--*--------OSC2 [10 19] Vss------------GND | 8MHz | U1TX/RB4 [11 18] RB9 *--10k------3.3V 22pF 22pF U1RX/RA4 [12 17] RB8 | | | 3.3v--Vdd [13 16] RB7 -----------------------*--BOOT_SW--GND | | RB5 [14 15] Vbus-----------USB Vbus(5V) GND GND ~~~~~~~~~~ -PIC32MX250F128Bでも回路図、ファームウェアは共通に使用できます。 --(ファームウェアサイズはFlash32K,SRAM8Kに十分収まっています) * UsbStudy ファームウェアの挙動 [#f4c49eb6] -USBのD+/D-は、適当なUSBデバイス(KB,Mouse,...)に繋ぎます。(Type-Aメスに配線する) -PIC32MX側はUSB HOSTになります。 ~ -U1TX/U1RXを適当な3.3VレベルのUSB-Serial変換器などに繋いで、WindowsのTeratermなどで接続します。 -ボーレートは9600BPS ~ D:\pic32\UsbStudy.X>w32term -c3 -b9600 9600 Entering TerminalMode: Escape=^A >? 's': Get string 'g': get descriptor command 'a': Set address command 'c': set config command 'I': IN command 'i': IN command 'o': OUT command (use default DATA0/1 sequence) 't': SETUP command 'w': Clear & Write command 'W': WRITE command (Append to current send buffer) 'r': Reset command 'd': Mem Dump > *操作例 [#d26cde3f] -TeraTerm等でファームウェアを操作します。 -基本的にTeratermからコマンドを投入して、結果を表示するようになっています。 -最初に'a'コマンド投入が必要です。 D:\pic32\UsbStudy.X>w32term -c3 -b9600 9600 Entering TerminalMode: Escape=^A >? 's': Get string 'g': get descriptor command 'a': Set address command 'c': set config command 'I': IN command 'i': IN command 'o': OUT command (use default DATA0/1 sequence) 't': SETUP command 'w': Clear & Write command 'W': WRITE command (Append to current send buffer) 'r': Reset command 'd': Mem Dump > >a Address Ok >s1 Microsoft >s2 ゥ 2000 Microsoft Corp. All rights reserved. >s3 Microsoft 3-Button Mouse with IntelliEye(TM) >g 12 01 10 01 00 00 00 08 5e 04 40 00 00 03 01 03 00 01 > ~ ~ ~ ~ ~ ------------ *おまけ:PIC32MXでUSB HOSTを作る場合 [#zd3cf7ce] -普通にMicrochipのサンプルがあるので、それをもとに作ればハードウェアの操作を直接行う必要はありませんが、 -レジスタ手打ちの場合のやりかたなど 基本は、[[マニュアル:http://ww1.microchip.com/downloads/jp/DeviceDoc/jp534259.pdf]]のHOST Mode Operationを読めばだいたいの手順が書いてあります。 -HOSTモードではEP0しか使わない。 --Deviceで動作させるときはEP0〜15が使えますが、HOSTモードではEP0のみ有効にしてEP1〜15はDisableにします。 -HOSTからDeviceへのUSBパケットはU1TOKレジスタにトークンを書き込む。 --トークン(PID)は3種類しかありません。 ,Packet ID 4bit,意味 ,0001,OUT(TX) ,1001,IN(RX) ,1101,SETUP(TX) ~ ~ ~ ~ ------------ *USB Hostを弄れるマイコン/基板をリストアップ [#q9339ae0] -Raspberry-Piとか使うと、普通にLinuxでUSB HOSTでドライバーは全部アリ。もちろんHubにも対応している。 -それだとUSB HOSTを弄るというよりは、普通にPC使うのと同じ。 ~ マイコンの場合は、 ,ICチップ、あるいは基板名称(リンク先は全部秋月です),お値段(秋月),スペック,備考 ,[[PIC24FJ64GB002:http://akizukidenshi.com/catalog/g/gI-08168/]],DIP28 @340円,64KFlashROM/8KRAM/16bitCPU 32MHz,(16MIPS) ,[[PIC32MX220F032B:http://akizukidenshi.com/catalog/g/gI-05852/]],DIP28 @250円,32KFlashROM/8KRAM/32bitCPU 48MHz, ,[[PIC32MX250F128B:http://akizukidenshi.com/catalog/g/gI-07644/]],DIP28 @360円,128KFlashROM/32KRAM/32bitCPU 48MHz, ,[[STM32 NUCLEO-F401RE:http://akizukidenshi.com/catalog/g/gM-07723/]],1500円,[[STM32F401RET6:http://www.st-japan.co.jp/web/jp/catalog/mmc/FM141/SC1169/SS1577/LN1810/PF258797]] Flash512K/96kSRAM/84MHz,参考URL = http://developer.mbed.org/users/va009039/code/F401RE-USBHost/ ,[[STM32 STM32F4DISCOVERY:http://akizukidenshi.com/catalog/g/gM-05313/]],1750円,[[STM32F407VGT6:http://akizukidenshi.com/download/ds/st/STM32F4DISCOVERY.pdf]] Flash1MB/192kSRAM/168MHz,参考URL = https://github.com/YuuichiAkagawa/STM32F4_ADK/wiki -予算2000円以内という感じでは、こんなところ。 -PIC18FにはUSB-HOSTは付いてない。 -PIC24Fは1命令2CLOCK -PIC32MXは40MHzもしくは48MHz(規格上は50MHzが上限で、USB縛りがある時は8MHzの倍数で動作) ~ -ARM Cortex-M3系でUSB-HOST機能付きMCUは、そんなに多くない。 -意外とRasp-Piのほうがお勧めかなー。半田付けとか''電子工作さえ不要''だし。 --ドライバー書かなくても、全部揃ってる(^笑^) --いやーLinuxって、ほんと便利っすね。ソース全部あるし(当然) --こんな2000円程度のARMパソコン(Rasp-Piのこと)でも、フルサイズのLinuxが動くんだよー。PC用のLinuxと全く同じものなんだよー(CPUアーキテクチャーと性能は当然異なります)。すごいだろー(今となっては全部当たり前) ~ ~ ~ ~ ~
タイムスタンプを変更しない
[[2014-08]] *[[UsbStudy:http://www.kumikomi.net/interface/contents/201412.php]]をPIC32MX に移植する [#i5ec33bb] 現時点では、 -Pinguino gccを使用してビルドが通る。 -シリアル、LEDは動作している -%%USB HOSTはAttach Detachの検出まで出来ているが、BDT周りに問題があって動いていない。%% ---> なんとなく動いています。 ~ 非互換の原因になっている問題 -BDT(Buffer Descriptor Table)の構造が違う。 --PIC24Fでは BDTは1個あたり4byte。内訳は BDSTAT(6bit) , COUNT(10bit) , BufferAddress(16bit) --PIC32MXでは BDTは1個あたり8byte。内訳は BDSTAT(2byte中6bit) , COUNT(2byte中10bit) , BufferAddress(32bit) -BDTの配置が異なる --PIC24FではNO PING PONGモードで使用。BDTは稠密に並んでいます ( EP0〜15 x IN/OUT ) --PIC32MXではFULL PING PONGモードしか存在せず、EP0〜15(x Even / Odd)( x IN/OUT)でPING PONGモード(EvenバッファとOddバッファ交代を毎回行う)が強制的に採用されます。 ~ ~ ~ *とりあえずダウンロード [#cdf82d7d] -ソース:[[UsbStudy.X.zip:http://psp.dip.jp/web/upload.cgi/PIC/UsbStudy.X.zip]] -各種デバッグプリント(UART向け)の埋め込みは可能。 ~ ~ ~ *■ 配線 PIC32MX220F032B 8MHz水晶使用. [#zccf876a] 3.3V | *------10Ω--------------+ 10k | | ___ ___ | 0.1u ラ --> ----*-MCLR [1 |__| 28] AVDD-*-||---GND イ --> --PGD3/RA0 [2 27] AVSS--------GND LED ター --> --PGC3/RA1 [3 26] RB15--1kΩ-------|>|--GND RB0 [4 25] RB14 RB1 [5 24] RB13 SDA2/RB2 [6 23] Vusb3v3--------3.3V SCL2/RB3 [7 22] usb D- Xtal GND----Vss [8 21] usb D+ +10uF +-----------------OSC1 [9 20] Vcap------||---GND *--|□|--*--------OSC2 [10 19] Vss------------GND | 8MHz | U1TX/RB4 [11 18] RB9 *--10k------3.3V 22pF 22pF U1RX/RA4 [12 17] RB8 | | | 3.3v--Vdd [13 16] RB7 -----------------------*--BOOT_SW--GND | | RB5 [14 15] Vbus-----------USB Vbus(5V) GND GND ~~~~~~~~~~ -PIC32MX250F128Bでも回路図、ファームウェアは共通に使用できます。 --(ファームウェアサイズはFlash32K,SRAM8Kに十分収まっています) * UsbStudy ファームウェアの挙動 [#f4c49eb6] -USBのD+/D-は、適当なUSBデバイス(KB,Mouse,...)に繋ぎます。(Type-Aメスに配線する) -PIC32MX側はUSB HOSTになります。 ~ -U1TX/U1RXを適当な3.3VレベルのUSB-Serial変換器などに繋いで、WindowsのTeratermなどで接続します。 -ボーレートは9600BPS ~ D:\pic32\UsbStudy.X>w32term -c3 -b9600 9600 Entering TerminalMode: Escape=^A >? 's': Get string 'g': get descriptor command 'a': Set address command 'c': set config command 'I': IN command 'i': IN command 'o': OUT command (use default DATA0/1 sequence) 't': SETUP command 'w': Clear & Write command 'W': WRITE command (Append to current send buffer) 'r': Reset command 'd': Mem Dump > *操作例 [#d26cde3f] -TeraTerm等でファームウェアを操作します。 -基本的にTeratermからコマンドを投入して、結果を表示するようになっています。 -最初に'a'コマンド投入が必要です。 D:\pic32\UsbStudy.X>w32term -c3 -b9600 9600 Entering TerminalMode: Escape=^A >? 's': Get string 'g': get descriptor command 'a': Set address command 'c': set config command 'I': IN command 'i': IN command 'o': OUT command (use default DATA0/1 sequence) 't': SETUP command 'w': Clear & Write command 'W': WRITE command (Append to current send buffer) 'r': Reset command 'd': Mem Dump > >a Address Ok >s1 Microsoft >s2 ゥ 2000 Microsoft Corp. All rights reserved. >s3 Microsoft 3-Button Mouse with IntelliEye(TM) >g 12 01 10 01 00 00 00 08 5e 04 40 00 00 03 01 03 00 01 > ~ ~ ~ ~ ~ ------------ *おまけ:PIC32MXでUSB HOSTを作る場合 [#zd3cf7ce] -普通にMicrochipのサンプルがあるので、それをもとに作ればハードウェアの操作を直接行う必要はありませんが、 -レジスタ手打ちの場合のやりかたなど 基本は、[[マニュアル:http://ww1.microchip.com/downloads/jp/DeviceDoc/jp534259.pdf]]のHOST Mode Operationを読めばだいたいの手順が書いてあります。 -HOSTモードではEP0しか使わない。 --Deviceで動作させるときはEP0〜15が使えますが、HOSTモードではEP0のみ有効にしてEP1〜15はDisableにします。 -HOSTからDeviceへのUSBパケットはU1TOKレジスタにトークンを書き込む。 --トークン(PID)は3種類しかありません。 ,Packet ID 4bit,意味 ,0001,OUT(TX) ,1001,IN(RX) ,1101,SETUP(TX) ~ ~ ~ ~ ------------ *USB Hostを弄れるマイコン/基板をリストアップ [#q9339ae0] -Raspberry-Piとか使うと、普通にLinuxでUSB HOSTでドライバーは全部アリ。もちろんHubにも対応している。 -それだとUSB HOSTを弄るというよりは、普通にPC使うのと同じ。 ~ マイコンの場合は、 ,ICチップ、あるいは基板名称(リンク先は全部秋月です),お値段(秋月),スペック,備考 ,[[PIC24FJ64GB002:http://akizukidenshi.com/catalog/g/gI-08168/]],DIP28 @340円,64KFlashROM/8KRAM/16bitCPU 32MHz,(16MIPS) ,[[PIC32MX220F032B:http://akizukidenshi.com/catalog/g/gI-05852/]],DIP28 @250円,32KFlashROM/8KRAM/32bitCPU 48MHz, ,[[PIC32MX250F128B:http://akizukidenshi.com/catalog/g/gI-07644/]],DIP28 @360円,128KFlashROM/32KRAM/32bitCPU 48MHz, ,[[STM32 NUCLEO-F401RE:http://akizukidenshi.com/catalog/g/gM-07723/]],1500円,[[STM32F401RET6:http://www.st-japan.co.jp/web/jp/catalog/mmc/FM141/SC1169/SS1577/LN1810/PF258797]] Flash512K/96kSRAM/84MHz,参考URL = http://developer.mbed.org/users/va009039/code/F401RE-USBHost/ ,[[STM32 STM32F4DISCOVERY:http://akizukidenshi.com/catalog/g/gM-05313/]],1750円,[[STM32F407VGT6:http://akizukidenshi.com/download/ds/st/STM32F4DISCOVERY.pdf]] Flash1MB/192kSRAM/168MHz,参考URL = https://github.com/YuuichiAkagawa/STM32F4_ADK/wiki -予算2000円以内という感じでは、こんなところ。 -PIC18FにはUSB-HOSTは付いてない。 -PIC24Fは1命令2CLOCK -PIC32MXは40MHzもしくは48MHz(規格上は50MHzが上限で、USB縛りがある時は8MHzの倍数で動作) ~ -ARM Cortex-M3系でUSB-HOST機能付きMCUは、そんなに多くない。 -意外とRasp-Piのほうがお勧めかなー。半田付けとか''電子工作さえ不要''だし。 --ドライバー書かなくても、全部揃ってる(^笑^) --いやーLinuxって、ほんと便利っすね。ソース全部あるし(当然) --こんな2000円程度のARMパソコン(Rasp-Piのこと)でも、フルサイズのLinuxが動くんだよー。PC用のLinuxと全く同じものなんだよー(CPUアーキテクチャーと性能は当然異なります)。すごいだろー(今となっては全部当たり前) ~ ~ ~ ~ ~
テキスト整形のルールを表示する
ログインまたはアカウント作成