FTDI zu TTL USB Adapter ges.

OP #7090804
Lesenswert?

Weiß jemand, ob es ein Open Source/Open Hardware Projekt gibt, um 
schnell einen USB zu TTL-UART aufzubauen? Einen FTDI Chip und USB 
Lötstecker für Platinen hätte ich noch. Sonst irgendwie direkt aus 
USB-Signalen und passenden Driver dazu, der ein /dev/tty (macOS/Linux) 
bzw. COM-Device (Windows 10) erzeugt?

Habe so'n Ding in der Bucht bestellt für 3,45€ inkl. Versand, dauert 
aber.
#7090809
Lesenswert?

Christoph K. schrieb:
> Sonst irgendwie direkt aus
> USB-Signalen und passenden Driver dazu, der ein /dev/tty (macOS/Linux)
> bzw. COM-Device (Windows 10) erzeugt?

So funktioniert USB leider nicht. Schon gar nicht, was Pegel angeht.

Christoph K. schrieb:
> Einen FTDI Chip und USB
> Lötstecker für Platinen hätte ich noch

Den könntest du doch nutzen. Die Schaltung drumherum ist kein Geheimnis, 
könnte auf Lochraster nur ein bisschen spannend werden.


Ansonsten kommt es halt drauf an, was du noch so da hast. Arduinos, Blue 
Pills,... Alle können das mit mehr oder weniger Aufwand
#7090825
Lesenswert?

Christoph K. schrieb:
> Weiß jemand, ob es ein Open Source/Open Hardware Projekt gibt, um
> schnell einen USB zu TTL-UART aufzubauen? Einen FTDI Chip und USB
> Lötstecker für Platinen hätte ich noch. Sonst irgendwie direkt aus
> USB-Signalen und passenden Driver dazu, der ein /dev/tty (macOS/Linux)
> bzw. COM-Device (Windows 10) erzeugt?

"einen FTDI-Chip" ist gut. FTDI hat viele verschiedene. Zu jedem gibts 
ein Datenblatt. Da gibts auch einen Schaltplan. Aber ohne passende 
Leiterplatte wird das nichts.

Das einzige, womit Du einen USB-UART auf Lochraster aufbauen kannst, ist 
ein Microchip MCP2221A-I/P.

https://www.microchip.com/en-us/product/MCP2221A

fchk
Gast #7090843
Lesenswert?

Ist ein Arduino zur Hand?
Da ist alles drauf, was benötigt wird. Ganz ohne Programmierung.

Ist ein ATtiny85 zur Hand? Da gibt es Soft-USB, das sich leicht um einen 
virtuellen Com-Port erweitern ließe.

Die FTDI232 und CH340G melden sich nativ auch als Com-Port beim Rechner 
an.

Also: Viele Wege führen nach Com1.
Gast #7090854
Lesenswert?

Fan von Yussif schrieb:
> Ist ein ATtiny85 zur Hand? Da gibt es Soft-USB, das sich leicht um einen
> virtuellen Com-Port erweitern ließe.

Das ist außerhalb der USB-Spezifikation, die die hier verwendete 
CDC-Geräteklasse für Low-Speed-Geräte nicht kennt. Manche 
Betriebssysteme sind so tolerant, das zu erlauben, aber nicht alle tun 
das.

> Die FTDI232 und CH340G melden sich nativ auch als Com-Port beim Rechner
> an.

Die sind keine CDCs und brauchen ihre eigenen Devicetreiber, die 
irgendwer installieren muss (oder bei manchen Betriebssystemen im 
Lieferumfang enthalten sind).
OP #7090859
Lesenswert?

Fan von Yussif schrieb:
> Ist ein Arduino zur Hand?
> Da ist alles drauf, was benötigt wird. Ganz ohne Programmierung.
>
> Ist ein ATtiny85 zur Hand? Da gibt es Soft-USB, das sich leicht um einen
> virtuellen Com-Port erweitern ließe.
>
> Die FTDI232 und CH340G melden sich nativ auch als Com-Port beim Rechner
> an.
>
> Also: Viele Wege führen nach Com1.

Habe so einen Bluepill mit STM32F103C8T6. Wenn mir jemand den Weg 
aufzeigen könnte, wie ich daraus einen USB zu UART/TTL machen könnte, 
würde ich gleich loslegen. Restliche Programmierumgebung wäre ja 
vorhanden.
Angehängte Dateien:
#7090868
Lesenswert?

Persönliche Seite #7090898
Lesenswert?

Christoph K. schrieb:
> Habe so einen Bluepill mit STM32F103C8T6. Wenn mir jemand den Weg
> aufzeigen könnte, wie ich daraus einen USB zu UART/TTL machen könnte,

