• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

Selfmade GPS II ATMEGA128

hendyp

Geocacher
Hallo zusammen,

wenn die Schaltung einmal steht, sollte es eigentlich relativ unproblematisch sein, die auf ein bestimmtes Gehäuse anzupassen; natürlich sofern die Bauteile es zulassen ;) . Meinen eigenen Entwurf möchte ich schließlich auch irgendwann mal in ein Gehäuse packen. Evtl. würde ich mich sogar breitschlagen lassen, den Entwurf neu zu routen. Voraussetzen würde ich allerdings, dass mir dann jemand die Leiterplattenumrisse vorgibt :roll: Dann bin ich es nicht gewesen, wenn es nicht passt :p

Die Bopla Streamline Gehäuse hatte ich mir auch schon einmal angesehen, allerdings sind sie mir nur zum Ausprobieren noch ein bisschen teuer. Soweit ich das verstanden habe, gibt es vier Varianten von jeder Größe: mit/ohne Batteriefach und mit/ohne Displayausschnitt (400, 403, 400 DIS, 403 DIS, entsprechend für die 600er und 800er), wobei der Displayausschnitt meines Erachtens nach nicht mit dem DOG-M-Display zusammen passt. Da sollte man wohl besser selbst ausschneiden.

Viele Grüße,
hendy
 

kiozen

Geomaster
Nightman schrieb:
Die Lithium-Batterie habe ich auch in Betracht gezogen, aber mangels Ladegerät und Entlade-Schutzelektronik erstmal nach hinten angestellt (aber nicht vergessen).

In qualitativ hochwertigen mobilen Geräten wie Handys oder PPC werden Akkus mit eingebauten Chip verwendet. Die original Batterie vom HTC Universal hat z.b. so einen Chip. Der wird auch vom Linux Kernel unterstützt. Nur so eine Idee....

Oliver
 

Nightman

Geocacher
So, ich habe heute mal den USB-Port getestet, Treiber vom FT- Chip installiert, Gerät angeschlossen. Es kommen zwar Zeichen über HTerm an, sind aber nicht lesbar :hilfe:

Vielleicht sind die Daten invertiert, jedenfalls auf der Speicherkarte sind alle Daten lesbar!
Mit diesem Chip hatte ich bis jetzt auch noch nichts zu tun.

Nightman
 

hendyp

Geocacher
Nightman schrieb:
So, ich habe heute mal den USB-Port getestet, Treiber vom FT- Chip installiert, Gerät angeschlossen. Es kommen zwar Zeichen über HTerm an, sind aber nicht lesbar :hilfe:
Sind die Portparameter (Baudrate, Stopp- und Datenbits, Parity) auf µC und PC gleich eingestellt? Wenn nicht, kann es sein, dass Datensalat angezeigt wird, das hatte ich zumindest schonmal... Ansonsten finde ich den FTDI-Chip eigentlich recht pflegeleicht :D

Gruß,
hendyp
 

Nightman

Geocacher
Hallo hendyp,

ich habe im HTerm die Parameter so eingestellt wie im Programm von Martin: 9600,8,1,N

Trotzdem kann ich mit den Daten im HTerm nichts anfangen, die Sourcen sind ja auch noch Beta.

Martin hat ja auch geschrieben das er den FT232 noch nicht getestet hat.

Nightman
 

hendyp

Geocacher
Mir ist da gerade noch was eingefallen: Hast Du die PC-Einstellung mit beiden UARTs verglichen? Ich kenne zwar Martins Schaltung nicht so genau und die Quellen gar nicht, aber meiner Ansicht nach müsste das GPS-Modul an einem UART des ATmega128 hängen und der FT232 am anderen.

Da ich davon ausgehe, dass Du Daten auf dem Display bekommst, schließe ich falsche Quarzeinstellung einfach mal aus. ;)

Gruß,
hendyp

P.S. Ich bin heute den ganzen Tag fernab des Internets, so dass ich erst heute Abend wieder antworten kann.
 

Nightman

Geocacher
Das war´s gewesen, Danke für den Tip. In Martins Quellen ist der GPS-UART auf 9600 und der zweite auf 19200 eingestellt!

Hab ich doch gestern abend glatt übersehen. :lol:

Aber jetzt funzt alles so wie es soll.


Nightman
 
OP
K

KrasserMann

Geocacher
Hallo allerseits :)

die flitterwochen sind leider rum und ich meld mich hier einfach mal zurück.

Es ist schonmal schön zu lesen das der USB Teil offensichtlich funktioniert ;)


Werd mir dann mal in den nächsten Wochen auch ein neues Entwicklungsgerät basteln und dann so nebenbei mal weiter an der Kiste arbeiten.

Gruß Martin
 
OP
K

KrasserMann

Geocacher
Sooooo gibt mal wieder ein kleines Update:

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

