PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RN Control & NAVILOCK NL-501ETTL Problem



Marc1
20.08.2012, 18:54
Guten Tag,

Ich wollte mit dem RN Control die daten des GPS Empfängers auslesen.. allerdings habe ich Folgendes Problem :(

Wenn ich über Puttytel RX und TX Auslese bekomme ich nur irgendwelche Ziffern und Zahlen die aber nicht dem NEMA Standard Protokoll stammen

Òr¹¹¹i©pTÜ6Ü.\Fn>nNÜÊÜ.NÜNLFn>nNnÊn&NnNTFn:nNÜNNNnN"nN.:n*NnN$cr9¹)n"NnN|Fn2nNnÊn>NnNdÅãr9¹)
nNnNdÅ£r9¹)nNnNã2¹¹s¹)n>NnN|Fn"nNnÊn>NnNdÅãä9¹)nNnNs2¹i¹9¹99¹9i¹9¹é¹¹9¹92Fn>ÜNnN"NÊnN"nN.:n2NnN2Fn:
nN"NÊnN"nN.:n2NnN2¹ÙqnN"NÊnN"nN.:n2NnNdFn2nNnN"NÊnN"nN.:n2NnNÉé8q:ònNFnN"NÊnNN>ÊnN.:n2>>
NnÊV&$'ÊËJ²ÜNFnN"NÊnNN>ÊnN.:n2>&NnÊV2":NnN:nNFnN"NÊnNN>ÊnN.:n2>*NnÊV


Bautrade ändern habe ich ausprobiert bringt nix...

Wenn ich aber RX und TX an den Atmega 32 anschließe RX,TX bekomme ich über RS232 keine Daten.. ERST wenn ich Reset Drücke oder gedrückt halte bekomme ich den richtigen Code :confused: Wie kann ich das nun Realisieren das ich den Code über PORTD.1,2 Auslesen kann:confused:

Mfg Marc

Kampi
20.08.2012, 19:20
Hi,

hat der GPS Empfänger ein RS232 Interface?
Weil wenn er keins hat, könnte das den Zeichenmüll erklären.

Marc1
20.08.2012, 19:25
Ja ist extra der mit "Serielle Schnittstelle TTL"

eig. hab ich es genau wie hier angeschlossen.

http://www.krasser-mann.com/projects/gps-tracker/

wenn ich den ja über das RN Control auslesen lasse direkt per RS232 vom Board kommen ja richtige Sätze an nur wenn ich RX/TX direkt an die RX/TX des Kabels vom Com->RS232 Kabel lege kommen diese Symbolbuchstaben ect.

Kampi
20.08.2012, 19:37
Hi,

Serielle Schnittstelle TTL bedeutet 5V Pegel. RS232 verwendet aber +12V -12V.
Die Tatsache das es funktioniert wenn du das Ding an das RN-Control anschließt, liegt an der Tatsache das der Controller die 5V Pegel versteht und mittels RS232 Wandler auf dem Board sendest du diese mit den richtigen Pegeln an den PC.
Dein Computer "versteht" aber nur 12V Pegel, sprich wenn du direkt mit 5V Pegeln drauf gehst interpretiert er diese falsch und du bekommst den Zeichenmüll.

Marc1
20.08.2012, 19:43
:MistPCna das erklärt ja alles :eek:.. Naja ich wollte sowieso das GPS auf dem Board betreiben und nicht am Laptop. wollte den ja nur mal auslesen. Nur wie kann ich nun den PortD ansprechen und die RX/TX Ausgeben lassen.. da ich es schon komisch finde, das er nur beim "Reset Knopf" die Daten ausspuckt. Eig. müsste ich das doch Intern ohne großen Header Kopf ausgeben können oder Können die Ports RX/TX nur direkt auf den RS232 ausgegeben werden? weil ich kann ja einmal auf den 3 Poligen RS232 senden und empfangen und über die RX/TX des Atmega32. allerdings klappt es halt auf dem Atmega nicht direkt.

Kampi
20.08.2012, 20:09
Also wenn ich dich richtig verstehe (und ich weiß nicht ob ichs tue ;) ) möchtest du wissen die du den UART vom Mega32 verwenden kannst (UART ist dasselbe wie RS232 nur halt auf 5V Pegel nicht 12V).
Ansonsten wenn ich falsch liege bitte nochmal verständlich erklären was du tun möchtest :)

Marc1
20.08.2012, 20:21
Genau Ich möchte über den Mega32 seitigen RX/TX die Daten erfassen und verwenden können als Orientierung so zu sagen.

