We're currently using a SamD51 as a USB host (full speed) and we're trying to connect a hub to it.
The hub is working perfectly fine and we're also able to connect multiple full speed devices and enumerate them.
But we still have one problem left:
If we connect a low speed device to the hub we have to send a PRE packet to send low speed data from the SamD51 to the hub.
This is defined in the USB spec like so:
PRE packet (tells hubs to temporarily switch to low speed mode)
A hub is able to support low bandwidth devices mixed with other speed device via a special PID value, PRE. This is required as a USB hub functions as a very simple repeater, broadcasting the host message to all connected devices regardless if the packet was for it or not. This means in a mixed speed environment, there is a potential danger that a low speed could misinterpret a high or full speed signal from the host.
If I connect a Hub to Windows with a FS hub you see it here:
The question is: how to send this pre packet using the SamD51?
There is a extended flag but it seems that this is only for Link Power Management:
ENGINEERING CHANGE NOTICE, USB 2.0 Link Power Management Addendum