www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Inbetriebnahme ORG-1315


Autor: Matthias Laubnitz (mcl024)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

hat jemand von euch Erfahrungen mit dem GPS Modul ORG-1315? Hat es 
jemand am laufen?

Gruß
mcl024

Autor: Matthias Laubnitz (mcl024)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Anbei einmal das Datenblatt.
Wo bekomme ich mehr Informationen über die verschiedenen 
Software-Befehle.

Irgendjemand eine Ahnung?

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Wo bekomme ich mehr Informationen über die verschiedenen
>Software-Befehle.

Welche meinst du genau?

MfG Spess

Autor: Matthias Laubnitz (mcl024)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nun ja, die unter 8.2 SiRF Binary

Verstehe ich unter output message das das GPS Modul mir etwas mitteilt?
In welcher Form? Also Welches Bytes zuerst usw.

Verstehe ich unter input message das ich dem GPS Modul etwas sende?
Bsp.:

0x86 Set main serial port

und dann? Welche Reihenfolge?

Es fehlen doch informationen zu den einzelnen Befehle. Oder stelle ich 
mich zu blöd an.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Verstehe ich unter output message das das GPS Modul mir etwas mitteilt?
>In welcher Form? Also Welches Bytes zuerst usw.

Wenn du nicht auf Sirf Binary umschaltest sind das normale NMEA-Strings. 
Also die Daten stehen im Klartext drin. Beschreibungen sind haufenweise 
im Internet zu finden. Such mal nach 'NMEA Reference Manual'.

>Verstehe ich unter input message das ich dem GPS Modul etwas sende?
>Bsp.:
>
>0x86 Set main serial port
>und dann? Welche Reihenfolge?

Gilt das gleiche, wie für die Input Messages.

>Es fehlen doch informationen zu den einzelnen Befehle. Oder stelle ich
>mich zu blöd an.

Über den Tabellen steht schon, das das Modul NMEA-xxx und Sirf Binary 
unterstützt.

MfG Spess

Autor: Matthias Laubnitz (mcl024)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK. Vielen Dank erstmal. Muss mir das mal genau anschauen mit SiRF und 
NMEA.

Melde mich dann wieder.

Autor: Matthias Laubnitz (mcl024)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie versteht ihr das mit dem ON_OFF Pin. Muss der die ganze Zeit mit 
angegebenen Taktrate laufen oder reicht es wenn er ein High ist?

Mein Problem ist das ich beim Ausgang PPS kein Puls bekomme. Da passiert 
nichts. Soweit wie ich das jetzt mit SiRF Befehlen verstanden habe gibt 
es auch kein "START" Befehl.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Mein Problem ist das ich beim Ausgang PPS kein Puls bekomme.

Dann halte die Antenne mal 30 Minuten aus dem Fenster.

Autor: Matthias Laubnitz (mcl024)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok. Und der ON OFF Pin wie muss der sein? Getaktet oder High? Was denkt 
ihr laut dem Datenblatt?

Autor: Christoph Budelmann (Firma: Budelmann Elektronik GmbH) (christophbudelmann) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Matthias Laubnitz schrieb:
> Ok. Und der ON OFF Pin wie muss der sein? Getaktet oder High? Was denkt
> ihr laut dem Datenblatt?

Ein High-Impuls schaltet das Modul ein, der nächste wieder aus. Details 
zum Timing stehen im Datenblatt (100ms high as recommended).

Autor: Matthias Laubnitz (mcl024)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also irgendwie klappt das nicht. Ein ON_OFF Impuls zeigt keine Wirkung. 
Am SPI Ausgang vom GPS Modul passiert nichts auch wenn ich z.B SiRF ID 
152 sende bekomme ich keine Antwort. Ein PPS bekomme ich auch nicht wenn 
ich das Modul 30min aus dem Fenster halte. Es passiert einfach gar 
nichts. Wenn ich den ON_OFF mit dem beschriebenen Timing durchgehend 
laufen lasse bekomme ich am GPIO2 ca. alle 1,4s einen ganz kurzen Impuls 
(µs).

Vielleicht habt ihr ja noch ein paar Ideen

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Am SPI Ausgang vom GPS Modul passiert nichts auch wenn ich z.B SiRF ID
>152 sende bekomme ich keine Antwort.

Dir ist aber bewusst, das das Modul ein SPI-Slave ist. Von allein sendet 
das gar nichts. Und ist es auch über COMM_SEL aktiviert?

Warum nimmst du nicht das UART-Interface?

MfG Spess

Autor: Matthias Laubnitz (mcl024)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja dessen bin ich mir bewusst. Daher spreche ich es ja auch mit ID 152 
"Poll Navigation Parameter" an, darauf sollte es eigentlich mit ID 19 
antworten.

COMM_SEL ist mit 0Ohm gegen Masse gezogen.

