I'm designing a board with a STM32F103CBT6 chip and I've been trying to figure out how USB works so I can have that extended out. Reading some specifications online has just left me with more questions. From another stack overflow question I got these 2 documents which I'll be referencing in my questions.
- Can 2 USB devices talk to each other if both of them are designated as "Downstream" or "Upstream" devices? 2
- Rpd and Rpu from 2, are they independent of of Vdd or will they change if your device is running off a different supply voltage?
- If I'm understanding the Termination resistance correctly, one side of the system has to have 45ohms and the other side equally has to have 45ohms for a total series of 90ohms as specified in 1. What happens if a long cable is involved between the 2 systems and added more resistance? Would USB communication stop working?
- How do I actually calculate Rs needed to add on the D lines? Are they specified somewhere in the STM32F103 manuals? I've been working from the hardware design guide, reference manual and datasheet for the chip but haven't seen anything on it.
- The reference manual for my chip specifies it's USB2.0 full speed, which 2 says is 12Mbps communication, however the STM32Cubef1 setup program says 48Mhz is required for the USB clock, why the discrepancy between clock speed and data transmission?