This Low-Speed device violates following USB specification rules:
Detachable cable (must be captive for Low-Speed)
Output drivers with 5 V (must be 3.3 V, but USB is 5 V tolerant)
No differential data input (only one line D- is sampled)
No data clock regenration while receiving (only at packet start)
No error detection of input data (OUT direction), no time for CRC16
Data transfer using BULK pipes (not specified for low-speed,
but works on Windows – for Linux there is an "Alternate Setting"
with INTERRUPT pipes instead)
However, new to this firmware, following rules are accepted:
Suspend detection and lowered suspend current (below 500 µA)
Schematic and
PCB,
Source, Programming Interface: Wiring That's right, my USB2LPT5 only needs two port pins for USB,
no additional INT pin. I use the Input Capture interrupt of Timer1.
As a side effect, I can exactly measure the time between two SOFs.