I'm currently working on a project using an ATMega328P and the V-USB library. V-USB is meant to be USB 1.1 compliant, and the documentation mentions that 3.3V is expected on the D+ and D- lines by the host.
I want to run my microcontroller off the 5V supply that USB provides. I need 5V to guarantee it can operate at 20MHz. However, this would mean that the D+ and D- lines would be communicating at 5V.
Can I do this or do I risk damaging my USB port? If it's an issue, what would be the best method of shifting the voltage levels? The wiki page below has some solutions but I'm not sure what would be best.