Kampi
20.08.2012, 20:46
Das funktioniert genauso wie als wenn du was von deinem PC zu deinem Mikrocontroller senden willst.
Beschäftige dich erstmal mit dem Empfangen. Das Auswerten kannst du dann machen wenn das Empfangen klappt.
Schau mal hier:

http://www.rowalt.de/mc/avr/avrboard/06/avrb06.htm

Das sollte dir weiterhelfen :)

Marc1
20.08.2012, 21:07
hm habe mal den Header auf meinen 32er angepasst allerdings kommt nix an :o


'0011.BAS: Einfacher String-Empfang
$regfile = "m32def.dat"
$crystal = 160000
$Baud = 9600


Dim S As String * 1

On URXC On RxD
Enable URXC
Enable Interrupts

Main:
If Len(s) > 1 Then
Print s
s = ""
End If
Goto Main

On RxD:
s = s + Chr(UDR)
Return

Kampi
20.08.2012, 21:45
Hast du Rx und Tx gekreuzt? Also Rx vom Modul an Tx und andersrum?

Marc1
20.08.2012, 21:47
ne eig. nicht? probier ich morgen mal aus. Mir ist aber auch aufgefallen das die ON RXD angaben falsch waren die waren zusammen geschrieben. Ist mir aber erst aufgefallen wo ich alles erstmal wieder hab stehen lassen. Berichte Morgen ;)

Kampi
20.08.2012, 22:01
Du musst beim UART und beim RS232 immer ne Kreuzung reinbauen.
Tx muss auf Rx. Stell dir vor der Controller redet über die Tx Leitung und hört über die Rx Leitung zu. Wenn der Controller nun redet und es auf Tx vom PC geht, reden die beiden ja gegeneinander an und keiner kann zuhören. Also muss die "reden" Leitung auf die "hören" Leitung, sprich Rx.

Marc1
20.08.2012, 22:06
kann sein das ich die kreuzung bereits im Kabel vorgenommen habe:rolleyes: aber merk ich ja wenn nix bei rumm kommt umstecken :cool:

5Volt-Junkie
20.08.2012, 23:08
Du musst beim UART und beim RS232 (http://www.rn-wissen.de/index.php/RS232) immer(?) ne Kreuzung reinbauen.
Tx muss auf Rx.

Ja, da sollte man aber aufpassen. Das gilt leider nicht immer ;) Viele merken sich diese Aussage viel zu gut. Ähnlich wie die "5 Sicherehitsregeln"!:)
Aber mal Spaß bei Seite.
Möchte man zwei µC (z.B. ATmegas) miteinander quatschen lassen, dann sollte man die beiden Leitungen überkreuzen. Aber es gibt spezielle Fälle wie Bluetooth an µC anschließen. Da ist das oft so, dass TX des Mikrocontrollers an TX des Bluetooth-Moduls angeschlossen werden. Das Selbe dann auch mit RX. Da lieber immer ein Blick in das Datenblatt werfen ;)

So eine Kreuzung hat mich einmal mehrere Stunden Fehlersuche gekostet und ich wollte die Bestellten Platinen schon als Unterlage für Kaffeebecher benutzen :)



Nachtrag: Da macht es manchmal Sinn, in der Prototyp-Phase zwei Widerstände in die Kommunikationsleitungen einzubauen, weil Ausgang <=> Ausgang kann manchmal traurige Folgen haben;)

Kampi
20.08.2012, 23:13
Wo muss man den bei einer UART Übertragung keine Kreuzung einbauen ;)?
Ich rede jetzt von der kompletten UART Strecke und die schließt auch Funkmodule ein.
Klar musst du vom Mega32 zum Funkmodul Tx auf Tx und Rx auf Rx aber beim Empfangsmodul musst du wieder kreuzen. ^.^

Marc1
21.08.2012, 04:35
Also wenn ich es kreuzen würde dann kommen nur "ÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖ"s.. denke mal das dann eine Kreuzung nicht so gut wäre :D. das gleiche Passiert wenn ich das Modul direkt am PC RS232 Adapter anschließe.

