Inbetriebnahme ORG-1315

OP #2014514
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.
Gast #2014523
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
OP #2017190
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.
OP #2025664
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
Gast #2025730
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
OP #2025834
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.
Gast #2025861
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
Gast #2025875
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
OP #2025924
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:
1
uint8_t payload_ID152[10] = {0xA0,0xA2,0x00,0x02,0x98,0x00,0x00,0x98,0xB0,0xB3};
2

3
int main (void)
4
{
5
    SPI_Init();
6
    spi_sent_sirf_message(152);
7

8
    for(;;)
9
    {
10
        spi_send_byte(0xA7);
11
        spi_send_byte(0xB4);
12
    }
13
}
14

15
void SPI_Init(void)
16
{
17
    SPCR |= (1<<SPR0) | (1<<SPR1) | (1<<MSTR) | (1<<SPE);  // Schiebetakt = Sytemtakt/128
18
                              // Taktphase = versetzt
19
                              // Ruhezustand Clock = Low
20
                              // Betrieb = Master
21
                              // Richtung = MSB zuerst
22
                              // Freigabe = SPI frei
23
                              // Interrupt = deaktiviert
24
}
25

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

35
void spi_sent_sirf_message(uint8_t ID)
36
{
37
  uint8_t i;
38

39
  DDRA |= (1<<DDA1);        // GPS CS Low
40
  for(i=0; i<10; i++)
41
  {
42
    spi_send_byte(payload_ID152[i]);
43
  }
44
  DDRA &= ~(1<<DDA1);        // GPS CS High
45
}

aber leider kommt trotzdem nichts auf MISO Leitung bei mir an.
OP #2027033
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?
Gast #2027057
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
OP #2027149
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.
Gast #2027205
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
OP #2037717
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
Angehängte Dateien:
Gast #2037779
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
#2037836
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren