Fragen zu USB: Vendor-ID, Kosten, AT90USB, Mac Trotz stundenlanger Suche habe ich noch Fragen... Ich habe den ATmega64 einigermassen im Griff, nur fehlt mir nun die USB Schnittstelle, da ich lieber Hardware habe werde ich ein paar AT90USB1287 bestellen. Doch schon auf der Atmel-Webseite geht es los: Warum muss ich mich für Beispielcode registrieren ? (Das ist für die Geheimhaltung nutzlos, was wollen die mit meinen Daten ?) Wie erhalte ich eine USB Vendor-ID und Product-ID ? (Brauche ich das ?) Kostet das was ? Wie gross ist der Aufwand um einen Befehl via USB zu empfangen, verglichen mit der USART Programmierung ? Hat schon jemand von einem Mac auf einen AT90USB1287 zugegriffen ? Kennt jemand weitere deutschsprachige Anleitungen ? Soviel fürs erste ;) Vielen Dank schon mal im vorraus! MacMek
> da ich lieber Hardware habe werde ich ein paar AT90USB1287 > bestellen. Bist Du sicher, daß Du gleich mit einem On-The-Go Controller starten willst? Vielleicht solltest Du Dich besser erstmal an einem 1286 versuchen (einfach nur 'ne function). > Doch schon auf der Atmel-Webseite geht es los: Warum muss ich mich > für Beispielcode registrieren ? Das kann Dir nur Atmel selbst beantworten, frag die. > Wie erhalte ich eine USB Vendor-ID und Product-ID ? Stundenlang gesucht und nicht auf www.usb.org gelandet? Wie ist das möglich? FAQ 12, http://www.usb.org/developers/usbfaq/#12: "Q: How do I get a USB VID, TID and PID? A: Vendor IDs (VIDs) are owned by the vendor company and are assigned and maintained by the USB-IF only. Email admin@usb.org for more information on USB-IF membership and obtaining a VID." Alternativ bieten Dir einige Hersteller an, deren VID mitzubenutzen. Wie das bei Atmel ist, kann ich Dir eben aber auch nicht sagen. > (Brauche ich das ?) Ja, brauchst Du. > Kostet das was ? Wenn Du den VID eines Herstellers mitbenutzen kannst, ist das in der Regel kostenlos. Willst Du einen eigenen VID haben, kostet das natürlich. Ich habe seinerzeit 1500 USD bezahlt. Soweit ich weiß, sind die Preise aber inzwischen gestiegen. Das kannst Du aber unter der oben angegebenen Mail-Adresse erfragen, dann weißt Du's ganz genau. > Wie gross ist der Aufwand um einen Befehl via USB zu empfangen, > verglichen mit der USART Programmierung ? Das ist kein großer Aufwand, das USB Protokoll ist glücklicherweise sehr simple gestrickt. Du mußt im Prinzip nur erstmal dafür sorgen, daß das Gerät vom Host erkannt wird (der Rest geht dann wie von selbst). Da aber nahezu jeder Hersteller von USB-Controllern ausführliche Samples zur Verfügung stellt, ist das kein Problem. Diese kannst Du an Deine Bedürfnisse anpassen. > Hat schon jemand von einem Mac auf einen AT90USB1287 zugegriffen ? Ich schon mal nicht, nein. > Kennt jemand weitere deutschsprachige Anleitungen ? Jan Axelson, USB 2.0 Handbuch für Entwickler http://www.amazon.de/gp/product/3826615115/302-2175225-7516820?v=glance&n=299956
Vorneweg: Kenne die Atmel USB Chips nicht, hab bislang USB über EzUSB (8051er clone) und PIC18fx550 verwendet. Denk aber mal das die AVR-Hardware da ähnlich ist. Vendor-ID: Kostet so 15.000 $, etwas teuer für kleinserien. Gibt aber ein paar Anbieter die eine eigene Vendor ID haben, und dann Product-IDs aus ihrem Bereich einzeln weiterverkaufen. Aufwand ist schon deutlich höher als einfach USART, aber auch nicht extrem schwierig, gibts ja schliesslich fertige Frameworks für. Zugriff vom Mac aus: Keine Ahnung, aber wenn's libusb auch für den Mac gibt, ist das vermutlich trivial. Deutsche Anleitungen kenn ich nicht. /Ernst
"Vendor-ID: Kostet so 15.000 $, etwas teuer für kleinserien" falsch eine VID kostet seit ein paar Jahren 1500 USD Früher gabs die für 200 USD. Die Software wird auf jedenfall etwas umfangreicher als bei einer RS232 Anbindung. Du braucht auch noch einen Treiber auf der PC Seite. Thomas
> falsch eine VID kostet seit ein paar Jahren 1500 USD Ich habe doch bereits gesagt, daß die Preise gestiegen sind. Etwas genauer: http://www.usb.org/phpbb/viewtopic.php?t=8758 > Du braucht auch noch einen Treiber auf der PC Seite. Logisch, aber den braucht's auch für RS232.
Schau mal unter www.summer-event.de im Mikrocontroller Bereich nach.
> Bist Du sicher, daß Du gleich mit einem On-The-Go Controller starten > willst? Vielleicht solltest Du Dich besser erstmal an einem 1286 > versuchen (einfach nur 'ne function). Die Funktion muß ja nicht genutzt werden. Der 1287 kann auch ganz nomal als USB-Device programmiert werden. Abgesehen davon ist der AT90USB1286 derzeit noch gar nicht lieferbar, wie auch die 64k-Typen. Ich verstehe auch nicht, warum Atmel aus den Demo-Sourcecodes inzwischen ein Geheimnis macht. Immerhin dienen diese Beispiele ja dazu, daß Programme entwickelt werden, durch die wiederum der Verkauf der Controller gesteigert wird. Natürlich ist die Programmierung eines USB-Controllers nicht so einfach, wie die einfache Ansteuerung einer UART-Schnittstelle. Den meisten Aufwand macht hier sicher die Enumeration, wenn aber das einmal überstanden ist, kann man mit relativ einfachen Routinen Daten über USB senden und empfangen. Erwin Reuss
Wenn ich die Angaben auf usb.org richtig gelesen habe kostet die Mitgliedschaft im USB IF 4000 USD pro Jahr, die Benutzungsgebühr für USB Logos 2000 USD pro Jahr und eine VID einmalig 2000 USD. Dieter
Und was mache ich wenn ich die 2000$ nicht ausgeben möchte ?
Da gibt es so eine holländische Site, die vergibt Unter-VIDs für USB für wenig Kohle. Suche mal nach USB VID und so.
10 PIDs: http://www.voti.nl/shop/catalog.html?USB-PID-10 100 PIDs: http://www.voti.nl/shop/catalog.html?USB-PID-100
Hi! Entwickle gerade auf einem AT90USB1287. Es ist wegen der zahlreichen Beispiel-Codes von ATMEL kein größeres Problem gewesen. Ich nutze auch nur die Device-Funktion, wollte mir den Host aber offen halten und der Preisunterschied ist marginal. Das zu entwickelnde System ist ein Testsystem für den innerbetrieblichen Gebrauch. Dafür ist der Erwerb einer VID/PID nicht erforderlich. ATMEL erlaubt die Verwendung der ATMEL VID/PID für entwicklerische Zwecke ausdrücklich. Wenn Du etwas entwickelst, selbst, wenn Du es online stellst (wohlgemerkt als Quelltext!) dann wird ATMEL gegen die Verwendung ihrer VID/PID nichts einwenden. Ich habe aber gerade eine Anfrage laufen, ob ATMEL einen Mini-Range ( max. 8 PIDs) unter ihrer VID zur Verfügung stellen, bzw. gegen Lizenzgebühr verkaufen. Ich melde mich, wenn ich was erfahren habe. Zur Entwicklung: Am einfachsten startet man mit einem CDC Device, das ist am leichtesten verständlich, wenn man sich bei usb.org die passende Dokumentation herunter lädt. Ich habe das original etwas erweitert, ATMEL ist es noch am prüfen und wird es online stellen, es hängt hier im Forum aber auch schon an meinem andern Thread an. Ich kann nur sagen, dass es Spaß gemacht hat sich in das Thema USB einzuarbeiten. Wird immer viel gemunkelt, ist aber doch nur ein Bus:) Gruß, Ulrich
Ulrich P. (uprinz) schrieb am 21.08.2007 um 22:00 Uhr: >Entwickle gerade auf einem AT90USB1287. Es ist wegen der zahlreichen >Beispiel-Codes von ATMEL kein größeres Problem gewesen Schön das mal jemand etwas positives schreibt! Vor ca. einem Jahr konnte man sich die Beispiel-Quelltexte ja erst nach Registrierung runterladen bzw. diese mit Passwort entpacken, und sie waren auch nicht so ohne weiteres für den avr-gcc geeignet. Zudem gab es da grässliche Lizensbestimmungen (soweit ich mich erinnere). Ich habe mir die Atmel-Quelltexte deshalb nie näher angesehen. Ist das noch immer so? >Das zu entwickelnde System ist ein Testsystem für den innerbetrieblichen >Gebrauch. Dafür ist der Erwerb einer VID/PID nicht erforderlich. ATMEL >erlaubt die Verwendung der ATMEL VID/PID für entwicklerische Zwecke >ausdrücklich. Hätte ich auch erwartet -- steht das auch irgendwo schwarz auf weiss? >Wenn Du etwas entwickelst, selbst, wenn Du es online stellst >(wohlgemerkt als Quelltext!) dann wird ATMEL gegen die Verwendung ihrer >VID/PID nichts einwenden. >Ich habe aber gerade eine Anfrage laufen, ob ATMEL einen Mini-Range ( >max. 8 PIDs) unter ihrer VID zur Verfügung stellen, bzw. gegen >Lizenzgebühr verkaufen. >Ich melde mich, wenn ich was erfahren habe. Interessant! Du sprichst jetzt aber nicht als offizieller Atmel-Mitarbeiter? Gruß Stefan Salewski http://www.ssalewski.de/Misc.html.de
Hi! Nein, ich bin kein offizieller ATMEL Mitarbeiter, sondern nur ein Entwickler, der neue Erkenntnisse bei AppNotes von Herstellern auch an diese zurück fließen lässt. Da ich auf Basis der cdc_demo_1.0.3 etwas machen wollte, mir aber der bNotification Teil der CDC Spec 1.1 fehlte habe ich diesen implementiert und das an ATMEL zurück geschickt. Die fanden es gut und werden es übernehmen, damit alle was davon haben. Zum Thema VID/PID sagt ATMEL folgendes:
1 | Here under the Official FAQ: |
2 | |
3 | Question |
4 | Can we use ATMEL VID/PID? |
5 | |
6 | Answer |
7 | The Customer can use ATMEL VID/PID following the below conditions: |
8 | Customer may keep the Atmel Vendor Identifier (Atmel VID) and Product Identifier (PID) in their product that integrates an Atmel USB Flash Microcontroller (“Integrated Product”) from one Atmel original example subject to the following acknowledgments and/or conditions: |
9 | Customer must execute Atmel’s Limited License Agreement |
10 | Customer cannot apply to USB compliance testing with the USB-IF, therefore Customer cannot use the USB logo for an Integrated Product using the Atmel VID. |
11 | All software is provided AS IS and Customer is responsible to insure the USB compliance of the Integrated Product. |
12 | Customer must integrate the Atmel USB Flash Microcontroller Software and the USB descriptors with no changes[1] apart from: |
13 | The manufacturer string, which must include the Customer’s URL address and finish with “powered by Atmel®”: e.g. “www.customer.com powered by Atmel®”. |
14 | The maximum power fields, which must be compatible with the actual power consumption of the Integrated Product for each possible USB configuration |
15 | [1] In particular, no change should be made to the Language Identifier, the Manufacturer Identifier, the Product Identifier, the Serial Number. Atmel software and integrated circuits may or may not provide a unique serial number. |
16 | -- |
17 | |
18 | Unfortunately ATMEL does not offer other PID/VID. If you build another application with the same USB configuration, you can use the same VID/PID but with for example different string of serial number. |
19 | Another solution: |
20 | Other 3rd party on the web offer to buy a small range of their VID (about 10) for a couple of $ |
Übersetzt und vereinfacht heißt das: Ein Kunde kann die ATMEL VID/PID in sein Produkt integrieren, tritt aber alle Rechte an dieser VID/PID an ATMEL ab. Eine Zertifizierung ist nicht möglich, es muss ein Vertrag mit ATMEL geschlossen werden, das ATMEL Copyright muss in der der Hersteller-ID geführt werden. ATMEL verkauft keine VID/PID Kombinationen an Kunden, verweist aber auf im Internet offerierte günstige Angebote für solche. Um das Problem zu Umgehen, dass man mehrere Produkte entwickelt, die auf dem gleichen Controller basieren, aber unterschiedliche Treiber, Namen... benötigen, so kann man über die Seriennummer einen Unterschied machen. Windows weist gleichen Produkten nur dann einen festen Platz und Treiber zu, wenn sie die gleiche Seriennummer haben. Die Seriennummer löst auch das Problem, dass ein COM-Port nicht immer wandert, wenn der USB-Seriell Wandler an einen anderen USB-Port des gleichen Rechners angeschlossen wird. Ich habe auch diesbezüglich das cdc_demo_1.0.3 abgeändert, dort wurden die String-Descriptoren bislang nicht unterstützt. Eine identische Seriennummer verhindert auch das neuinstallieren der Treiber obwohl das gleiche Modul nur an einen anderen USB-Port gestöpselt wurde. Aber genau diesen Mechanismus kann man verwenden, um eben einer anderen Entwicklung mit gleicher VID/PID einen anderen Treiber unterzujubeln. Andererseits sind 10 PIDs für etwa 25€, wie es die oben angesprochenen Niederländer anbieten, nicht wirklich teuer. Ich überlege sogar dies für meine Entwicklung zu buchen, obwohl diese nur Firmenintern verwendet wird. Es kann aber später das Leben vereinfachen, wenn Kollegen die Software auf ihren Notebooks installieren und dann später andere Produkte auf Basis eines ATMEL Chips folgen, die andere Treiber brauchen. Gruß, Ulrich
hallo, hier noch eine quelle für PID's: http://www.mecanique.co.uk/products/usb/pid.html gruss gerhard
Ich bin jetzt etwas verwirrt. Bei dem Holländer kann man 10 PIDs kaufen (oder 100, wer's braucht). In dem Atmel Schreiben steht was von VID für ein paar Dollar
1 | Other 3rd party on the web offer to buy a small range of their VID (about 10) for a couple of $ |
Was krieg ich denn jetzt wenn ich da in Holland was kaufe? Und was brauch ich dann noch? Bringt es mir etwas wenn ich 10 PIDs kaufe und keine VID hab?
Du kaufst eine VID/PID-Kombi, die weltweit niemand anderes legal verwenden wird. Die VID ist für den Holländer eingetragen. Wie sich die Geräte melden, bleibt Deiner freien Phantasie überlassen!
Hallo Markus, zu den PIDs gehört automatisch eine VID dazu. Der Anbieter in Holland besitzt die Rechte an einer VID und bietet PIDs an. Am besten kann erklären, was man bekommt wenn man etwas kauft, in der Regel der Verkäufer. Also einfach dort nachfragen! Mit "a small range of their VID" sind eben genau diese PID gemeint. In einem Bild: Die Holländer haben ein Buch (=VID) mit 65536 Seiten (=PIDs) gekauft und verkaufen jetzt die Seiten (=PIDs) in 10er-Packs; behalten aber den Umschlag (=VID-Lizenz). Jetzt alles klar?
Hi, ja, jetzt sollte es klar sein, danke. Mir war nicht klar das da eine VID dazu gehört. Aber ich nehme mal an das sich die Geräte dann mit dem Namen Voti.nl anmelden oder ich als Vendor Namen den Namen des VID Eigners eintragen muß
Hallo Markus, wenn ich das richtig überflogen habe, dann braucht das Gerät selber in den Descriptoren keinen Hinweis auf die Holländer zu enthalten. Da kannst Du Dich also austoben. Allerdings werden manche USB-Programme, wenn sie auf die USB.org-Lizenzdatenbank zurück greifen, trotzdem noch den Lizenzinhaber der VID ausweisen. Ansonsten: einfach selber eine VID mit PID 0x000 bis 0xFFFF kaufen und dann die PIDs verhökern. Wo bei 65536 PIDs je VID der break-even liegt, lässt sich ja einfach ausrechnen. :-)
Wäre natürlich auch eine Option eine VID selber zu kaufen und die überflüssigen 65526 PIDs zu verhökern. Kann allerdings dauern bis man die los ist. Eine Investition in die Zukunft ;)
... und heute scheint eine VID 5000$ zu kosten, wahnsinn! Und angefangen hat das mit 200$? Klar, wenn das VID-Feld nur aus 2^16 Bits besteht, muss man mit einer Preispolitik dafür sorgen, dass nicht zu viele eine VID beantragen. Wenn man sich http://www.linux-usb.org/usb.ids anschaut, fällt auf, dass der VID-Raum schon in allen Bereichen Einträge aufweist, aber mit ordentlich Lücken dazwischen. Weiss jemand, wie viele % vom VID-Raum schon vergeben sind?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.