Firmware & Circuit of ATtiny45 direct USB 2.0 Connection

Basically, USB is a high level communication protocol with specific requirements for signal line level driving, timing and terminating. It is not as simple as serial, it has differential data lines and NRZI encoding, required polling, handshaking, etc. That is why you need a USB/Serial adapter, or why you need a USB hardware or software implementation.

While USB uses 5V power, the signal lines are actually 3.3V to 3.6V. This is why the VUSB circuit you show uses zener diodes on those two lines. The Tiny cannot simply run at 3.3V because it cannot be clocked at the needed 16MHz at 3.3V.

The rest of the parts, R1-R3, D1, D2, and C1, C2 are bare minimum required parts. That is not really asking alot for the features you get. See this page for a list of all the projects that use vusb.

The switch, R4, and LED1 are all part of the specific data logging firmware example, and can be avoided if you don't need it/change the firmware.


You can communicate the ATtiny45 to USB directly, without a FTDI converter.

To make everything work you will need the V-USB library.

A very good example of everything working is here, that it uses the same example from EasyLogger.

The same author have some other nice tips and projects with USB and uC.

A sample circuit with the ATtiny:

schematic

simulate this circuit – Schematic created using CircuitLab