Forum: Mikrocontroller und Digitale Elektronik CMOS Pegel, UART


von Alex (Gast)


Lesenswert?

Hallo,

ich habe einen Sensor, der mit CMOS Pegeln arbeitet (CMOS compatible: 
low state: 0.0…0.4V; high state: 0.7…3.3V). Die serielle Ausgabe dieses 
Sensors will ich nun auslesen. Wenn ich den Sensor direkt an einen 
MAX232 anschliesse kommen keine Daten raus. Benötige ich einen weiteren 
Pegelwandler?

Grüße

von holger (Gast)


Lesenswert?

Das kann dir nur der Weihnachtsmann sagen.

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Hast du mal die untere Grenze für HIGH gemessen, ob die tatsächlich 0.7V 
beträgt? Mir erscheint der Wert ziemlich abartig.

Statt dem normalen +5V RS232-Pegelwandler MAX232 könnte eine 
Low-Voltage Version wie z.B. ein MAX3232 oder ADM3202/ADM3222/ADM1385 
helfen. Näheres im Datenblatt.

von Hc Z. (mizch)


Lesenswert?

Mit min. 0.7 V für High sind das keine CMOS-Pegel.  Und wenn es sich 
tatsächlich um die Daten für einen CMOS-*Ausgang* handelt, auch keine 
CMOS-kompatible Pegel.  Nach dem Begleittext geht es Dir um einen 
Ausgang.  Kann es sein, dass Du die Daten eines Eingangs aus dem 
Datenblatt abgeschrieben hast?  Wie soll dann eine vernünftige Antwort 
zustande kommen?

von Benedikt K. (benedikt)


Lesenswert?

Verwendest du einen MAX232? Falls ja, dann benötigt dieser 5V 
Betriebsspannung. Die Daten in Richtung Sensor musst du dann selbst auf 
3,3V Pegel bringen. Alternativ: MAX3232, der läuft auch mit 3,3V.

von Alex (Gast)


Lesenswert?

Hallo,

die Daten beziehen sich auf alle Eingänge und Ausgänge.
Hier ist das Datenblatt des Sensors:
http://www.fastraxgps.com/showfile.cfm?guid=eb28f0e0-9fc5-4d11-b30f-f7c5c54ebffd

Kann man nicht einen Pegelwandler verwenden, der aus diesen 3.3v Pegeln 
"normale" 5v Pegel baut?

Würde ein µC mit den niedrigen Pegeln zurecht kommen?

von (prx) A. K. (prx)


Lesenswert?

Der arbeitet vielleich asynchron, aber möglicherweise nicht mit 
RS232-Pegeln, sondern mit dem was man sonst "TTL" nennt, also ohne 
MAX232.

von Alex (Gast)


Lesenswert?

Kann leider den Beitrag nicht bearbeiten:

Benedikt: Ja ich verwende einen MAX232. Sprich ich bräuchte einen 
Pegelwandler, um auf die Pegel des Sensors zu kommen. Gibt es Wandler, 
die mit 5v laufen und diese niedrigen Pegel umsetzen können?

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Hast du den Fastrax UP500 oder den UP500R? Der UP500R hat den 
CMOS-to-RS232-Pegelwandler bereits eingebaut.

Ansonsten: Sicher kann man Pegelwandler benutzen (Fastrax Ltd. zeigt 
es ja). Man muss nur den Richtigen finden und die 0.7V für die untere 
Schwelle von HIGH ist hier die Herausforderung.

Bsp. aus dem Datenblatt des MAX3232:
VIL Driver low-level input voltage max. 0,8V

d.h. ein MAX3232 würde ein 0,7V HIGH des Fastrax UP500 noch als LOW 
erkennen! Theoretisch unbrauchbar, praktisch: Messen!

von Alex (Gast)


Lesenswert?

Hallo,

ich habe den UP500, also ohne den Pegelwandler.
Ich habe leider kein Oszilloskop, also konnte ich nur mit dem Multimeter 
messen. Der Pegel am TX des Sensors springt immer zwischen 0.2v und ca 
0.8v, zwischenzeitlich sind aber schon mal Peaks über 1v dabei. Ich weiß 
nur nicht, wie aussagekräftig so eine Messung ist.

Was könnte man denn noch machen, wenn es mit dem MAX3232 nicht 
funktioniert? Kann man die Pegel nicht von "Hand" hochziehen?

Alex

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Ich bin da mangels Übersicht an Bauteilen ratlos und müsste heftig 
suchen.

Vielleicht ergänzt du noch deine Frage: Geht es um eine 
Serienproduktion, d.h. brauchst du eine nachbausichere Lösung für 1234 
Stück oder ist es ein einmaliges Heimprojekt, so dass auch eine 
Bastellösung in Frage kommt? Willst du nur GPS Daten empfangen, d.h. nur 
CMOS-TX müsste auf RS232-TX umgesetzt werden? Oder willst/musst du auch 
Daten zum GPS senden (TX und RX müssen umgesetzt werden)?

von Alex (Gast)


Lesenswert?

Hallo Stefan,

also es müssten sowohl RX als auch TX Daten umgesetzt werden, da der 
Sensor ggf über NMEA umprogrammiert werden muss.
Es geht um keine Serienproduktion, sondern um ein kleines Hobbyprojekt 
zuhause.

