Skip to main content
2 of 2
added 357 characters in body

USB 1.1 Low Speed project for Arduino UNO/ATmega328P to learn USB protocol

Arduino UNO is 5V, 16 MHz.

USB 1.1 Low Speed spec operate:

  • at 5V level - so we avoid to maintain voltage level
  • at 1.5 Mb/s - so we have 16/1.5 ~= 10 instructions per elementary protocol signal

Is it possible to make Arduino as slave USB device from UART lines connected to USB D+/D- interface with careful timing and assembler programming?

I doesn't familiar with ATmega328P pin I/O capabilities, may be them can't operate at 1.5 MHz so project isn't possible?

UPDATE I found V-USB library that:

implementation of a low-speed USB device for Atmel’s AVR® microcontrollers,
making it possible to build USB hardware with almost any AVR® microcontroller,
not requiring any additional chip.

Still dig into docs to realize possibilities.