z.B. indem du meine USB-CDC-Software drauf flashst:

https://github.com/Erlkoenig90/f1usb/releases/tag/v1.1

Damit hast du dann 3 serielle Ports. Pinbelegung:

 * VCP0: TX=PA9, RX=PA10, DTR=PA1, RTS=PA5
 * VCP1: TX=PA2, RX=PA3, DTR=PA6, RTS=PA7
 * VCP2: TX=PB10, RX=PB11, DTR=PC0, RTS=PC1
Gast #7090914
Lesenswert?

Christoph K. schrieb:
> Stimmt zwar irgendwo, aber in diesem Falle ist (vermutlich) etwas
> kaputtgegangen - mein einziger vorhandener FTDI-Serial USB Adapter.

Eben, Logistiker hat Recht.

USB-TTL-Adapter, hat man besser immer in Reserve liegen.

Aber wie bekommt man so ein Ding kaputt und was heißt in diesem 
Zusammenhang "vermutlich"? Ging er vorher noch und jetzt nicht mehr oder 
hat das Ding bei dir noch nie funktioniert?
Gast #7090927
Lesenswert?

Schmeiß das FTDI Zeug weg.
Eventuell ist der ftdi chip nicht defekt gegangen sondern war ein fake 
der per update absichtlich zerstört wurde.


WCH CH340c wäre eine Alternative. Etwas robuster CP2102. Höhre baud als 
der Ch340C hat z.B. der CH343G.
OP #7090956
Lesenswert?

Wolfgang schrieb:
> Christoph K. schrieb:
>> Stimmt zwar irgendwo, aber in diesem Falle ist (vermutlich) etwas
>> kaputtgegangen - mein einziger vorhandener FTDI-Serial USB Adapter.
>
> Eben, Logistiker hat Recht.
>
> USB-TTL-Adapter, hat man besser immer in Reserve liegen.
>
> Aber wie bekommt man so ein Ding kaputt und was heißt in diesem
> Zusammenhang "vermutlich"? Ging er vorher noch und jetzt nicht mehr oder
> hat das Ding bei dir noch nie funktioniert?

Ich konnte ihn letztens noch benutzen, um mit Demonstrator GUI seriell 
einen STM32F407VGT6 programmieren. Seitdem versuche ich vergeblich, das 
noch mal zu wiederholen. Auch geht Echo mit Konsoleprogramm (OC Console, 
auch mit niedriger Baudrate) nicht, wenn ich Tx mit Rx verbinde.

Als /dev/cua.dingsbums wird der Chip noch gesehen. Ich hatte ja die 
TTL-Signale direkt vom Chip abegriffen.
Gast #7091015
Lesenswert?

DerEinzigeBernd schrieb:
> Das gibts schon seit zehn Jahren nicht mehr.
War übel genug als das die Ihren Namen auf jahrzehnte verbrannt haben.

DerEinzigeBernd schrieb:
> Stattdessen den komplett
> undokumentierten "Winchip"-Crap zu empfehlen ist supi.

Jaja. Komplett undokumentiert. Gibt Datenblätter und die Software für 
die CH340B, etc. bekommst du ohne irgendwelches contact us. Vertraust 
deren Software nicht? Github hat da auch noch was.
Außerdem nur weil die CH340 empfindlich sind, heißt nicht, dass alle 
deren Chips so sind zumal der CH343 komplett anderes design nutzt.
Neben WCH gibt es auch noch das bereits erwähnte Silicon Labs.
Gast #7091087
Lesenswert?

Äh schrieb:
> War übel genug als das die Ihren Namen auf jahrzehnte verbrannt haben.

Aber auch nur bei Dir.

> Gibt Datenblätter und die Software für die CH340B,

Es gibt sehr flüchtige Beschreibungen, und eine Übersetzung solch einer 
Beschreibung ins Englische. Mit einem Datenblatt hat das nichts zu tun.

> Neben WCH gibt es auch noch das bereits erwähnte Silicon Labs.

Richtig, SiLabs ist eindeutig zu bevorzugen. Die haben Datenblätter. 
Anders als Winchip und Prolific.
Gast #7091245
Lesenswert?

Äh schrieb:
> Schmeiß das FTDI Zeug weg.
> Eventuell ist der ftdi chip nicht defekt gegangen sondern war ein fake
> der per update absichtlich zerstört wurde.

Davon abgesehen, dass die Treiberversion, auf die Du anspielst, uralt 
ist, wurde gar nichts zerstört.

FTDI hat lediglich bei Fake-Chips die unrechtmässig verwendete 
USB-VID/PID überschrieben. Lässt sich rückgängig machen, wobei ich sowas 
eher dem Lieferanten auf den Tisch knallen würde.