Mit UART kann ich es nicht probieren da ich es nicht auf meiner 
Leiterplatte im Layout vorgesehen habe.

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Ja dessen bin ich mir bewusst. Daher spreche ich es ja auch mit ID 152
>"Poll Navigation Parameter" an, darauf sollte es eigentlich mit ID 19
>antworten.

Nur, wenn du den Takt vorgibst.

>Mit UART kann ich es nicht probieren da ich es nicht auf meiner
>Leiterplatte im Layout vorgesehen habe.

Wäre besser gewesen. Aber du wirst doch testweise an das TX-Pin 
herankommen?

Wo bekommt man eigentlich diese Module?

MfG Spess

Autor: Kalle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hatte das geliche Problem mit dem ORG 1318. hier erwartet das 
GPS-Modul zur Übertragung von Daten...
"The external SPI master shall transmit the following idle pattern, 
0xA7B4"
Also abwechselnd 0xA7 oder 0xB4 da ja 8 Bit Register. Schau mal bei 
Round Solutions nach.
VG

Autor: Matthias Laubnitz (mcl024)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich habe es über round solution für ca. 31 Euro ohne MwSt als Privatmann 
gekauft. Ist echt klein das Teil. Aber es ärgert mich das die 
Beschreibung so dünn ist. Naja vielleicht mir auch nur das Wissen.

Wie kann ich denn den SPI TAkt weiterlaufen lassen? Atmega32.

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Wie kann ich denn den SPI TAkt weiterlaufen lassen? Atmega32.

In dem du etwas sendest.

MfG Spess

Autor: Matthias Laubnitz (mcl024)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kalle schrieb:
> Schau mal bei
> Round Solutions nach.

Wo da?

Autor: Matthias Laubnitz (mcl024)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Spess53 schrieb:
> In dem du etwas sendest.

Muss ich während dessen CS auf Low ziehen. Eigentlich ja schon oder?

