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