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
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-PegelwandlerMAX232 könnte eine
Low-Voltage Version wie z.B. ein MAX3232 oder ADM3202/ADM3222/ADM1385
helfen. Näheres im Datenblatt.
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?
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.
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?
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?
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!
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
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)?
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
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.
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
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.
@ 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
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.