Hallo,
ich habe einen Atmega 1284p und möchte damit die seriellen Daten eines
GPS-Moduls abgreifen. Den Atmega programmiere per Arduino ISP mit der
Arduino IDE. Dafür benötige ich die Library NazaDecoder, welche mir die
Seriellen Daten ausliest und in GPS Koordinaten umwandelt. Mit dem
normalen Arduino Uno funktioniert das auch problemlos, nur mit dem
Atmega1284p bekomme ich einfach keine Daten ausgelesen. Ich habe den TX
Pin vom GPS Modul mit dem RX0 Pin des Atmega verbunden. Wenn das ganze
mit dem Arduino auslese, verwende ich den RX Pin des Arduino.
Woran kann das liegen? Normalerweise dürfte da doch kein allzu großer
Unterschied sein zwischen dem Atmega 328 des Arduino und des Atmega
1284p?
Ich wäre über jede Hilfe sehr Dankbar.
In der Regel wird die erste UART eines AVR für die Kommunikation zum PC
genutzt.
Arduino Tradition.
Von daher wundert es mich, dass das beim UNO einfach so funktioniert.
Soweit mir bekannt hat dein AVR 4 UART.
Es macht also wenig Sinn UART0 für dein GPS zu verwenden.
Übrigens:
Die Serielle ist kein Bus!
Die übliche Arduinos haben Angstwiderstände OnBoard, damit solche
Kollisionen nicht zum rauchen führen.
Das ist wohl der Grund warum es am UNO (halbwegs) funktioniert.
Arduino F. schrieb:> In der Regel wird die erste UART eines AVR für die Kommunikation zum PC> genutzt.> Arduino Tradition.> Von daher wundert es mich, dass das beim UNO einfach so funktioniert.>> Soweit mir bekannt hat dein AVR 4 UART.
Nein,
1284p hat 2 Uart,
328p hat 1 Uart
328pb hat 2 Uart
324pb hat 3 Uart
Danke für eure Antworten.
Das heisst also ich müsste das über den 2. UART verbinden, also dann an
den PIN RX1 statt RX0? Wie kann ich das im Programm festlegen?
Hier mal der Programmcode:
eigentlich sollte es dann so sein, dass die GPS-Koordinaten in den
beiden Variablen als Kommazahl gespeichert werden, zur überprüfung
befindet sich eine LED am µC die Leuchtet sobald etwas empfangen wurde.
Serial.begin(115200); // verbindung zum PC, über USB
Serial1.begin(115200); // verbindung zum GPS Modul
Wilhelm M. schrieb:> 1284p hat 2 Uart,
Immerhin...
Eine Zweite sollte hier doch reichen.
Arduino F. schrieb:> Serial.begin(115200); // verbindung zum PC, über USB> Serial1.begin(115200); // verbindung zum GPS Modul
Bist Du sicher, dass die Baud-Rate stimmt. Meine uBlox Neo-8 / Neo-6
senden default mit 9600 Bd.
allerdings sind die Werte meiner drei Variablen immer noch null, obwohl
das GPS Modul einwandfreien GPS Empfang hat. Was kann denn da noch das
Problem sein? Das Beispielprogramm von der Library das mit dem Arduino
Uno funktioniert sieht so aus:
Wilhelm M. schrieb:> Bist Du sicher, dass die Baud-Rate stimmt. Meine uBlox Neo-8 / Neo-6> senden default mit 9600 Bd.
Durchaus möglich ....
Habs einfach stumpf aus dem Code entnommen.
Sukramaniul schrieb:> if (X_ist = 0)
Das solltest du dringend nochmal überdenken!