Die Hardware ist auf ner schicken Platine, USB geht.

Der USB Port dient derzeit für Firmwareupgrades und um das Teil als USB Maus nutzen zu können, weiters folgt.

Dank eines interessierten Mitstreiters wird die Elektronik wohl bald um eine
Stromversorgung mittels LI-IONEN Akku samt passender USB Ladeelektronik erweitert
werden können.

Der Schaltplan ohne diese Ladeelektronik steht nun auch zum Download auf obiger
Projektseite bereit.

Gruß Martin
 

Demy

Geomaster
Ich verfolge das Projekt schon eine Weile und bin gerade auf folgendes gestossen:
Ich brauche eine Routine die einen Input STRING im UTM Format nach Dezimalgrad wandelt und eben einedie Dezimalgrad in einen UTM String umwandelt.

Ich weiss ja nicht wie/womit du das Ding betreibst, aber hier findest du das ganze als JavaScript:
http://home.hiwaay.net/~taylorc/toolbox/geography/geoutm.html

Lässt sich bestimmt relativ einfach in deine Sprache übersetzen :)

Gruß,
Demy
 

tipfix

Geocacher
Tag :hilfe:

Aber ruhig geworden hier. :schockiert: Ich versuchs trozdem mal. @Krassermann: Laut den Bildern von Deinem aktuellen Tracker kannst du die Static Navigation ein und ausschalten. Ich hab mich schon halbtot gesucht wie man das macht. Ich würde das ganz gern in Bascom machen. Vieleicht bist Du so nett und hilfst mir auf die Sprünge. :gott:

Schönen Tag
 
OP
K

KrasserMann

Geocacher
Weihnachtspause ;) , oder die Ruhe vor dem Sturm