Kampi
21.08.2012, 06:51
Wenn du es kreuzt und damit Tx an Tx angeschlossen wäre, würdest du nichts am PC ausgegeben bekommen, eben aus dem Grund den ich weiter oben beschrieben habe. Die beiden Geräte sprechen sich gegeneinander an und keiner versteht den anderen.
Da du das Ding schon am RS232 hängen hattest, würde ich einen defekt nicht mehr ausschließen. Auf der Arbeit hatte ich letzte Woche eine LAN-Steckdose die sich exakt genauso verhalten hat und kaputt war. Das soll jetzt nicht heißen, dass das Ding kaputt ist nur es ist halt ne Option die du bedenken solltest :(

5Volt-Junkie
21.08.2012, 07:59
Wo muss man den bei einer UART Übertragung keine Kreuzung einbauen :wink:?

Wenn Du so fragst, dann lautet die Antwort natürlich - IMMER :)

Mir ging es lediglich um die Pinbezeichnung bei manchen Bauteilen. Z.B. bei manchen BT-Modulen (wieder mal :)). Da musste man den TXD-Pin des Mikrocontrollers, mit dem TXD-Pin des BT-Moduls verdrahten und das Selbe mit RXD-Pins. Hört sich nach totalem Blödsinn an, Sender mit Sender und Empfänger mit Empfänger zu verbinden, aber diese Pin-Bezeichnung am BT soll nur aussagen, welche µC-Pins zu welchen BT-Pins führen sollen. Wenn man etwas tiefer in so ein Aufbau hinein guckt, dann ist das Natürlich so aufgebaut, dass Sender und Empfänger miteinander verbunden sind.

Ich glaube das, was ich kurz erklären wollte, hat euch noch mehr in die Irre geführt. :)

Marc1
21.08.2012, 09:13
Wenn du es kreuzt und damit Tx an Tx angeschlossen wäre, würdest du nichts am PC ausgegeben bekommen, eben aus dem Grund den ich weiter oben beschrieben habe. Die beiden Geräte sprechen sich gegeneinander an und keiner versteht den anderen.
Da du das Ding schon am RS232 hängen hattest, würde ich einen defekt nicht mehr ausschließen. Auf der Arbeit hatte ich letzte Woche eine LAN-Steckdose die sich exakt genauso verhalten hat und kaputt war. Das soll jetzt nicht heißen, dass das Ding kaputt ist nur es ist halt ne Option die du bedenken solltest :(

ne ne da klappt noch alles ;-) zum Glück. Hatte mir mal den motortreiber zerschossen wegen max 2 Ampere.. Wusste aber nicht wieviel der Motor hatte und irgendwann ist der abgeraucht. Da kam die Antwort des Verkäufers leider zu spät.

Kampi
21.08.2012, 09:14
Ist ja nicht falsch ^.^
Das ist halt das Problem am UART. Wenn man in einen Schaltplan eine Leitung hat die Tx heißt, weiß man nicht auf was sich dieses Tx bezieht. Ist das das Tx vom Sender oder vom Empfänger.
Und so ein Bluetooth Modul ersetzt das Kabel ja nur durch eine Funkstrecke und in dem Fall darf natürlich nicht bei jedem Modul gekreuzt werden da hast du schon recht. Es darf sich halt nur eine Kreuzung in dem gesamten Übertragungsweg befinden. Das ist (meiner Meinung nach) ein sehr großer Nachteil am UART und am RS232. Du musst da wirklich tierisch aufpassen, weil es sonst nicht funktioniert und erschwerend kommt eine nicht ganz eindeutige Bezeichnung, wie z.B. MOSI = Master out Slave in beim SPI, hinzu.
Aber dein Hinweis ist nicht verkehrt :). Das war bischen unglücklich von mir formuliert.

toter_fisch
21.08.2012, 15:15
Hast du Rx und Tx gekreuzt? Also Rx vom Modul an Tx und andersrum?

finde ich bei RN-Controll komisch, den da wird das Signal schon intern gekreuzt und daher müsste er RX von GPS an RX von RN-Control anschließen ;) Soweit ich weis sollte er allerdings den Max Spannungswandler rausnehmen um TTL Signale zu bekommen.

Ich versuche übrigens auch gerade das NL-501ettl zu "bändigen". Mein Problem liegt darin das es alle Verfügbaren Protokolle von NMEA ausgibt, ich brauche jedoch nur $GGA.

EDIT: Oh, hatte Seite 2 nicht gesehen ;)

Marc1
21.08.2012, 19:11
Also ich bekomme so oder so NMEA Signale ;). den Max brauch ich nicht rausnehmen kommt auch so was an mit 5 Volt.

Allerdings seh ich bei dem beispiel immernoch kein Signal oder anderweitigen auswertungen :confused: