I'm discussing the data line pullup on a USB dev with someone and I'm not clear on one thing... or maybe two. The pullup is added to one or the other of the two differential data lines to indicate the speed of the interface being either low or full. This pullup is supposed to be1.5 kohms to 3.3 volts. Once the pullup is detected is there any need to remove it? It does create a slight imbalance although that would be very small. I know some USB chips control this through a pin, but all that I have seen are either high speed or OTG controllers.
How exactly is the presence of the pullup detected? I can see telling if one or the other is present by the polarity of the bias on the D lines. But if no pullup is present the host has to know that. I suppose the differential pair is also read separately as a pair of single ended inputs to detect the three combinations?