- 追加された行はこの色です。
- 削除された行はこの色です。
**FreeBSD で認識するかどうか条件によって変わる問題 [#cff63cc8]
-PC:DELL Inspiron910
-先に挿すと認識しないケースでは LED2 が点かない(main が実行できない)場合と点く場合がある
-OS: FreeBSD-10.2, ファーム v.28
--本体の USB 端子に挿すと認識しない(USB_ERR_TIMEOUT)
--ダイソーの USB1.0 2ポートハブでは認識するが、ハブにデバイスを先に挿しておくと認識しない
--ELECOM USB1.0 4ポートハブでは全く認識しない
--USB2.0 ハブ経由では認識するが、COLOR(RED){ハブにデバイスを先に挿しておくと認識しない}(USB_ERR_STALLED)
-OS: FreeBSD-10.2, ファーム v.28(ブートローダなし+250ms版)
--本体の USB 端子に挿すと認識COLOR(RED){する}
--ダイソーの USB1.0 2ポートハブでは認識するが、ハブにデバイスを先に挿しておくと認識しない
--ダイソーの USB1.0 2ポートハブでは認識するが、ハブにデバイスを先に挿しておくと認識しない, COLOR(BLUE){LED2点く}
--ELECOM USB1.0 4ポートハブでは全く認識しない(USB_ERROR_IOERROR)
--USB2.0 ハブ経由では認識するが、COLOR(RED){ハブにデバイスを先に挿しておくと認識しない}
-OS: FreeBSD-10.2, ファーム v.28(ブートローダなし+1000ms+250ms版)
--本体の USB 端子に挿すと認識COLOR(RED){する}
--ダイソーの USB1.0 2ポートハブでCOLOR(RED){ハブにデバイスを先に挿しても認識する}
--ELECOM USB1.0 4ポートハブでは全く認識しない
-OS: FreeBSD-10.2, ファーム v.28(1000ms+250ms版)
--本体の USB 端子に挿すと認識しない(USB_ERR_TIMEOUT)
--ダイソーの USB1.0 2ポートハブでは認識するが、ハブにデバイスを先に挿しておくと認識しない(USB_ERR_STALLED)
--USB2.0 ハブ経由では認識するが、COLOR(RED){ハブにデバイスを先に挿しておくと認識しない}(USB_ERR_STALLED)
--ダイソーの USB1.0 2ポートハブでは認識するが、ハブにデバイスを先に挿しておくと認識しない(USB_ERR_STALLED) COLOR(BLUE){LED2付かない)
--USB2.0 ハブ経由では認識するが、COLOR(RED){ハブにデバイスを先に挿しておくと認識しない}(USB_ERR_STALLED), COLOR(BLUE){LED2点かない}
-OS Knoppix7.4, ファーム v.28(ブートローダなし+250ms版)
--本体の USB 端子に挿すと認識COLOR(RED){する}
--ダイソーの USB1.0 2ポートハブにデバイスを先に挿しても認識COLOR(RED){する}
--ELECOM USB1.0 4ポートハブでは全く認識しない
--USB2.0 ハブ経由では先に挿しておいても認識する
-OS Windows10, ファーム v.28(ブートローダなし版)
--ELECOM USB1.0 4ポートハブで先に挿しても認識する
***まとめ[#xa161ee5]
-FreeBSD-10.2
|-|ブートローダあり|ブートローダなし,250ms|ブートローダなし,1000+250ms|エラー|
|USB2ハブ|○|○|(○)|-|
|USB1ハブ(ダイソー)|○|○|○|-|
|USBハブなし|×|○|○|USB_ERR_TIMEOUT|
|USB1ハブ,USB2ハブ(※1)|×|×|(○)|USB_ERR_STALLED|
|USB1ハブ(ELECOM)|×|×|×|USB_ERR_IOERROR|
(※1): ハブにデバイスを挿してから、PC にハブを挿した場合
[エラーメッセージ(USB_ERR_TIMEOUTT)]
Dec 12 03:03:26 milk kernel: usbus4: port reset timeout
Dec 12 03:03:26 milk kernel:
uhub_reattach_port: port 3 reset failed, error=USB_ERR_TIMEOUT
Dec 12 03:03:26 milk kernel: uhub_reattach_port:
device problem (USB_ERR_TIMEOUT), disabling port 3
[エラーメッセージ(USB_ERR_STALLE)]
Dec 12 03:43:28 milk kernel:
usb_alloc_device: set address 3 failed (USB_ERR_STALLED, ignored)
Dec 12 03:43:30 milk kernel:
usbd_setup_device_desc: getting device descriptor at addr 3 failed,
USB_ERR_STALLED
Dec 12 03:43:30 milk kernel:
usbd_req_re_enumerate: addr=3, set address failed! (USB_ERR_STALLED, ignored)
[エラーメッセージ(USB_ERR_IOERROR)]
Dec 12 20:52:49 milk kernel:
usb_alloc_device: set address 4 failed (USB_ERR_IOERROR, ignored)
Dec 12 20:52:51 milk kernel:
usbd_setup_device_desc:getting device descriptor at addr 4 failed,
USB_ERR_IOERROR
Dec 12 20:52:51 milk kernel:
usbd_req_re_enumerate: addr=4, set address failed! (USB_ERR_IOERROR, ignored)
- Knoppix7.4
|-|ブートローダなし,250ms|エラー|
|USB2ハブ|○|-|
|USB1ハブ(ダイソー)|○|-|
|USBハブなし|○|-|
|USB1ハブ,USB2ハブ(※1)|○|-|
|USB1ハブ(ELECOM)|×|IO|
(※1): ハブにデバイスを挿してから、PC にハブを挿した場合
-Windows10
|-|ブートローダなし|エラー|
|USB2ハブ|○|-|
|USB1ハブ(ダイソー)|○|-|
|USBハブなし|○|-|
|USB1ハブ,USB2ハブ(※)|○|-|
|USB1ハブ(ELECOM)|○|-|
***改良 [#rc54ca23]
-ブートローダなし版を作成(Digispark としては使えなくなるが、FreeBSD に直接挿したときの認識率が改善する)
--従来 micronucleus(DigiSpark 用 USB 経由のライタ) で書き込んでいたファームウェア(HEX ファイル)と全く同じコードを、Digispark の Flash の 0番地から AVR ライタで直接書き込む
-起動時に 1000+250ms ウェイトを入れる(FreeBSD ハブにデバイスを挿してから、PC にハブを挿した場合の認識率が改善する)
--V-USB の初期化ルーチン(http://vusb.wikidot.com/examples) に *1 の wait (約1000ms) を追加
usbInit(); // *1
uchar j=0; // *1
while(--j){
wdt_reset(); // if watchdog is active, reset it // *1
_delay_ms(4); } // *1
} // *1
usbDeviceDisconnect();
uchar i = 0;
while(--i){ // fake USB disconnect for > 250 ms
wdt_reset(); // if watchdog is active, reset it
_delay_ms(1); // library call -- has limited range
}
usbDeviceConnect();