Um ein Byte zu übertragen braucht man 16 verschieden Ausgangszustände hintereinander (High und low Phase des taktes). Das Senden sollte dabei noch einigermaßen gehen, langsamer dürfte vor allem das Daten Empfangen sein.
Da wird man eventuell für jedes Bit ein ganzes Datenpaket über den USB lesen müssen. Das macht dann rund 2000 Bytes lesen für 1 byte Nutzdaten. Dazu kommen dann noch die Latenzzeiten bis daten wirklich geschickt werden. Wenn man Pech hat muß man dann auch noch ähnlich viel an Daten rüberschicken. Ein Beschreibung der Programmierung sollte man z.B. in der Documentaion oder im Code von AVRDude finden.