Forum: PC Hard- und Software Lizent STM VCP Treiber


von Stefan F. (Gast)


Lesenswert?

Verstehe ich die Lizenz richtig, dass ich den Treiber nicht für 
Kommerzielle Produkte nutzen kann?

http://webcache.googleusercontent.com/search?q=cache:ZRMfPu14HDEJ:www.st.com/resource/en/license_agreement/dm00218346.pdf+&cd=1&hl=de&ct=clnk&gl=de&lr=lang_de%7Clang_en&client=firefox-b-ab

Ich möchte ein Gerät mit einem STM32 Mikrocontroller bauen, dass über 
USB mit einem PC verbunden wird. Dazu benötigt man diesen Treiber.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

> Unless otherwise explicitly stated in this Agreement, You may not
> sell, assign, sublicense, lease, rent or otherwise distribute the
> Licensed Software for commercial purposes, in whole or in part.

Ja. Kommerzieller Gebrauch ist nicht angesagt.

Wenn Du die Funktionalität kommerziell nutzen willst, musst Du entweder 
bei ST anfragen, ob sie Dir eine kommerzielle Lizenz verkaufen, oder 
aber eine andere Lösung finden - vergleichbare Software woanders kaufen 
oder aber sie selbst entwickeln.

von Stefan F. (Gast)


Lesenswert?

Genau der von Dir zittierten Satz ist mir auch sauer aufgestoßen.

Wenn ich den USB Treiber selbst entwicklen (oder extra bezahlen) muss, 
kann ich gleich einen FTDI (oder ähnlichen) Chip nehmen. Denn wenn ich 
etas produzieren, dann sind es meistens nur Einzelstücke in Handarbeit. 
Meine größte Serie waren mal 10 gleiche Platinen 10x8cm (nix mit USB).

Ich denke, ein separater Standard USB-UART ist ohnehin die bessere Wahl, 
weil deren Treiber besser und länger gepflegt werden. Und notfalls kann 
ich den USB-UART durch einen anderen austauschen, falls es in Zukunft 
mal zu kompatibilitätsproblem mit Betriebsystemen kommen sollte.

Es hat ja nicht jeder Kunde Linux - leider. Denn da bräuchte man sich um 
die Treiber gar keine Gedanken machen.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Stefan U. schrieb:
> Ich denke, ein separater Standard USB-UART ist ohnehin die bessere Wahl,
> weil deren Treiber besser und länger gepflegt werden

USB-CDC ist eine Standardgeräteklasse, für die jedes Betriebssystem von 
Hause aus Devicetreiberunterstützung mit sich bringt. Ältere 
Windows-Versionen brauchten noch etwas Nachhilfe in Form einer 
*.inf-Datei, aber der Treiber selbst war schon immer dabei.

Wenn Du USB-UARTs à la FT232 verwendest, ist das nicht USB-CDC, 
sondern etwas proprietäres des jeweiligen Herstellers, dem Du auf Gedeih 
und Verderb ausgeliefert bist, auf daß er doch bitte Devicetreiber für 
das von Dir genutzte Betriebssystem zur Verfügung stellen möge.

FTDI macht das bislang ziemlich gut, aber z.B. Prolific hat die 
Unterstützung für ältere Varianten des PL2303 einfach eingestellt. Den 
kann man mit neueren Windows-Versionen nicht mehr verwenden.

Microchip stellt eine USB-UART her, die USB-CDC implementiert, und fällt 
damit etwas aus dem Rahmen.

von Stefan F. (Gast)


Angehängte Dateien:

Lesenswert?

> Prolific hat die Unterstützung für ältere Varianten des PL2303
> einfach eingestellt. Den kann man mit neueren Windows-Versionen nicht mehr
> verwenden.

Hier ist der Prolific Treiber für Windows 8 und 10: 
http://stefanfrings.de/avr_tools/PL2303_Prolific_GPS_1013_20090319.exe
Das ist nicht der neueste Treiber, aber der geht mit alten Adaptern.

> USB-CDC ist eine Standardgeräteklasse, für die jedes Betriebssystem
> von Hause aus Devicetreiberunterstützung mit sich bringt.

Interessant. Ich habe das Ding gerade mal an den Laptop meiner Frau 
angeschlossen (da war noch nie irgendein seriellen USB Gerät dran). Und 
siehe da, es wurde direkt erkannt. Zwar nicht mit "STM32" in Namen, aber 
das ist egal.

Danke für deinen Hinweis.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Stefan U. schrieb:
> Das ist nicht der neueste Treiber, aber der geht mit alten Adaptern.

Das mag zwar vielleicht noch eine Weile lang funktionieren, aber mit 
Stefans Anforderung