Äh schrieb:
> War übel genug als das die Ihren Namen auf jahrzehnte verbrannt haben.

Ich verbaue seitdem noch lieber FTDI-Chips. Dass sie aktiv gegen 
Plagiate vorgehen, erhöht die Wahrscheinlichkeit, dass Fake-Chips direkt 
auffallen, statt durch unauffälliges Fehlverhalten Schaden anzurichten.
OP #7091282
Lesenswert?

Stefan ⛄ F. schrieb:
> Sebastian R. schrieb:
>> Such dir was aus:
>
> Oder auch das Beispielprogramm von unserem Mitglied Niklas G:
> http://stefanfrings.de/stm32/3-Fach-USB-UART.zip
>
> (Im Release Order liegt der Binärcode, den du mit dem STM32 Cube
> Programmer auf das Board laden kannst)

Auch schön. Mein Problem: ich muß erst mal eine Konfiguration finden, 
wie ich das bluePill-Board jetzt mit STM32CubeIDE (ist das = Cube 
Programmer?)
angesprochen bekomme. Bisher hatte ich meine Targets über das STLINK-V2 
SWD-Interface des DISCO-Boards angeschlossen und debuggt.

Ich hatte irgendwie dumpf in Erinnerung, daß ich SWCLK und SWDIO nicht 
an die pins des bluPill Boards, die da horizontal herauskommen, 
anschließen muß, sondern an irgendwelche PA09/PA10 oder sowas oder irre 
ich mich?
Gast #7091284
Lesenswert?

Christoph K. schrieb:
> Auch schön. Mein Problem: ich muß erst mal eine Konfiguration finden,
> wie ich das bluePill-Board jetzt mit STM32CubeIDE (ist das = Cube
> Programmer?)
> angesprochen bekomme. Bisher hatte ich meine Targets über das STLINK-V2
> SWD-Interface des DISCO-Boards angeschlossen und debuggt

Dann mach das doch wieder so. Setze den Boot0 Jumper auf 1 und verbinde 
den ST-Link mit dem Board.

Alternativ bietet sich der serielle Bootloader an, einen Adapter dazu 
hast du ja auch.
OP #7091818
Lesenswert?

Stefan ⛄ F. schrieb:
> Christoph K. schrieb:
>> Auch schön. Mein Problem: ich muß erst mal eine Konfiguration finden,
>> wie ich das bluePill-Board jetzt mit STM32CubeIDE (ist das = Cube
>> Programmer?)
>> angesprochen bekomme. Bisher hatte ich meine Targets über das STLINK-V2
>> SWD-Interface des DISCO-Boards angeschlossen und debuggt
>
> Dann mach das doch wieder so. Setze den Boot0 Jumper auf 1 und verbinde
> den ST-Link mit dem Board.
>
> Alternativ bietet sich der serielle Bootloader an, einen Adapter dazu
> hast du ja auch.

Einen Adapter, der vermeintlich kaputt ist und den zu ersetzen es genau 
gilt :)

Gut, aber Programmierung hat geklappt über die an der blue pill 
herausgeführten Pins und BOOT0 auf 1.

Aber jetzt brauche ich doch Hilfe von Niklas (erlkoenig):

Ich schließe die BluePill über USB-C-Kabel an mein MacbookPro an. Ein 
USB-Device "Fluxcompensator" wird gefunden. Ich weise es dem Mac zu 
(weil sich die Parallels Windows10 VM auch darum bewirbt) und es kommt 
gleich wieder eine neue USB-Verbindungsanfrage. Es scheint, als könne 
das Device nicht dauerhaft verbunden werden.

EDIT: könnte vielleicht auch ein "faulty board" sein. Ich messe R10=10k 
bzw. sehe es auch.
OP #7091976
Lesenswert?

Niklas G. schrieb:
> Christoph K. schrieb:
>> Auswechseln von R10 (10K -> 1,8K) half nicht, die USB-Verbindungsloop zu
>> reparieren.
>
> Welche Software? Was heißt "Loop"? Welches OS? Kannst du es unter Linux
> versuchen und die Kernel-Meldungen zeigen?

macOS 11.6.6 (BigSur), f1usb-binary-images/vcp.bin

Linux:
1
[  133.946619] usb 3-2: new full-speed USB device number 5 using xhci_hcd
2
[  134.096389] usb 3-2: New USB device found, idVendor=dead, idProduct=beef, bcdDevice= 1.00
3
[  134.096402] usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
4
[  134.096408] usb 3-2: Product: Fluxkompensator
5
[  134.096412] usb 3-2: Manufacturer: ACME Corp.
6
[  134.096416] usb 3-2: SerialNumber: 42-1337-47/11
7
[  134.121637] cdc_acm 3-2:1.0: ttyACM0: USB ACM device
8
[  134.121882] cdc_acm 3-2:1.2: ttyACM1: USB ACM device
9
[  134.122098] cdc_acm 3-2:1.4: ttyACM2: USB ACM device
10
[  134.122122] usbcore: registered new interface driver cdc_acm
11
[  134.122124] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
OP #7092000
Lesenswert?

