www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik µblox + uart + rnmega128 + display + PROBLEM


Autor: dap by MAT (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Grüße euch!

Hab vor einiger Zeit schon mal über mein Problem geklagt... nun komme 
ich wieder zu euch um mir Hilfe zu holen!

Kurz und bündig geht es um folgendes:
Habe mir für meine Diplomarbeit ein µblox-GPS mit LEA-4H zugelegt und 
versuche nun die Datensätze über mein RN-Mega-128 auf ein Display zu 
übertragen. Mache das ganz üblich mit Interrupt. Irgend einen Fehler 
muss ich machen, da ich nur misst und wirres Zeug am Display lese. Habe 
bereits mehrere Nachtschichten eingelgt ... ohne Erfolg!
Sende ich (sogar sehr große) Datensätze über Hyperterminal auf das Board 
klappt alles wunderbar und mir wird JEDES (bis auf ein paar kleine 
Fehler) Zeichen am Display ausgegeben.
Nun habe ich bereits mein µblox so konfiguriert das nur mehr $GPGGA über 
TX ausgegeben wird ... OHNE ERFOLG !
Im Anhabg findet ihr mein ganzes Programm dazu!

ICH BITTE EUCH ALLE ... HELFT MIR !!!

                         GROßEN DANK !!!

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du das µblox-GPS mit LEA-4H an dem PC (Hyperterminal) anschliesst - 
klappt das?

Autor: dap by MAT (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schließe ich das ja eigentlich für USB ausgelegte GPS-Modul über USB an 
meinen Laptop an und starte u-center Application, bekomme ich alle Daten 
wunderbar herein (Sateliten werden ebenfalls empfangen)!
Auf RS232 kann ich leider nicht anstecken, da dafür ein MAX erfordelich 
wäre. Das Modul ist aber zu 99% in Ordnung.

Ich bin echt ratlos !!! BITTE UM HILFE !!!

Autor: Werner A. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du schonmal gemessen, wie lange du für eine Bildschirmausgabe 
brauchst? vielleicht dauert das nur länger als dein interrupt...

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In deinem Quelltext kann ich keinen Kommentar dem µblox-GPS mit LEA-4H 
zuordnen. Dort lese ich nur was zu einem Funkmodul und einem MAX (den du 
nicht hast). Von beiden Baudraten (19200 und 9600) ist beim Atmega128 
Empänger UART 9600 Baud bei der Verbindung zum GPS zu wählen.

Einen MAX... für den Anschluss an den PC würde ich mir auf jeden Fall 
zulegen oder eine einfache Transistorschaltung. Wie kann man anders 
herausfinden, ob das GPS-Modul überhaupt am vorsehenen Pin das Erwartete 
sendet?

BTW. hast du TXD1 am GPS/RX am Atmega128 direkt gekreuzt verbunden über 
den RS232 TTL Stecker 
(http://www.roboternetz.de/wissen/index.php/RN-Defi...)?

http://www.u-blox.com/products/lea_4h.html
max. 3,6V (aber 5V tolerante Eingänge), TXD1 und RXD1 müssen benutzt 
werden (TXD2 und RXD2 sind reserved)

Du siehst, eine Menge Fehlerquellen. Kannst du näher beschreiben, wie 
und wo dein µblox-GPS mit LEA-4H an dem RN-Mega-128 hängt 
(Schaltplanskizze)?

Autor: dap by MAT (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe im Moment wenig Zeit... trotzdem mal GROßEN DANK !!!

Im Anhang findest du Bilder die dir den Anschluss meines GPS-Moduls gut 
visualisiert !

Also ich schließe einfach den nach ausen geführten PIN TX an den Atmega 
RX !

Autor: dap by MAT (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
SRY .. Anhang vergessen !!!

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jo.

Du hast das GPS Modul an die PC kompatible (!) RS232 Schnittstelle 
vom RN-Mega128FUNK Modul gehängt. Zwischen der und der TTL 
kompatiblen UART Schnittstelle des Atmega128 steckt noch ein 
Pegelwandler MAX 232 CPE, d.h. es passt so nicht.

Das GPS Modul liefert nämlich sowas wie TTL Pegel (bei 3,6V 
Betriebsspannung) und die RS232 vom RN-Mega-Board erwartet RS232-Pegel, 
d.h. andere Spannungen und invertierte Signale...

Du hast mehrere Möglichkeiten:

1/ GPS => 2. MAX... für 3,6V => Board (RS232 => MAX 232 CPE => 
ATmega128)

2/ GPS => andere IO-Pins am Board und Software-UART. Könnte in BASCOM 
spassig werden, das zu programmieren

3/ GPS => Board, aber "hinter" MAX 232 CPE direkt an Atmega128. In der 
mir zugänglichen Beschreibung des RN... kann ich nicht erkennen, ob das 
real machbar ist. Eine Steckleiste scheint es nicht zu geben und mit 
Challenger-Clips 
(http://www.reichelt.de/?;ACTION=3;LA=4;GROUP=C171;...) 
am MAX willst du nicht dauerhaft arbeiten ;-)

Eine Möglichkeit 4/ ist anscheinend durch das Funkmodul blockiert. Ein 
RN-Mega128 ohne Funkmodul hat nämlich eine 2. UART mit RS232TTL 
Anschluss. Dort könnte man direkt dran.

Der sicherste Weg ist 1/ mit dem Zusatznutzen, dass du das GPS so auch 
an die Serielle Schnittstelle des PC hängen kannst.

BTW. auf keinem deiner Bilder ist eine elektrische Verbindung sichtbar.

Autor: Matthias Theiser (Firma: HTBLuVA WY AUT) (poti)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab nun mal alles weggelassen was vom Quellcode her nicht relevant 
ist für die serielle Übermittlung von µblox auf Display:

' ---------------RN-Mega128Funk übliche ------------------
$regfile = "m128def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 16000000
$baud1 = 9600                             'Baudrate für RS232
Config Ping.0 = Output                    'Spannung an LCD aktivieren
Lcdpower Alias Portg.0

Open "com2:" For Binary As #2

' ---------------------------------------------------
On Urxc1 Send
Enable Urxc1
Enable Interrupts

Config Pinf.6 = Output
Lcd_rw Alias Portf.6
Lcd_rw = 0
Lcdpower = 1
Wait 1
Config Lcd = 20 * 2
Config Lcdpin = Pin , Db4 = Portf.3 , Db5 = Portf.2 , Db6 = Portf.1 , 
Db7 = Portf.0 , E = Portf.5 , Rs = Portf.7
Config Lcdbus = 4
Initlcd
Cls

Do

Loop

Send:
Lcd Chr(udr1)
Return
End

Autor: bas_ratte (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Software-UART ist mit bascom super einfach

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sind dap by MAT und Matthias Theiser zwei unterschiedliche 
Manifestationen der gleichen Person?

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Stefan B.

Das gleiche wie du habe ich ihm schon vor ein paar Tagen
gesagt. Er begreift es einfach nicht !

Beitrag "Re: ublox CR4 - Empfang: wirres Zeug"

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bas_ratte wrote:
> Software-UART ist mit bascom super einfach

Dann würde ich das doch direkt mal machen.

Autor: Matthias Theiser (Firma: HTBLuVA WY AUT) (poti)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kannste mir zu nem Software UART Hinweise geben oder mir sagen wo ich 
das ganze finde ???

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Frau Google spuckt z.B. DAS aus 
http://www.qsl.net/pa3ckr/bascom%20and%20avr/rs232... u.a. aber 
auch warnende Stimmen bzgl. der Stabilität bei IRQ Unterbrechungen.

BTW. Die Schaltung unter "Simple MAX" auf obiger Seite könntest du statt 
dem 2. MAX... benutzen. GND/5V kannst du vom RN-Board holen. der 
Transistor macht dann die Signalinvertierung und Signalanhebung. Du 
kannst damit dann auf den jetzigen RS232 Eingang gehen. Den Tip "Simpler 
Yet" kannst du auch anwenden, damit sparst du den rechten Transistor und 
die Bauteile drumherum (2 Widerstände, Diode).

Autor: bas_ratte (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Matthias Theiser (Firma: HTBLuVA WY AUT) (poti)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich bin "dap by MAT" ... JA !!!

Habe mich eben erstmal angemeldet!

Also erstmal GROOOOßEN DANK ... aber ich kann dieser Beschreibung nicht 
wirklich entnehmen das der Software-UART so einfach zu realisieren ist. 
BITTE kann mir mal jemand die Codeschnipsel posten die man dazu benötigt 
... wäre echt super !!!

Wenn ich das ganze jedoch mit nem externen zusätzlichen MAX machen würde 
... naja, was brauche ich denn da alles ?
Diese Beschreibung ist eindeutig zu komplex für mein Wissen. Also bitte 
mal ne zusammengefasste simple Beschreibung posten

DANKE !!!

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Räum' die Katze vom RN-Board, geh' wie ich jetzt ein Bier trinken und 
morgen denkst du in Ruhe über den Thread nach. Du hast alles was du 
brauchst.

Autor: bas_ratte (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
$regfile = "m128def.dat"                                    ' specify 
the used micro

$crystal = 4000000                                          ' used 
crystal frequency

$baud = 9600                                                ' use baud 
rate

$hwstack = 40                                               ' default 
use 32 for the hardware stack

$swstack = 40                                               ' default 
use 10 for the SW stack

$framesize = 40                                             ' default 
use 40 for the frame space




Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , 
Databits = 8 , Clockpol = 0

Config Com2 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , 
Databits = 8 , Clockpol = 0







'setup to use a serial output buffer

'and reserve 20 bytes for the buffer

Config Serialout = Buffered , Size = 255




'It is important since UDRE interrupt is used that you enable the 
interrupts

Enable Interrupts

Print "Hello world"

Print "test1"

Do

Wait 1

'notice that using the UDRE interrupt will slown down execution of 
waiting loops like waitms

Print "test"

Loop

End

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>mal ne zusammengefasste simple Beschreibung posten

Zieh den MAX232 auf deinem Board aus dem Sockel
und verbinde dein GPS mit dem Pin am MAX232
der zu RX an deinem ATMEga128 führt.

SofwareUART, na danke schön.

Autor: Matthias Theiser (Firma: HTBLuVA WY AUT) (poti)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
DANKE an ALLE !!!

Habe von TX einfach direkt an den PIN vom Atmega128 gehängt (nun läuft 
alles wunderbar) DANKE !!!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.