I also recommend USB Made Simple [1], which has similar vibe to this site, but also includes USB 2.0 description and is a bit more detailed on electrical/low level aspects.
For an actual implementation, see V-USB [2] - surprisingly readable software library for bit-banging USB on AVR (Arduino/ATTiny/ATMega)
For an actual implementation, see V-USB [2] - surprisingly readable software library for bit-banging USB on AVR (Arduino/ATTiny/ATMega)
[1] https://www.usbmadesimple.co.uk/index.html
[2] https://github.com/obdev/v-usb