Forum: Mikrocontroller und Digitale Elektronik GPS Daten auf I2C


von Oli (Gast)


Lesenswert?

Hi,
ich hab ne generelle Frage zum Speichern eines Strings (z.B. GPS 
Positionsdaten) auf einem I2C. Ich benutze BASCOM zur Programmierung.

Was ist nun der beste Weg einen String im I2C zu speichern ??
Den String byteweise zerlegen, umwandeln und jedes Byte einzeln zum I2C 
zu schicken ??

Habe auch schon versucht einen Pagewrite mit den Kommandos I2CSend und 
I2CReceive zu machen, schlug aber immer fehl.
Wenn wer Erfahrungen damit hat, wäre ich um etwas Hilfe und Beistand (in 
Form von generellen Erklärung bis hin zu Codesnippets) sehr glücklich.

Danke.

von thkaise (Gast)


Lesenswert?

Ich gehe mal davon aus, daß Du ein EEPROM mit I2C-Bus meinst. Der 
I2C-Bus ist wesentlich vielseitiger....
Ich habe leider mit BASCOM noch nie programmiert, aber prinzipiell sieht 
die Ansteuerung eines I2C-Geräts folgendermaßen aus:

1. Startbit senden
2. Adresse des Geräts senden (Bit 0 ist die Richtung)
3. Daten senden (evtl. mehrere)
4. Stopbit senden.

Bei einem I2C-Speicher gibt es verschiedene Möglichkeiten, Daten 
hineinzuschreiben: Entweder man schickt die Daten ohne Adressangabe, so 
daß sie der Reihe nach abgelegt werden, oder man kann sie gezielt in 
bestimmte Adressen ablegen.
Auf jeden Fall mußt Du zu Beginn Deines Programms die Anfangsadresse für 
Deine Schreib/Lese-Zugriffe festlegen.
In den Datenblättern ist die Vorgehensweise exakt beschrieben.

von Jörg Hofmann (Gast)


Lesenswert?

@ Oli

Hi, ich kann nur zustimmen, was "thkaise" geschrieben hat. Aber warum
ich schreibe, ist das ich zurzeit die Idee habe, GPS empfang mit einem
µC zu realisier und das Ergebnis auf einem Display darzustellen. Also
die Frage, wo komme ich an vernünftig Info`s zum GPS und was für
Empfangs möglichkeiten gibt es?

mfg Jörg

von Ralf Frare (Gast)


Lesenswert?

Kennst du ??

http://www.kh-gps.de/

von Oli (Gast)


Lesenswert?

Wow, hätte ja nicht gedacht, dass mein Thread nach nem guten Jahr
nochmal zum Leben erwacht ;)

Zum Empfang der Daten besorgst du dir einen Handelsüblichen
GPS-Empfänger. Hatte damals einen von Garmin. Der war recht gut. Das
Gerät muss eben die Möglichkeit bieten die Daten über die serielle
Schnittstelle auszulesen. Die Daten erhälst du in einem genormten
Format. Nennt sich NMEA 0138 (glaub ich). Innerhalb dieses Formates
werden dir die ganzen Daten, wie Breitengrade, sichtbare Satelliten,
etc. übertragen.

Das speichern der Daten hatte ich damals auch über einen
Mikrocontroller gemacht. Als Sprache hab ich Bascom's Basic
verwendet.

Ich hab damals auch eine Visualisierung der Daten vorgenommen. Das ging
recht komfortabel mit Microsoft Mappoint 2002. Diese Programm bietet
dir ne Schnittstelle, die du in VB, C# usw. ansprechen kannst.

Vielleicht noch eine Anmerkung zum beschreiben des EEPRROMS per I2C.
Der Baustein hat eine feste Page-Breite von 64 Bit. D.h. dass egal wo
du anfängst innerhalb der Page zu schreiben du ein Stop-Signal bei
einer Adresse von einem vielfachen von 64 schicken musst. Die
Chip-Logik springt nicht an den Anfang der nächsten Page sondern an den
Anfang der gleichen, die du gerade beschreibst !! D.h. hat mich damals
kopfzerbrechen bereitet, was der eigentliche Auslöser für diesen Thread
war.

Hab mal schnell meine Favoriten wieder rausgekramt, einige davon sind
aber leider bereits tot. Hab dann schnell mal über die www.kh-gps.de
drübergeschaut. Hat eigentlich ziemlich vielversprechend ausgesehen.

auf http://www.trimble.com wird das grundsätzliche Prinzip von GPS
erläutert.
I2C-Hilfe bietet folgende Seite :
http://www.sprut.de/electronic/pic/grund/i2c.htm

Solltest du noch weitere Fragen haben, dann poste einfach wieder.

Grüsse

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.