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
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.
./. 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...
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
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.
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.
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.
Eine eigene Frage?
Dieser Thread ist über 10 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.