Forum: Mikrocontroller und Digitale Elektronik USB UART Wandler mit Automatic Level Detection


von Horst (Gast)


Lesenswert?

Hallo zusammen,

da ich immer wieder USB UART Wandler mit verschiedenen Pegeln brauche, 
würde ich gerne einen besitzen, der für alle geht. Das an sich ist ja 
nicht wirklich schwierig, wenn man für den Pegelwandler zum Beispiel je 
nach Zielhardware umjumpert. Das setzt aber voraus, dass ich die 
Pegellevel der Zielhardware kenne. Schöner wäre es doch, wenn dies der 
Wandler an den Idle-Leveln selbstständig erkennen würde.

Daher meine Frage: hat jemand sowas schonmal selber gebaut? Wenn ja wie?

Könnte man das ganze einfach und dennoch zuverlässig ohne µC 
bewerkstelligen?

Danke!

P.S.: die scheinen auch irgendsoetwas zu machen: 
https://shop.dresden-elektronik.de/funk-1/accessories/levelshifter/usb-pegelwandler-stick-low-power.html

von ./. (Gast)


Lesenswert?

Ist ja eigentlich ganz einfach:
Den negativen und positiven Spitzenwert des RX detektieren
und damit die Ausgangsspannungsgrenzen des eigenen TX
einstellen.

Aus dem Idlesignal liesse sich ableiten, ob zusaetzlich
invertiert werden muss.

Dumm nur wenn vom Gegenueber nichts kommt :-).

Da sind Jumper wohl doch zuverlaessiger.

Fuer 1.8 V und 2.5 V-Pegel haette ich hier im Moment nichts
parat, aber 60 Euro + Versand ist mir doch etwas zu viel.

von Horst (Gast)


Lesenswert?

./. schrieb:
> Den negativen und positiven Spitzenwert des RX detektieren
> und damit die Ausgangsspannungsgrenzen des eigenen TX
> einstellen.

Das will ich eigentlich gerade nicht, weil Spitzen durch irgendwelche 
Störungen immer größer sind als der eigentlich Pegel...

von Frank K. (fchk)


Lesenswert?

Horst schrieb:
> Hallo zusammen,
>
> da ich immer wieder USB UART Wandler mit verschiedenen Pegeln brauche,
> würde ich gerne einen besitzen, der für alle geht. Das an sich ist ja
> nicht wirklich schwierig, wenn man für den Pegelwandler zum Beispiel je
> nach Zielhardware umjumpert. Das setzt aber voraus, dass ich die
> Pegellevel der Zielhardware kenne. Schöner wäre es doch, wenn dies der
> Wandler an den Idle-Leveln selbstständig erkennen würde.

Idle-Level ist ungünstig.

Üblicherweise stellt die Zielhardware die Versorgungsspannung für den 
Pegelwandler zur Verfügung. Dann nimmst Du zwei 74LVC2T45, die Du 
zwischen USB-Brige und Zielhardware schaltest, den einen für TXD und 
RTS, den anderen für RXD und CTS. Problem gelöst.

fchk

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Also nen Button für "jetzt den Idle Pegel messen und übernehmen" ?

Da würde ich nen FT232 nehmen, der hat nen VCCIO Pin.
Zwischen RXD der Platine und des FT232 kommt nen 74HCT125, der erkennt 
ab 1,2V HIGH und seine Versorgung sind die 5V aus dem USB.
Der RXD der Platine geht zusätzlich an den ADC eines attiny (dieser wird 
mit 5V aus dem USB versorgt).
Der attiny steuert dann den Spannungsteiler eines Spannungsregler am 
VCCIO Pin des FT232.
Der VCCIO verträgt 1,8V bis 5,25V

Zum anzeigen der momentanen IO Spannung vllt nochn paar LEDs verstreuen.

von Horst (Gast)


Lesenswert?

Frank K. schrieb:
>
> Idle-Level ist ungünstig.
>
> Üblicherweise stellt die Zielhardware die Versorgungsspannung für den
> Pegelwandler zur Verfügung. Dann nimmst Du zwei 74LVC2T45, die Du
> zwischen USB-Brige und Zielhardware schaltest, den einen für TXD und
> RTS, den anderen für RXD und CTS. Problem gelöst.
>
> fchk

Problem ist, wenn die Zielhardware irgendetwas ist, was ich nicht 
entwickelt habe. Dann weiß ich erstens nicht, wo überhaupt Spannung da 
ist, und zweitens nicht, ob es die richtige ist. Das suchen der 
richtigen Spannung will ich mir ja gerade sparen.

Mw E. schrieb:
> Da würde ich nen FT232 nehmen, der hat nen VCCIO Pin.
> Zwischen RXD der Platine und des FT232 kommt nen 74HCT125, der erkennt [...]
> Zum anzeigen der momentanen IO Spannung vllt nochn paar LEDs verstreuen.

Ja, das wäre wohl auch die Möglichkeit, die mir zuerst eingefallen ist. 
Allerdings eben mit µC, und damit aufwändiger.

von Gerd E. (robberknight)


Lesenswert?

Mit nem Peak-Detector den Spitzenwert messen geht schon. Musst halt 
einen kleinen Tiefpass dazupacken um Störungen zu filtern.

Allerdings weiß ich nicht ob das so in der Form eine gute Idee ist:
In sehr vielen Schaltungen darfst Du keine Spannung höher als Vcc 
anlegen. Das gilt auch für den RX der UART. Wenn Du jetzt das Gerät mit 
dem Du da verbunden bist abschaltest, liefert Deine UART brav weiter die 
bisherige Spannung und grillt damit die Eingangsdioden des RX.

Du könntest mit entsprechenden Widerständen (z.B. 1K bis 4,7K) die 
Leistung begrenzen und damit das Problem verhindern. Doch dann bist Du 
auch bei der Übertragungsgeschwindigkeit stark eingeschränkt.

Besser wäre es wenn Du erkennst ob Dein TX gerade etwas sendet oder idle 
ist und dementsprechend die Impedanz zwischen z.B. 10 Ohm und 10KOhm 
umschaltet. Das könntest Du z.B. mit 2 Ausgängen mit High-Z-Modus und 
den entsprechenden Widerständen bauen. Da bist Du aber dann natürlich 
wieder beim µC.

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.