> Ich denke, ein separater Standard USB-UART ist ohnehin die
> bessere Wahl, weil deren Treiber besser und länger gepflegt werden.

hat das irgendwie gar nichts zu tun.

Prolific selbst hat den PL-2303HX(Chip Rev A) und PL-2303X bereits im 
Oktober 2012 abgekündigt und weist darauf hin, daß es dafür keine 
Windows-8-Treiber (und folglich auch nichts neueres) geben wird.

von Stefan F. (Gast)


Lesenswert?

Da hast du Recht. Ich muss jederzeit damit rechnen, meine alten Prolific 
Kabel nicht mehr verwenden zu können. Und davon habe ich einige.

Deswegen habe ich ja gerade das Thema Treiber+Zukunft auf dem Schirm.

Insofern freut es mich sehr, daß ich für die USB Schnittstelle der STM32 
Controller gar keine Treiber brauche.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Stefan U. schrieb:
> Insofern freut es mich sehr, daß ich für die USB Schnittstelle der STM32
> Controller gar keine Treiber brauche.

Das kannst Du so natürlich nicht verallgemeinern. Du brauchst nur dann 
keine Treiber, wenn Deine Software auf dem STM32 eine der 
Standardgeräteklassen (HID, CDC, Mass Storage etc.) verwendet. Bei allem 
anderen brauchst Du sehr wohl Treiber.

Die interessante Frage aber, die sich jetzt aufdrängt, ist die, woher 
dieser Lizentext eigentlich stammt. Beschreibt der die Lizenz eines 
(Windows-) Treibers, oder beschreibt der die Lizenz der 
CDC-Implementierung /auf dem STM32/? In letzterem Falle hättest Du 
nämlich noch gar nichts gewonnen ...

von Felix F. (wiesel8)


Lesenswert?

Darf die Software für Open Source Projekte verwendet werden? (Welche ja 
auch kommerziell vertrieben werden können?)

mfg

von Stefan F. (Gast)


Lesenswert?

> Die interessante Frage aber, die sich jetzt aufdrängt, ist die,
> woher dieser Lizentext eigentlich stammt.

Der Lizenztext befindet sich auf der Download Seite von STM, da wo man 
den Treiber findet.

Für die CDC Implementierung auf dem µC gibt es eine andere weniger 
restriktive Lizenz.

Und für den Windows Treiber ist der Lizenztext meiner Meinung nach 
unpassen, da ST eigentlich nur das überflüssige Installationsprogramm 
(für die INF Datei) beigesteuert hat. Der Treiber selbst ist ja nichtmal 
in dem Paket drin, er ist Bestandteil von Windows.

> Du brauchst nur dann keine Treiber, wenn Deine Software auf dem STM32
> eine der Standardgeräteklassen (HID, CDC, Mass Storage etc.) verwendet.

Ja, es geht mir um CDC.

> Darf die Software für Open Source Projekte verwendet werden?

Nein, die Lizenz unterscheidet nicht nach Art der Anwendung. Jede Art 
von Weitergabe ist untersagt. Wenn du also deinen Kunden (oder deinen 
beschenkten Freunden) den STM Treiber bereitstellen willst, musst du 
ihnen mitteilen, wie man ihn auf der Webseite von STM findet. Kopieren 
zur Weitergabe ist verboten.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Stefan U. schrieb:
> Der Lizenztext befindet sich auf der Download Seite von STM, da wo man
> den Treiber findet.

Was genau ist "der Treiber"? Ist das nur die (mittlerweile überflüssige) 
*.inf-Datei, um CDC mit Windows zum Laufen zu bringen, oder was?

von Stefan F. (Gast)


Lesenswert?

Das haben wir doch in diesem Thread ausführlich erörtert. Ich dachte, 
wir beide sind mit dem Thema längst durch.

Der VCP Treiber von STM besteht aus einem Installationsprogramm und 
einer INF Datei, welche lediglich den Treiber von Windows konfiguriert. 
Windows erkennt die Geräte, welche die Cube HAL Library benutzen, jedoch 
auch von alleine.

Aber wenn du meinst, ihn zu brauchen, tu Dir keinen Zwang an. Für deinen 
eigenen nicht kommerziellen Bedarf darfst du ihn kostenlos 
herunterladen.

http://www.st.com/en/development-tools/stsw-stm32102.html

Und hier nochmal der Link zum Lizenztext in Googles Cache, denn bei STM 
ist die Datei zur Zeit verschwunden:

http://webcache.googleusercontent.com/search?q=cache:ZRMfPu14HDEJ:www.st.com/resource/en/license_agreement/dm00218346.pdf+&cd=1&hl=de&ct=clnk&gl=de&lr=lang_de%7Clang_en

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Stefan U. schrieb:
> Aber wenn du meinst, ihn zu brauchen, tu Dir keinen Zwang an. Für deinen
> eigenen nicht kommerziellen Bedarf darfst du ihn kostenlos
> herunterladen.

Du verstehst mich miss. Mich interessiert das Ding nicht; ich wollte 
Dir helfen und versuchen, Klarheit zu schaffen.

Was etwas merkwürdig ist, ist die Behauptung (seitens ST), daß der 
"Treiber" Open Source wäre, aber der "Treiber" wiederum Deiner 
Schilderung zufolge aus einem (überflüssigen) Installationsprogramm und 
der *.inf-Datei besteht. Um Treiber zu installieren, braucht man keine 
Installationsprogramme. Wie funktioniert Open Source ohne Source?

Aufgrund dieser Merkwürdigkeit nahm ich an, daß sich die Lizenz nicht 
auf den "Treiber" selbst, sondern auf den CDC-Sourcecode bezieht, den ST 
wohl anderswo zur Verfügung stellt.

von Stefan F. (Gast)


Lesenswert?

> ich wollte Dir helfen und versuchen, Klarheit zu schaffen.

Ach so, das hast du längst getan. Dein Hinweis darauf, daß Windows CDC 
Devices von alleine erkennt, war für mich sehr hilfreich.

> Wie funktioniert Open Source ohne Source?

Gute Frage, ich verstehe auch nicht, warum die um ihre INF Datei herum 
ein Paket gebaut haben, das wiederum in ein Setup-Programm eingebettet 
ist, dass wiederum gepackt ist, dass wiederum in ein weiteres Setup 
Programm eingebettet ist.

Vielleicht wollten sie genau diese Ungereimtheit verbergen.

Dabei hätte eine simple ZIP Datei als Download genügt.

> Aufgrund dieser Merkwürdigkeit nahm ich an, daß sich die Lizenz nicht
> auf den "Treiber" selbst, sondern auf den CDC-Sourcecode bezieht, den
> ST wohl anderswo zur Verfügung stellt.

In diesem Paket ist der Quelltext der CDC Library für den µC enthalten: 
http://www.st.com/en/embedded-software/stm32cubef1.html

Und tatsächlich, auch hier wird wieder auf das gleiche (momentan 
verschollene) Lizenzdokument verlinkt.

Ich denke, die Library kann man schon kommerziell nutzen, denn da heisst 
es:

"Product: means Your and Your’s end-users’ product or system ... execute 
solely and exclusively on microcontroller devices manufactured by or for 
ST"

"STMicroelectronics (“ST”) grants You ...to make copies, prepare 
derivative works of the source code version of the Licensed Software for 
the
sole and exclusive purpose of developing versions of such Licensed 
Software only for use within the Product"

Der Windows Treiber wird aber nicht mit Source code bereitgestellt und 
außerdem läuft nicht auf Mikrocontrollern von ST. Weiter heisst es:

"STMicroelectronics (“ST”) grants You ... to make copies, prepare 
derivative works of the object code versions of the Licensed Software 
for the sole purpose of designing, developing and manufacturing the 
Products;"

"Unless otherwise explicitly stated in this Agreement, You may not sell, 
assign, sublicense, lease, rent or otherwise distribute the Licensed 
Software for commercial purposes, in whole or in part"

Mir sagt dass, dass ich die closed-source Software nur als Arbeitsmittel 
zum Entwicklen benutzen darf.

von hal9000 (Gast)


Lesenswert?

Was willst du denn mit dem Wusel. Der Treiber ist einfach Schrott. Der 
merkt nich einmal wenn das Gerät abgezogen wird....

von Stefan F. (Gast)


Lesenswert?

> Der Treiber ist einfach Schrott.
> Der merkt nich einmal wenn das Gerät abgezogen wird....

Ich wiess nicht wieso du das denkst. Auf meinen Computern werden die COM 
Ports automatisch entfernt, wenn ich die Geräte abstecke - es sei denn, 
der Port ist noch durch ein Programm geöffnet. Das war schon immer so, 
und es ist auch logisch, denn geöffnete Files kann man (unter Windows) 
nicht löschen.

Abgesehen davon möchte ich nochmal daran erinnern, dass wir hier nicht 
von einem Treiber reden (wsie sich herausgestellt hat), sondern von 
einem Installationsprogramm, welches dem Gerät lediglich einen Namen 
gibt. Der Treiber kommt von Microsoft und ist Bestandteil von Windows.

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.