pagercam -
Why not just pull up to USB +5V then???
The host determines what speed the USB device wants to run at by looking at which of the two USB data lines, D+ or D-, is pulled up with the 1.5K resistor. This lets the device say it is a low-speed, 1.2Mbits, or full-speed 12Mbits (High-speed is different).
Every time a USB device is plugged in, the host also needs to figure out exactly what type of USB device it is. The process the host goes through to determine that is called 'enumeration'. Once the host knows what speed the USB device is running at, the host and device have a chat so the host knows which device driver to use to communicate with the device.
Currently Maple changes its USB device from a USB DFU (which is used by the bootloader when a program is being uploaded to it from the host) to a USB serial the rest of the time.
Maple needs to force the USB host to changes its mind about what type of device it is by forcing the host to query its type of USB device when it needs to transition between those two USB devices. It does that by disconnecting the pull-up resistor, so it looks like the Maple has been unplugged, then raising it again to trigger the host going through USB 'enumeration'.
1. The resistor can't just be tied to a voltage, or Maple couldn't force the host to 'enumerate' it.
Even if LeafLabs made the Maple be a single USB device, IMHO it is better for Maple to be able to force USB re-enumeration because then folks can more easily make the Maple look like different USB devices.
By allowing Maple firmware/software to decide when to activate the pull-up resistor, it can go through a pile of internal stuff, getting ready, which again makes it easier to program the Maple to take on different USB device persona's.
The USB 2.0 specification is at http://www.usb.org/developers/docs/
The bundle of documents is currently http://www.usb.org/developers/docs/usb_20_021411.zip but it changes name with revisions.
usb_20.pdf defines the electrical characteristics of USB in Table 7-7 in section 7.3.2 "Bus Timing/Electrical Characteristics"
The maximum (signalling) voltage that can be applied to the USB D+/D- lines is called Voh (V subscript OH).
For low-speed and full-speed USB Voh maximum is 3.6V, with a minimum of 2.8V (this is the voltage used for signalling data)
The 1.5K +/-5% pull-up resistor is used to signal the speed of the USB device to the host USB controller for low-speed or full-speed. The resistor is attached to USB D+ or D- depending on whether it wants to be treated as low-speed or full-speed.
The pull-up resistor is 'terminated' by connecting it to a voltage called Vterm (V subscript TERM), and Vterm's value is minimum 3V maximum 3.6V. (I think there is an engineering change notice in that set of documents which recommends that devices should be able to cope with a voltage of up to 4.1V, but I can't see it now)
2. The pull-up resistor should not be pulled up to 5V.
So, if you really wanted to connect the pull-up to 5V USB, you could get a value in the 3V to 3.6V range using a couple of diodes in series which will drop about 0.7V each.
(full disclosure: I am not a member of LeafLabs staff)