Noch eine Frage, die etwas untergegangen ist:
Kommt ein µC mit den Pegeln dieses Sensors klar, oder müssten die auch 
für den umgesetzt werden? (Atmega644P).

Alex

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Man kann es drehen und wenden - es passt IMHO nicht, wenn der UP500 
sendet.

Datenblatt Atmega644P
VIL Input Low Voltage
VCC = 1.8V - 2.4V                     max. 0.2VCC V
VCC = 2.4V - 5.5V                     max. 0.3VCC V

?VIH Input High Voltage
VCC = 1.8V - 2.4V       min. 0.7VCC   max. VCC+0.5 V
VCC = 2.4V - 5.5V   min. 0.6VCC   max. VCC+0.5 V

Dein UP500
low state:  0.0…0.4V (Messung ca. 0.2V)
high state: 0.7…3.3V (Messung ca. 0.8V)

Berechnungen
RX Eingang des Atmega644P bei Vcc=3,3V
low state:  0,0…1V (=0,3*3,3)
high state: 2…3,3+0,5V (=0,6*3,3...)
=> UP500-HIGH liegt innerhalb µC-LOW!
Gleicher Fall wie Beitrag "Re: CMOS Pegel, UART"

RX Eingang des Atmega644P bei Vcc=1,8V (Minimale Vcc des Atmega644P)
low state:  0,0…0,4V (=0,2*1,8)
high state: 1,3…1,8+0,5V (=0,7*1,8...)
=> UP500-HIGH liegt über µC-LOW, aber erreicht sicheres µC-HIGH noch 
nicht

Wenn UP500 empfangen soll, ist das nicht kritisch, der Atmega644 könnte 
die Pegel ausgeben und die etwas zu hohen VOL des µC könnte man ohne 
Nachteile für VOH mit Spannungsteiler in den 0,0..0,4V Bereich zwingen.

Für ein Hobbyprojekt würde ich (Vorischt Laie!!!) überlegen, die 
UP500-TX mit einem nicht-invertierenden Verstärker 
(Operationsverstärker-Grundschaltungen) um den Faktor ca. 2,5 
(realer Wert ausprobieren) zu verstärken, um auf die Eingangspegel eines 
mit 3,3V betriebenen MAX3232 oder µC zu kommen. Kann man auch für 
Zielbereich 5V Logik machen. Ausprobieren deshalb, weil es keine 
einheitliche Verstärkung gibt, die für oberes LOW und unteres HIGH 
gleichzeitig exakt in den Zielbereich abbildet.

Vielleicht / hoffentlich helfen dir noch ein paar Experten weiter.

von Valentin B. (nitnelav) Benutzerseite


Lesenswert?

Wie wäre es mit Mosfets mit extrem hohem Pulldown?
Die Dinger verstärken ja auch mal 1mV zu 5V, warum sollten da 0,7V ein 
Problem sein.
Sonst wie schon gesagt OpAmp oder vielleicht Darlington-Transistoren.

Der Chip scheint echt merkwürdig zu sein, wenn er selber meint, dass 
0,7V High sind. Der nächste Trend scheint sich abzuzeichnen: Low 
Voltage!
Valentin

von HildeK (Gast)


Lesenswert?

Wie wäre es mit einem einfachen Transistor? Hochohmig im Kollektorkreis 
beschaltet wird der ab ca. 0.6V leitend. Eine zweite Stufe dahinter und 
du hast wieder nichtinvertierte Daten.

von Falk B. (falk)


Lesenswert?

@  Stefan B. (stefan) Benutzerseite

>low state:  0.0…0.4V (Messung ca. 0.2V)
>high state: 0.7…3.3V (Messung ca. 0.8V)

Glaub ich irgendwie nicht. Kann es sein, dass das Ding einen Open Drain 
Ausgang hat und einfach ein Pull-Up von sagen wir 10K nach 3,3V fehlt?

>UP500-TX mit einem nicht-invertierenden Verstärker
>(Operationsverstärker-Grundschaltungen) um den Faktor ca. 2,5
>(realer Wert ausprobieren) zu verstärken, um auf die Eingangspegel eines
>mit 3,3V betriebenen MAX3232 oder µC zu kommen.

Wenn das Ding WIRKLICH nur 0,7V ausspuckt, was ich nicht wirklich 
glauben kann, nimmt man einen Pegelwandler mittels Komparator. Beim 
AVR einfacherweise den eingebauten Analogkomparator.

MFG
Falk

von Stefan B. (Fedora 12) (Gast)


Lesenswert?

http://www.avr-praxis.de/forum/showthread.php?p=9363
Ähnliches Problem, aber andere Messwerte: 0.5 und 2V (mit denen wir 
bereits happy wären)

http://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=474271
Gleicher Fragesteller wie im 1. Link. Noch andere Messwerte: 0.9 und 
1.45V
Da ist auch eine Lösung von Suggarman angegeben (2 Transen wie HildeK 
auch vorgeschlagen hat). Unterschiede in den Messwerten vermutlich durch 
Messmethode (Multimeter) bedingt.

IMHO: Case closed.

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.