Autor: SPI (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
ja der CS musst du dabei auf LOW ziehen.

Servus

Autor: Kalle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau Dir mal den Beitrag an: "SPI Verständnisproblem". VG

Autor: Matthias Laubnitz (mcl024)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also als erstes schalte ich den ON_OFF Pin auf High nach 100ms wieder 
auf Low.
Dann warte ich ca. eine halbe Sekunde und sende folgendes:
uint8_t payload_ID152[10] = {0xA0,0xA2,0x00,0x02,0x98,0x00,0x00,0x98,0xB0,0xB3};

int main (void)
{
    SPI_Init();
    spi_sent_sirf_message(152);

    for(;;)
    {
        spi_send_byte(0xA7);
        spi_send_byte(0xB4);
    }
}

void SPI_Init(void)
{
    SPCR |= (1<<SPR0) | (1<<SPR1) | (1<<MSTR) | (1<<SPE);  // Schiebetakt = Sytemtakt/128
                              // Taktphase = versetzt
                              // Ruhezustand Clock = Low
                              // Betrieb = Master
                              // Richtung = MSB zuerst
                              // Freigabe = SPI frei
                              // Interrupt = deaktiviert
}

void spi_send_byte(uint8_t value)
{
  DDRA |= (1<<DDA1);        // GPS CS Low
  SPDR = value;          // Daten uebernehmen und starten der Uebertragung
  while( ! (SPSR & (1<<SPIF)));  // warten bis SPIF=1 (Uebrtragung beendet)
  value = SPDR;          // SPIF wieder 0 (Pseudolesen)
  DDRA &= ~(1<<DDA1);        // GPS CS High
}

void spi_sent_sirf_message(uint8_t ID)
{
  uint8_t i;

  DDRA |= (1<<DDA1);        // GPS CS Low
  for(i=0; i<10; i++)
  {
    spi_send_byte(payload_ID152[i]);
  }
  DDRA &= ~(1<<DDA1);        // GPS CS High
}

aber leider kommt trotzdem nichts auf MISO Leitung bei mir an.

Autor: Matthias Laubnitz (mcl024)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im SiRF Protokoll ist beschrieben das als erstes die

Start Sequence: 0xA0A2

gesendet werden soll danach die

Payload Length: 2-Bytes (15Bit)

dann die Daten selbst und dann eine die

Checksum: 2-Bytes (15Bit)

und zum Abschluss die

End Sequence: 0xB0B3

Meine Frage ist nun wie sende ich bei Payload Length und Checksum nur 
15Bit?

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Meine Frage ist nun wie sende ich bei Payload Length und Checksum nur
>15Bit?

Weiss ich nicht. Aber bist du sicher, das sich das Modul überhaupt im 
SIIRF-Mode befindet? Die Module mit SIRF-Chipsatz, die ich kenne, 
befanden sich im Auslieferungszustand im NMEA-Mode. Um das 
SIRF-Protokoll zu nutzen, mussten die erst umprogrammiert werden. Habe 
ich aber nie gemacht.

MfG Spess

Autor: Matthias Laubnitz (mcl024)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, danke für den Hinweis. Mit Set Protocol Message ID135 kann man das 
SiRF Binary Protocol aktivieren.
Habe ich auch gemacht, ändert allerdings auch nicht. Es reagiert nicht.

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Dumme Frage: Was stört dich an NMEA?

Du hast dir den, mit deinen Vorkenntnissen, denkbar ungünstigsten Weg 
(SPI, Sirf-Protokoll) gesucht.

MfG Spess

Autor: Matthias Laubnitz (mcl024)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Spess53 schrieb:
> Du hast dir den, mit deinen Vorkenntnissen, denkbar ungünstigsten Weg
> (SPI, Sirf-Protokoll) gesucht.

Warum?
Was heißt mit meinen Vorkenntnissen. Mein beschriebener C-Code ist doch 
nicht falsch. Ich verstehe nur das mit den 15 Bits nicht. Du anscheinend 
ja auch nicht.

Spess53 schrieb:
> Dumme Frage: Was stört dich an NMEA?

Nichts! Ich möchte trotzdem wissen warum mein Weg nicht funktioniert.

Sorry soll nicht böse gemeint sein. Bin nur ein wenig frustriert.

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Was heißt mit meinen Vorkenntnissen.

Zur Erinnerung:

Beitrag "Re: Inbetriebnahme ORG-1315"

Beitrag "Re: Inbetriebnahme ORG-1315"

>Mein beschriebener C-Code ist doch nicht falsch.

Weiß ich nicht. Bin notorischer Assemblerprogrammierer.

>Ich verstehe nur das mit den 15 Bits nicht. Du anscheinend
>ja auch nicht.

Muss ich auch nicht. Meine Module spielen alle auch ohne dieses Wissen.

MfG Spess

Autor: Matthias Laubnitz (mcl024)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So habe das GPS-Modul nun endlich mal am laufen.
Nachdem ich nach dem ersten Low-High-Low Impuls ca. 1s später den 
ON_OFF-Pin wieder auf High geschaltet habe, stieg der Stromverbrauch und 
das GPS-Modul  sendet Daten.

Die ich allerdings nicht deuten kann. Vielleicht kann ja jemand von euch 
damit etwas anfangen

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Die ich allerdings nicht deuten kann. Vielleicht kann ja jemand von euch
>damit etwas anfangen

Nein. Bist du sicher, das du den richtigen SPI-Mode ,also CPOL, CPHA und 
DORD, benutzt?

MfG Spess

Autor: Matthias Laubnitz (mcl024)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also im Datenblatt steht:

MSB zuerst:         Also DORD = 0;
Taktphase versetzt: Also CPHA = 0;

und bei dem Ruhezustand vom Clock bin ich mir nicht ganz sicher. Aus dem 
Datenblatt interpretiere ich das es egal ist, also

CPOL = 0;  oder CPOL = 1;

Autor: Thorsten S. (thosch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moinsen,

offensichtlich benutzt du den falschen SPI-Mode, die Daten sind um ein 
Bit nach rechts geschoben, erkennt man an den Füllworten:
0x53DA ergibt sich aus  0xA7B4 >> 1

Gruß,
Thorsten

Autor: Matthias Laubnitz (mcl024)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thorsten S. schrieb:
> 0x53DA ergibt sich aus  0xA7B4 >> 1

Ok danke für den Hinweis. Aber was bedeutet 0xA7B4. Och hätte eher 
0xA0A2 erwartet.

Autor: Thorsten S. (thosch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Matthias Laubnitz schrieb:
> Aber was bedeutet 0xA7B4. Och hätte eher
> 0xA0A2 erwartet.
0xA7B4 ist das Füllwort, daß sich auch in Deinem Sourcecode 
wiederfindet...
Offensichtlich sendet das Modul dies zwischen den Messages.

0xA0A2 usw. findest Du, in Deinem Log ab Adresse 0x0030, wenn Du die 
Bitverschiebung rückgängig machst. Da steht:
50 51 00 01 09 00 80 09-D8 59 DA 53 DA 53 D0 51

Wenn wir das jetzt alles um ein Bit nach links schieben, ergibt sich:
A0 A2 00 02 12 01 00 13 B0 B3 B4 A7 B4 A7 A0 A2

Was die Daten bedeuten, mußt Du aber selbst herausfinden,
jedenfalls sind diese Daten vom Modul gesendet worden.

Gruß,
Thorsten

Autor: Matthias Laubnitz (mcl024)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Super vielen Dank.

Wenn ich CPHA=1 setze kommen die Daten so wie erwünscht.

Nur warum steht im Datenblatt CPHA=0

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.