neee quatsch derzeit gibt´s nicht viel neues da ich probleme habe mit einem BUG in der Bascom GLCD Library, leider scheint MCSELEC nicht daran interessiert zu sein diesen zu beheben. Und solange der nicht behoben ist kann ich die SW nicht weiterentwickeln :(

Aber nun zu deiner Frage:

Damit Initialisiere ich das GPS Modul:

Code:
Sub Initgps

   'This Sub configures the SIRD*3 Module
   '1. Enter SIRF Binary Protocol Mode  @ 9600,8,N,1
   '2. Disable Static Navigation
   '3. Switch back to NMEA Output @ 9600,8,N,1
   '4. Disable unwanted NMEA Sentences (ALL Except VTG / GGA)

   Dim Sirfcmd(32) As Byte
   Local Cmdindex As Byte

   Cls
   Lcdat 1 , 1 , "    GPS Module Setup    " , 1
   Lcdat 8 , 1 , " 2008 Team KrasserMann " , 1
   Waitms 500
   Lcdat 3 , 1 , "Enable  Sirf Mode"
   Print #5 , "$PSRF100,0,9600,8,1,0*0C"                    'Switch to SIRF BIN MODE at 9600,8,N,1
   Lcdat 3 , 105 , "OK"
   Waitms 500
   Lcdat 4 , 1 , "Disable StatNAV"

   Restore Snavoff
   For Cmdindex = 1 To 10                                   'Read Datalines to Array
      Read Sirfcmd(cmdindex)
   Next Cmdindex
   For Cmdindex = 1 To 10                                   'Ouput bytes to Serial Port
      Printbin #5 , Sirfcmd(cmdindex) ; 1
      While Ucsr1a.txc = 0 : Wend
   Next Cmdindex
   Waitms 500
   Lcdat 4 , 105 , "OK"
   Waitms 500

   Lcdat 5 , 1 , "Enable  Nmea Mode"
   Restore Tonmea
   For Cmdindex = 1 To 32                                   'Read Datalines to Array
      Read Sirfcmd(cmdindex)
   Next Cmdindex
   For Cmdindex = 1 To 32                                   'Ouput bytes to Serial Port
      Printbin #5 , Sirfcmd(cmdindex) ; 1
      While Ucsr1a.txc = 0 : Wend
   Next Cmdindex
   Waitms 500
   Lcdat 5 , 105 , "OK"
   Waitms 500

   Lcdat 6 , 1 , "Config  Nmea"
   Print #5 , "$PSRF103,00,00,01,00*24"                     'GGA einschalten ohne Checksum
   Print #5 , "$PSRF103,05,00,01,00*21"                     'VTG einschalten ohne Checksum
   Print #5 , "$PSRF103,01,00,00,01*25"                     'GLL abschalten
   Print #5 , "$PSRF103,02,00,00,01*26"                     'GSA abschalten
   Print #5 , "$PSRF103,03,00,00,01*27"                     'GSV abschalten
   Print #5 , "$PSRF103,04,00,00,01*20"                     'RMC abschalten
   Print #5 , "$PSRF103,06,00,00,01*22"                     'MSS abschalten
   Waitms 500
   Lcdat 6 , 105 , "OK"
   Wait 3


End Sub



und diese Data Zeilen benötigst du dazu auch noch im Programm, sie enthalten die SIRF Befehle

Code:
Tonmea:
Data &HA0 , &HA2 , &H00 , &H18 , &H81 , &H02 , &H01 , &H01 , &H00 , &H01 , &H01 , &H01 , &H05 , &H01 , &H01 , &H01 , &H00 , &H01 , &H00 , &H01 , &H00 , &H01 , &H00 , &H01 , &H00 , &H01 , &H25 , &H80 , &H01 , &H3A , &HB0 , &HB3

Snavon:
Data &HA0 , &HA2 , &H00 , &H02 , &H8F , &H01 , &H00 , &H90 , &HB0 , &HB3

Snavoff:
Data &HA0 , &HA2 , &H00 , &H02 , &H8F , &H00 , &H00 , &H8F , &HB0 , &HB3


Hoffe geholfen zu haben.

Gruß und frohes Fest,


Martin
 

tipfix

Geocacher
:D Hallo :D

Vielen Dank. Genau das was ich gesucht habe. Das hilft mir weiter.
Hattest du dir mal angesehen was ich aus Deinem ersten Tracker gemacht habe?

Ebenfalls Frohes Fest

EDIT: Kann man beim einschalten abfragen ob Static Navication eingeschalten ist oder nicht?
 
OP
K

KrasserMann

Geocacher
Ja hatte ich mir angesehen, nett das Display gefällt mir


Ob man das abfragen kann weiß ich aus dem kopf nicht, google mal nach der Dokumentation des SIRF-III Befehlssatzes


Gruß Martin
 

tipfix

Geocacher
Hallo

nett das Display gefällt mir
Mir auch. Wobei ich es leider nicht über Hard SPi zum laufen bekommen habe. Gut stört in dem Fall nicht weiter, will ja keine Animationen machen.
Denn Befehlssatz hab ich da. Mal gucken. Jetzt wo ich dank Dir weiss wie ich die Sequenz zum Gps bekomme sollte das raus zu bekommen sein.
Betreibe mein GPS mit einem 9V Block. Läuft um die 10 Stunden am Stück.

Gruß Andreas
 
OP
K

KrasserMann

Geocacher
Ist ein Register des 2, USART ich nutz ja nen MEGA128

Such dir das Passende aus dem Datenblatt für den Mega 32 raus, der hat ja auch nur 1 USART
 

tipfix

Geocacher
Bei meinem 644'er heißt das Register UCSR0A.
Ich weiß das ich etwas nerve, aber wie hast Du das Register dimensioniert?

Danke Andreas
 

tipfix

Geocacher
Und da isser wieder

Code:
While Ucsr0a.txc0 = 0 : Wend
So gehts bei mir.

Ich nutze folgendes Modul NL-501ETTL. Das nimmst Du doch auch?
Ich habe jetzt folgenden Code eingefügt:

Code:
Sub Navein()
Print "$PSRF100,0,9600,8,1,0*0C"
Waitms 500
Restore Snavon
   For Cmdindex = 1 To 10                                   'Read Datalines to Array
      Read Sirfcmd(cmdindex)
   Next Cmdindex
   For Cmdindex = 1 To 10                                   'Ouput bytes to Serial Port
      Printbin Sirfcmd(cmdindex) ; 1
      While Ucsr0a.txc0 = 0 : Wend
   Next Cmdindex
Waitms 500
Restore Tonmea
   For Cmdindex = 1 To 32                                   'Read Datalines to Array
      Read Sirfcmd(cmdindex)
   Next Cmdindex
   For Cmdindex = 1 To 32                                   'Ouput bytes to Serial Port
      Printbin Sirfcmd(cmdindex) ; 1
      While Ucsr0a.txc0 = 0 : Wend
   Next Cmdindex
Waitms 500

Print "$PSRF103,00,00,01,00*24"                             'GGA einschalten ohne Checksum
Print "$PSRF103,05,00,01,00*21"                             'VTG einschalten ohne Checksum
Print "$PSRF103,01,00,00,01*25"                             'GLL abschalten
Print "$PSRF103,02,00,00,01*26"                             'GSA abschalten
Print "$PSRF103,03,00,00,01*27"                             'GSV abschalten ohne Checksum
Print "$PSRF103,04,00,01,00*20"                             'RMC einschalten ohne Checksum
Print "$PSRF103,06,00,00,01*22"                             'MSS abschalten

Waitms 200
end sub

Ich bin auch ganz fest der Meinung das das einschalten schon mal geklappt hat.
Danach nicht mehr.
Ich habe auch mal nur den Sirfmode eingeschaltet ohne wieder zurück zuschalten.
Ging auch. Ist es zufall ob es geht oder nicht?

Gruß Andreas
 
Oben