Certains microcontrôleurs PIC 18F ou AVR permettent de créer des périphériques USB. En effet, ils sont équipées de SIE (Serial Interface Engine) dédiés, d'un contrôleur d'interruptions... Mais de brillants bidouilleurs ont réussi à implémenter le protocole USB sur les plus modestes PIC 16F ou AVR ATtiny qui ne disposent pas de SIE !

  • projet espagnol : le PIC 16F84A est overclocké à 24 MHz (au lieu de 20 MHz) de façon à disposer de 4 (!) instructions pour traiter chaque bit reçu sur le bus USB, directement connecté sur un port d'E/S du PIC. Malheureusement, le firmware n'est pas en ligne ;
  • USBtiny : communication par USB sur un ATtiny, en GPL. Un article est consacré à ce projet dans GNU/Linux Magazine France de décembre 2007.

Le projet USB host sur un PIC 18F est également très intéressant, car ils se distingue des précédents qui réalisent des devices USB. Il est réalisé avec SIE externe (Cypress SL811HS). Cette page pointe par ailleurs vers un cours succinct sur le protocole USB. Pour plus de détails, voir « USB in a Nutshell » ou la spécification elle-même.