Niklas G. schrieb:
> Christoph K. schrieb:
>> Was nicht geht, ist macOS.
>
> Damit kenne ich mich nicht aus, habe die USB-Software damit auch nie
> getestet. Unter Windows sollte es gehen (Bootcamp?). Gibt es unter macOS
> einen Kernel Log?

Ich hänge einen Auszug des system.log an von dem Moment an, wo ich das 
USB-Device eingestöpselt habe.
Angehängte Dateien:
Persönliche Seite #7092002
Lesenswert?

Da steht überhaupt nichts von USB o.ä. ... Was passiert wenn du Windows 
oder Linux nativ (keine VM) auf dem mac bootest? Wenn es dann klappt, 
liegt es nicht an der Hardware.

Geht die Power-LED auf dem Board ständig aus / an? Das würde heißen dass 
macOS die Spannungsversorgung vom USB-Port kappt um das Gerät neu zu 
verbinden. Das würde bedeuten dass macOS irgendwas am Gerät nicht passt. 
Das Gerät kann sich gar nicht selbsttätig trennen, weil der Widerstand 
nicht schaltbar ist.
OP #7092017
Lesenswert?

Niklas G. schrieb:
> Da steht überhaupt nichts von USB o.ä. ... Was passiert wenn du Windows
> oder Linux nativ (keine VM) auf dem mac bootest? Wenn es dann klappt,
> liegt es nicht an der Hardware.

Ich weiß eben jetzt auch nicht genau, wo USB-Diagnostics zu finden sind.

Windows, Linux native auf Mac?. Weiß nicht, ob sowas überhaupt geht, 
wäre aber auch nicht das, was ich anstrebe.

Danke erst mal. Ich versuche die Hardware erst mal mit einem der anderen 
Pakete zu verifizieren. Danke trotzdem.
Persönliche Seite #7092059
Lesenswert?

Thomas Z. schrieb:
> Dein Code benutzt doch IAD Descrptors wenn ich mich richtig erinnere.

Richtig, weil Windows sonst keine mehrfachen USB-CDC-ACM-Geräte 
unterstützt, obwohl die USB-Spec das vorsieht.

> Das wurde (wird?) auf dem Mac nicht unterstützt

Ernsthaft?? Das ist doch mittlerweile Teil der USB-Spec und eine Menge 
USB-Geräte sind heutzutage Verbundgeräte (IAD), gehen die alle nicht?

Man kann die Software modifizieren dass sie nur einen Port hat, oder 
klassisch direkt mehrere CDC-ACM-Kanäle hat statt IAD, aber da hab ich 
jetzt grad keine Zeit für...
#7092101
Lesenswert?

Niklas G. schrieb:
> Richtig, weil Windows sonst keine mehrfachen USB-ACM-CDC-Geräte
> unterstützt, obwohl die USB-Spec das vorsieht.

nein das funktioniert unter Win auch ohne IAD mit mehreren CDCs. IAD ist 
zwar für neuere Compount Devices vorgeschrieben, aber selbst bei den 
neueren USB specs ist sich die USB org da nicht so ganz einig.

Beispiel:
usbmidi2.0 müsste IAD haben hat es aber nicht.

> Ernsthaft?? Das ist doch mittlerweile Teil der USB-Spec und eine Menge
> USB-Geräte sind heutzutage Verbundgeräte (IAD), gehen die alle nicht?

Ich hab das mal auf Stackoverflow gelesen, ist aber schon eine ganze 
Zeit her, da ich keinen Mac habe kann ich nicht sagen ob das noch 
aktuell ist.
IAD ist strenggenommen auch nicht für Compound Devices sondern nur dazu 
da wenn mehrere Interfaces auf die gleiche Device Function gehen. Das 
betrifft Device Functions die ein Control Interface und ein Daten 
Interface haben.
Beispiele: CDC, Audio (ab 2.0), Midi (ab 2.0)
Gast #7093883
Lesenswert?

Das dürfte nur funktionieren, wenn das Betriebssystem die nicht 
standardkonforme Kombination von CDC mit Low-Speed-USB erlaubt.

USBasp nutzt bitbanging (VUSB) und kann daher nur Low-Speed (1.5 MBit), 
und standardkonform können Low-Speed-Devices keine "bulk transfers" 
durchführen. Die aber werden von CDC benötigt.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren