If I plug the Pico 2W in the 2nd port of the same USB hub, the Teensy does not crash. I get the following debug output (near the end I am unplugging the Pico 2W from the hub):
port change: 10001803
connect
begin reset
port change: 18001205
port enabled
end recovery
new_Device: 480 Mbit/sec
new_Pipe
enumeration:
enumeration:
enumeration:
Device Descriptor:
12 01 00 02 09 00 01 40 E3 05 08 06 37 85 00 01 00 01
VendorID = 05E3, ProductID = 0608, Version = 8537
Class/Subclass/Protocol = 9(Hub) / 0 / 1(Single-TT)
Number of Configurations = 1
enumeration:
enumeration:
Product: USB2.0 Hub
enumeration:
Config data length = 25
enumeration:
Configuration Descriptor:
09 02 19 00 01 01 00 E0 32
NumInterfaces = 1
ConfigurationValue = 1
09 04 00 00 01 09 00 00 00
Interface = 0
Number of endpoints = 1
Class/Subclass/Protocol = 9(Hub) / 0 / 0
07 05 81 03 01 00 0C
Endpoint = 1 IN
Type = Interrupt
Max Size = 1
Polling Interval = 12
enumeration:
USBHub memory usage = 960
USBHub claim_device this=20003220
found possible interface, altsetting=0
number of interfaces found = 1
USBHub control callback
09 29 04 E0 00 32 64 00 FF 00 00 00 00 00 00 00
Hub ports = 4
USBHub control callback
USBHub control callback
USBHub control callback
USBHub control callback
power turned on to all ports
device addr = 1
new_Pipe
allocate_interrupt_pipe_bandwidth
ep interval = 12
interval = 256
best_bandwidth = 2, at offset = 0
pipe cap1 = F0012101
HUB Callback (member)
status = 4
getstatus, port = 2
USBHub control callback
01 01 01 00
New Port Status
status=10101 port=2
state=0
Device is present:
Has Power
USBHub control callback
Port Status Cleared, port=2
timer event (20000 us): Debounce Timer, this = 20003220, timer = 20003538
ports in use bitmask = 4
getstatus, port = 2
USBHub control callback
01 01 00 00
New Port Status
status=101 port=2
state=2
Device is present:
Has Power
timer event (19999 us): Debounce Timer, this = 20003220, timer = 20003538
ports in use bitmask = 4
getstatus, port = 2
USBHub control callback
01 01 00 00
New Port Status
status=101 port=2
state=3
Device is present:
Has Power
timer event (19999 us): Debounce Timer, this = 20003220, timer = 20003538
ports in use bitmask = 4
getstatus, port = 2
USBHub control callback
01 01 00 00
New Port Status
status=101 port=2
state=4
Device is present:
Has Power
timer event (19999 us): Debounce Timer, this = 20003220, timer = 20003538
ports in use bitmask = 4
getstatus, port = 2
USBHub control callback
01 01 00 00
New Port Status
status=101 port=2
state=5
Device is present:
Has Power
timer event (19999 us): Debounce Timer, this = 20003220, timer = 20003538
ports in use bitmask = 4
getstatus, port = 2
USBHub control callback
01 01 00 00
New Port Status
status=101 port=2
state=6
Device is present:
Has Power
sending reset
send_setreset
USBHub control callback
unhandled setup, message = 40323
timer event (19999 us): Debounce Timer, this = 20003220, timer = 20003538
ports in use bitmask = 0
HUB Callback (member)
status = 4
getstatus, port = 2
USBHub control callback
03 01 10 00
New Port Status
status=100103 port=2
state=7
Device is present:
Enabled, speed = 12 Mbit/sec
Has Power
USBHub control callback
unhandled setup, message = 140123
timer event (25000 us): Hello, I'm resettimer, this = 20003220, timer = 20003554
port_doing_reset = 2
PORT_RECOVERY
new_Device: 12 Mbit/sec
new_Pipe
enumeration:
enumeration:
enumeration:
Device Descriptor:
12 01 00 02 EF 02 01 40 8A 2E 0F F0 00 01 02 03 04 01
VendorID = 2E8A, ProductID = F00F, Version = 0100
Class/Subclass/Protocol = 239 / 2 / 1
Number of Configurations = 1
enumeration:
enumeration:
Manufacturer: Raspberry Pi
enumeration:
Product: Pico 2W
enumeration:
Serial Number: B088AF394B852405
enumeration:
Config data length = 75
enumeration:
Configuration Descriptor:
09 02 4B 00 02 01 00 A0 7D
NumInterfaces = 2
ConfigurationValue = 1
08 0B 00 02 02 02 00 00
Interface Association = 0 through 1
Class / Subclass / Protocol = 2 / 2 / 0
09 04 00 00 01 02 02 00 01
Interface = 0
Number of endpoints = 1
Class/Subclass/Protocol = 2 / 2 / 0
05 24 00 20 01
05 24 01 00 01
04 24 02 06
05 24 06 00 01
07 05 81 03 08 00 10
Endpoint = 1 IN
Type = Interrupt
Max Size = 8
Polling Interval = 16
09 04 01 00 02 0A 00 00 00
Interface = 1
Number of endpoints = 2
Class/Subclass/Protocol = 10 / 0 / 0
07 05 01 02 40 00 00
Endpoint = 1 OUT
Type = Bulk
Max Size = 64
Polling Interval = 0
07 05 82 02 40 00 00
Endpoint = 2 IN
Type = Bulk
Max Size = 64
Polling Interval = 0
enumeration:
USBSerial(64)claim this=20003760
vid=2E8A, pid=F00F, bDeviceClass = 239, bDeviceSubClass = 2, bDeviceProtocol = 1
08 0B 00 02 02 02 00 00 09 04 00 00 01 02 02 00 01 05 24 00 20 01 05 24 01 00 01 04 24 02 06 05 24 06 00 01 07 05 81 03 08 00 10 09 04 01 00 02 0A 00 00 00 07 05 01 02 40 00 00 07 05 82 02 40 00 00
Descriptor 11 = IAD
Descriptor 4 = INTERFACE
USBSerial(64)claim this=20003760
vid=2E8A, pid=F00F, bDeviceClass = 239, bDeviceSubClass = 2, bDeviceProtocol = 1
09 04 00 00 01 02 02 00 01 05 24 00 20 01 05 24 01 00 01 04 24 02 06 05 24 06 00 01 07 05 81 03 08 00 10 09 04 01 00 02 0A 00 00 00 07 05 01 02 40 00 00 07 05 82 02 40 00 00
Descriptor 36 = ???
Descriptor 36 = ???
Descriptor 36 = ???
Descriptor 36 = ???
Descriptor 5 = ENDPOINT
Descriptor 4 = INTERFACE
USBSerial(64)claim this=20003760
vid=2E8A, pid=F00F, bDeviceClass = 239, bDeviceSubClass = 2, bDeviceProtocol = 1
09 04 01 00 02 0A 00 00 00 07 05 01 02 40 00 00 07 05 82 02 40 00 00
len = 23
USBSerial, rxep=2(64), txep=1(64)
rx buffer size:196
tx buffer size:196
new_Pipe
new_Pipe
Control - CDCACM LINE_CODING
Descriptor 5 = ENDPOINT
Descriptor 5 = ENDPOINT
control callback (serial) 4
Control - 0x21,0x22, 0x3
control callback (serial) 0
rx token: 80008100 transfer length: 64 len:64 - 77 61
rx: 77 61 79 70 6F 69 6E 74 20 30 2C 20 50 49 44 20 30 20 6C 65 66 74 20 6D 6F 74 6F 72 3A 20 30 2E 30 30 20 6D 20 72 61 74 65 3A 20 2D 30 2E 30 30 30 30 30 30 65 2B 30 30 20 74 6F 74 61 6C 3A 20
rx token: 198100 transfer length: 64 len:39 - 30 2E
rx: 30 2E 30 30 30 30 30 30 65 2B 30 30 20 6C 65 66 74 20 64 65 72 69 76 61 74 69 76 65 3A 20 30 2E 30 30 20 6D 2F 73 0A
rx token: 80008100 transfer length: 64 len:64 - 77 61
rx: 77 61 79 70 6F 69 6E 74 20 30 2C 20 50 49 44 20 30 20 6C 65 66 74 20 6D 6F 74 6F 72 3A 20 30 2E 30 30 20 6D 20 72 61 74 65 3A 20 2D 30 2E 30 30 30 30 30 30 65 2B 30 30 20 74 6F 74 61 6C 3A 20
rx token: 198100 transfer length: 64 len:39 - 30 2E
rx: 30 2E 30 30 30 30 30 30 65 2B 30 30 20 6C 65 66 74 20 64 65 72 69 76 61 74 69 76 65 3A 20 30 2E 30 30 20 6D 2F 73 0A
rx token: 80008100 transfer length: 64 len:64 - 77 61
rx: 77 61 79 70 6F 69 6E 74 20 30 2C 20 50 49 44 20 30 20 6C 65 66 74 20 6D 6F 74 6F 72 3A 20 30 2E 30 30 20 6D 20 72 61 74 65 3A 20 2D 30 2E 30 30 30 30 30 30 65 2B 30 30 20 74 6F 74 61 6C 3A 20
rx token: 198100 transfer length: 64 len:39 - 30 2E
rx: 30 2E 30 30 30 30 30 30 65 2B 30 30 20 6C 65 66 74 20 64 65 72 69 76 61 74 69 76 65 3A 20 30 2E 30 30 20 6D 2F 73 0A
rx token: 80008100 transfer length: 64 len:64 - 77 61
rx: 77 61 79 70 6F 69 6E 74 20 30 2C 20 50 49 44 20 30 20 6C 65 66 74 20 6D 6F 74 6F 72 3A 20 30 2E 30 30 20 6D 20 72 61 74 65 3A 20 2D 30 2E 30 30 30 30 30 30 65 2B 30 30 20 74 6F 74 61 6C 3A 20
rx token: 198100 transfer length: 64 len:39 - 30 2E
rx: 30 2E 30 30 30 30 30 30 65 2B 30 30 20 6C 65 66 74 20 64 65 72 69 76 61 74 69 76 65 3A 20 30 2E 30 30 20 6D 2F 73 0A
rx token: 80008100 transfer length: 64 len:64 - 77 61
rx: 77 61 79 70 6F 69 6E 74 20 30 2C 20 50 49 44 20 30 20 6C 65 66 74 20 6D 6F 74 6F 72 3A 20 30 2E 30 30 20 6D 20 72 61 74 65 3A 20 2D 30 2E 30 30 30 30 30 30 65 2B 30 30 20 74 6F 74 61 6C 3A 20
rx token: 198100 transfer length: 64 len:39 - 30 2E
rx: 30 2E 30 30 30 30 30 30 65 2B 30 30 20 6C 65 66 74 20 64 65 72 69 76 61 74 69 76 65 3A 20 30 2E 30 30 20 6D 2F 73 0A
HUB Callback (member)
status = 4
getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
HUB Callback (member)
status = 4
deferred getstatus, port = 2
port change: 1C00100A
disconnect
disconnect_Device:
USBDriver (available_drivers) list: (empty
USBDriver (dev->drivers) list: 20003220
disconnect driver 20003220
disconnect_Device:
USBDriver (available_drivers) list: (empty
USBDriver (dev->drivers) list: 20003760
disconnect driver 20003760
USBDriver (available_drivers) list: 20003760
delete_Pipe 20003780
remove QH from async schedule
Free transfers
* 536883488 * remove * free
* 536885536 * remove * defer free until QH
* 536883616
* 536885728
* 536885472
Free transfers attached to QH
* 536885536
* 536885600
* Delete Pipe completed
delete_Pipe 200033A0
remove QH from async schedule
Free transfers
* 536883616
* 536885728
* 536885472
Free transfers attached to QH
* 536883552
* Delete Pipe completed
delete_Pipe 200037E0
remove QH from async schedule
Free transfers
* 536883616
* 536885728 * remove * free
* 536885472
Free transfers attached to QH
* 536885408
* Delete Pipe completed
removed Device_t from devlist
USBDriver (available_drivers) list: 20003220 -> 20003760
delete_Pipe 20003840
Free transfers
* 536884416 * remove * free
Free transfers attached to QH
* 536885664
* Delete Pipe completed
delete_Pipe 20003080
shut down async schedule
Free transfers
* 536883616 * remove * defer free until QH
* 536885472 * remove * free
Free transfers attached to QH
* 536883616
* 536885728
* 536883552
* 536885600
* 536885536
* 536883488
* 536885792
* 536884352
* 536884288
* 536884224
* Delete Pipe completed
removed Device_t from devlist
disable