USB-Anbieter-ID-Verwirrung

Ich möchte ein USB-HID-fähiges Gerät mit einem AVR herstellen, das ich hoffentlich verkaufen würde, aber ich weiß, dass das USB-IF pingelig wird, wenn es darum geht, wie genau USB in kommerziellen Produkten implementiert wird. Ich möchte alles Arduino IDE-kompatibel halten, also sehe ich im Moment, dass ich zwei grundlegende Optionen habe:

  • Verwenden Sie so etwas wie den im Leonardo verwendeten ATmega32u4, um hardwarebasierte USB-Unterstützung zu erhalten
  • Verwenden Sie v-usb auf etwas wie dem ATMega328p, um softwarebasierte USB-Unterstützung zu erhalten

Mir gefällt die Idee des 32u4, aber ich möchte das Produkt zu einem Bausatz machen, und die Oberflächenmontage ist nicht sehr Bausatzfreundlich. Durchgangsloch wäre mir lieber.

v-usb ist definitiv machbar und würde mich einen Through-Hole-Chip (328p) verwenden lassen, aber die USB-Implementierung würde Flash-Speicherplatz verbrauchen.

Hier ist jedoch meine Hauptfrage: Muss ich bei beiden eine USB-Anbieter-ID erhalten? Ich dachte, vielleicht einfach mit dem 32u4 zu gehen, vorausgesetzt, es hätte bereits eine ID eingebaut und ich war damit einverstanden, dass das Gerät sich selbst als AVR darstellt, aber einige Dinge, die ich gelesen habe, lassen mich glauben, dass ich immer noch meine eigene ID brauchen würde und übergebe das an den Chip. Ich könnte mir vorstellen, dass ich unbedingt einen für v-usb haben müsste, aber eine Softwareimplementierung ist sogar technisch gültig und darf eine ID haben. v-usb scheint mit einer ID zu versenden, die für Bildungszwecke gekennzeichnet ist, und sie bitten Sie, sie nicht zu verteilen ... aber ist das nur für kommerzielle Zwecke oder kann ich sie verwenden, solange sie nur für ein Kit ist?

Zum größten Teil würde ich es vorziehen, alles zu tun, was ich kann, um überhaupt keinen zu brauchen, da ich mir die mehreren tausend Dollar, die es kosten würde, nicht leisten kann.

Das 32u4 hat keine ID eingebaut, es wird von der Firmware gesetzt und in boards.txt konfiguriert: github.com/arduino/Arduino/blob/master/hardware/arduino/… (Siehe Zeilen 163/164 für die Leonardo-Konfiguration ).
Microchip hat ein Unterlizenzprogramm für USB-Anbieter, um Ihre eigene Anbieter-ID für bis zu 2.000 Einheiten zu erhalten, denke ich ( ww1.microchip.com/downloads/en/DeviceDoc/… ). Ich weiß nicht, ob AVR das gleiche anbietet, aber ich wäre nicht überrascht.

Antworten (2)

http://support.atmel.com/bin/customer.exe?=&action=viewKbEntry&id=220

Es scheint, wenn Sie bereit sind, ihre Einschränkungen und Beschränkungen zu umgehen, könnten Sie vielleicht einfach ihre über den obigen Link verwenden.

Ich persönlich habe Microchip und ihr Unterlizenzprogramm für ein kleines Projekt von mir verwendet. Ich konnte bei Atmel nichts Äquivalentes finden, obwohl es nicht schaden würde zu fragen.

Wenn Ihr Projekt (Hardware und/oder Software) unter einer FOSS-Lizenz veröffentlicht wird, können Sie kostenlos eine ID von Openmoko erhalten .