Forum: Mikrocontroller und Digitale Elektronik Fragen zu USB: Vendor-ID, Kosten, AT90USB, Mac


von Marc M. (macmek)


Lesenswert?

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

von René K. (king)


Lesenswert?

> 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

von Εrnst B. (ernst)


Lesenswert?

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

von Thomas (Gast)


Lesenswert?

"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

von René K. (king)


Lesenswert?

> 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.

von Amateurfunker (Gast)


Lesenswert?

Schau mal unter www.summer-event.de im Mikrocontroller Bereich nach.

von Erwin Reuss (Gast)


Lesenswert?

> 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

von Dieter Werner (Gast)


Lesenswert?

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

von Marc M. (macmek)


Lesenswert?

Und was mache ich wenn ich die 2000$ nicht ausgeben möchte ?

von Bernd R. (Firma: Promaxx.net) (bigwumpus)


Lesenswert?

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.

von Kai (Gast)


Lesenswert?


von Ulrich P. (uprinz)


Lesenswert?

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

von Stefan Salewski (Gast)


Lesenswert?

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

von Ulrich P. (uprinz)


Lesenswert?

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

von gerhard (Gast)


Lesenswert?

hallo,
hier noch eine quelle für PID's:
http://www.mecanique.co.uk/products/usb/pid.html

gruss
gerhard

von Markus (Gast)


Lesenswert?

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?

von Bernd R. (Firma: Promaxx.net) (bigwumpus)


Lesenswert?

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!

von Gast (Gast)


Lesenswert?

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?

von Markus (Gast)


Lesenswert?

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ß

von Gast (Gast)


Lesenswert?

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. :-)

von Sebastian K. (bastik)


Lesenswert?

abo

von Markus (Gast)


Lesenswert?

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 ;)

von Steffen (Gast)


Lesenswert?

... 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
Noch kein Account? Hier anmelden.