Hallo zusammen
Ich hoffe ihr kennt euch etwas besser aus in sachen invertierte serielle
Schnittstelle als ich.
Ich habe ein GPS Empfänger, welcher mir mit 4800 Baud mit invertiertem
TTL signal, die seriellen Daten liefert. Meinem Mikrocontroller macht
das aber Probleme.
Wie kann ich das Signal zu einem nicht-invertierten TTL Signal wandeln
(Hardware-mässig)?
Mit einem Inverter hab ichs schon versucht, geht aber nicht --> da
kommen
nur komische Zeichen. Liegt wohl am irgendwie Start bzw. am Stop-Bit..
Könnt ihr mir helfen?
mfg
Iguan
Iguan schrieb:> Mit einem Inverter hab ichs schon versucht, geht aber nicht
Wie willst du die Signale sonst invertieren? Außerdem sind die seriellen
TTL-Signale gegenüber RS232 i.A. immer invertiert.
Der Fehler wird woanders liegen. Bist du dir mit den 4800Bd sicher?
Mit den 4800 Baud bin ich mir sicher!
Ich arbeite mit einem Arduino Mega ADK. Wenn ich den GPS empfänger
an einen Hardware-Uart-Eingang hänge, dann bekomme ich keine gescheiten
Daten.
Wenn ich die Arduino-Library "SoftwareSerial" verwende, kommen auch
keine gescheiten Daten.
Erst mit der neusten Version von der Arduino-Library "SoftwareSerial"
kann man angeben, dass das Signal invertiert ist:
SoftwareSerial gps_serial(GPS_RX_Pin, GPS_TX_Pin, true);
Das "true" bedeutet invertiert.
Auf diese Weise bekomme ich saubere GPS-NMEA-Datensätze. Nur blöd
dass diese Library die interrupts kurzzeitig abschaltet und
anschliessend
wieder einschaltet. Dadurch entstehen Probleme mit anderen
Interrupt-Librarys.
Aus diesem Grund möchte ich das Signal hardwaremässig zu einem
nicht-invertierten-TTL-uart konvertieren, damit ich den GPS-Empfänger an
eine Hardware-UART hängen kann.
Mit einem NAND-Baustein (Wo beide Eingänge zusammen gelegt sind) habe
ich versucht das Signal zu einem nicht-invertierten TTL signal zu
wandeln. Das hat aber nicht geklappt (Da kamen alles "0" als output").
Ich nehme an, dass das Start- bzw. das Stop bit nicht invertiert werden
darf... bin mir aber nicht sicher...
Ich weiss echt nicht mehr weiter...
mfg
Iguan
Iguan schrieb:> Ich weiss echt nicht mehr weiter...
Dann fang mal an jetzt zu messen anstatt wild drauf rumzuprobieren.
Oszi an die Datenleitung und dann messen wie das Signal aussieht.
Ansonsten muss ein normaler Inverter aussreichen der macht kein
Unterschied zwischen Daten und Start u. Stopbits.
Also stimmen Baudrate,Parity und Anzahl der Stopbits?
Iguan schrieb:> Mit einem NAND-Baustein (Wo beide Eingänge zusammen gelegt sind) habe> ich versucht das Signal zu einem nicht-invertierten TTL signal zu> wandeln. Das hat aber nicht geklappt (Da kamen alles "0" als output").
Das hast Du den Chip offensichtlich falsch angeschlossen.
> Ich nehme an, dass das Start- bzw. das Stop bit nicht invertiert werden> darf... bin mir aber nicht sicher..
NACK. Wenn UART invertiert, dann wird alles invertiert.
Hast Du mal die Signalpegel des GPS geprüft? Inveritertes UART Signal
deutet auf Pegelwandler wie MAX232 hin - das ist nicht mehr TTL.
Danke für die schnelle Antwort
Einen Oszi habe ich leider nicht. Ich habe dennoch mal die Spannung des
Daten-Pins (tx) vom GPS gemessen. Die Anzeige schwankt von 0V bis -5V.
Das erstaunt mich, dachte es liefert TTL (0 bis +5V). Messe ich da was
falsches? Auf die polarität des messgerätes (Mastech MY64) habe ich
geachtet.
Wie konnte ich dann überhautp daten auslesen?
@pöserpursche: ich habs mit einem SN74LS00N versucht (pin 1+2 zusammen
an TX pin vom GPS-Empfänger, und pin 3 an den uC RX-Pin)
GND und VCC sind nicht vertauscht. die LED des GPS-Empfängers leuchtet.
Andersrum nicht.
Ich verwende den GPS-Empfänger "GPS4" von Byonics:
http://www.byonics.com/tinytrak/gps.php
Beschreibung:
This is the receiver module found inside the GPS4 (no case or DB-9
cable), for use in high altitude balloon applications up to 84KM. It
weighes 0.7oz, comes with a 3" interface cable and outputs both TTL and
RS-232. Wiring is 1:black:ground, 2:red:3.3V to 5V DC power,
3:yellow:TTL data from GPS, 4:white:RS-232 data to GPS, 5:green:RS-232
data from GPS, 6:blue:TTL data to GPS. Size is 32mm x 32mm x 9mm, 0.7
oz.
Wobei ich die version mit Gehäuse und DB-9 kabel habe. Die Pinbelegung
ist somit anders (diese habe ich per Mail erfahren...siehe weiter unten)
Per Mail hiess es:
The GPS4 is basically like this:
http://www.navisys.com.tw/products/image/110103/GM-301_flyer-110105.pdf
but with a 84KM altitude limit. You can connect the serial output to
a computer as well as a microcontroller.
und:
>>1. In the datasheet you've mailed me, its not clear which pins of the DB-9>> plug has which function (pin assignment).
Pin 2 is RS-232 out
Pin 3 is RS-232 in (not normally used)
Pin 4 is +5V power in
Pin 5 is ground
Wie kriege ich nun den offset hin, damit ich 0..+5V habe anstelle
0..-5V??
Iguan schrieb:> outputs both TTL and> RS-232
Du hast negative Spannung und invertierte Logik?
Dann hast du offensichtlich den RS-232-Output erwischt, und nicht den
TTL.
@hp-freund: Ich habe die Schaltung wie im Schema aufgebaut. Arduino
sieht anstelle NMEA-Datensätze folgendes:
"44444444444444444444444444442496913103671808277674449515053535346535257
4486444444444444444851494949514444447842"
@Stefan Ernst: Ist der einzige Output, der auf den DB-9 Pol geführt ist.
Bei den anderen Pins (ausschliesslich Speisung) messe ich 0V.
Iguan schrieb:> @Stefan Ernst: Ist der einzige Output, der auf den DB-9 Pol geführt ist.
Ein DB-9 führt normalerweise ein pegelgewandeltes Signal nach RS-232,
das ist nicht direkt µC-geeignet, bzw. erst wieder, nachdem's durch 'nen
zweiten Wandler zurückgewandelt wurde.
Im Mail des lieferanten hiess es ausserdem:
>>1. In the datasheet you've mailed me, its not clear which pins of the DB-9>> plug has which function (pin assignment).
Pin 2 is RS-232 out
Pin 3 is RS-232 in (not normally used)
Pin 4 is +5V power in
Pin 5 is ground
>> 2. Doesn't it get destroyed if I connect it to a computers serial port>> (usually 12VDC)?>> - If no, can i simply plug it in and read the data with hyperterminal?
The RS-232 pins are fine with computer serial voltages, but pin 4
should only be 5V. Computers do not provide 5V on pin 4, so you will
need my GUA or GPAP or GPAC adapter cable to connect the GPS4 to a
computer.