Teensy 4.1 USB Speed during programming?

couscousteau

New member
Does anyone know what speed the USB controller negotiates during programming, and if we have any control over it? My understanding is that this would be defined in the bootloader. I can try to scope the lines during programming, but would be great to get some more insight into what's going on.

For my application, I have to connect to a Teensy inside a pressure housing going through a bulkhead that does some nasty things to signal integrity. In a pinch, I can get 480 Mb/s across the bulkhead if the cables on either side are limited to a few inches, but I'd like to use a much longer cable to connect to the bulkhead. When I'm running my application, I talk to the Teensy over USB serial, and so I can uncomment
Code:
USB1_PORTSC1 |= USB_PORTSC1_PFSC; // force 12 Mbit/sec
(line 211, \cores\teensy4\usb.c)
and I have no problem getting communication at 12 Mb/s, but I also need to reprogram the Teensy through the bulkhead, and once I pull down the program pin, the Teensy is going to reset the USB1_PORTSC1 register and then the transfer speed will be up to whatever's programmed in the bootloader. I can try putting a USB hub or signal conditioner right outside the the bulkhead if necessary to isolate the signal distortion to a short stub, but it'd be much more elegant to control what's going on in software, if possible.

Thanks,
Jake
 
The bootloader uses 480 Mbit/sec and there's no supported way to tell it to use 12 Mbit/sec.

A USB 1.1 hub chip is probably the only viable solution.
 
Back
Top