Atmega64 + SPI + GPS Modul

Gast #3260473
Lesenswert?

Hallo,

habe meinen SPI konfiguriert und schicke via diesem meinem GPS Modul 
Befehle im NMEA Standard.

Eigentlich kann nichts schief gehen. Leider reagiert er nicht so, wie 
ich das möchte.

Hab jetzt mal alles umgeschrieben, dadurch ist der Fehler wohl leichter 
zu finden.
1
//GGA Off ($PSRF103,00,00,00,01*24) 
2
int GGA_Off[]={0x24,0x50,0x53,0x52,0x46,0x31,0x30,0x33,0x2c,0x30,0x30,0x2c,0x30,0x30,0x2c,0x30,0x30,0x2c,0x30,0x31,0x2a,0x32,0x34,0x0d,0x0a};

Dieses Array sende ich dann mit SPI innerhalb einer for-Schleife.
1
for(int i=0; i<=24; i++)
2
{
3
SPI_Master_Transmit(GGA_Off[i]);
4
}

Wie gesagt, alles vereinfacht.

Nun zur eigentlichen Frage, ist was falsch und was kann ich besser 
machen?


Am Rande:
1
void SPI_Master_init(void)
2
{
3
  // MISO als Eingang
4
  DDRB &= ~(1 << PB3);
5
  // Setze MOSI , SCK , and SS als Ausgang
6
  DDRB |= ((1<<PB2)|(1<<PB1) | (1<<PB0)); 
7
  
8
  CLEAR_CS();
9
  _delay_ms(10);
10
  
11
  // Enable SPI, Master, set clock rate fck/128, MSB first
12
  SPCR |= ((1<<SPE)|(1<<MSTR)|(1<<SPR1)|(1<<SPR0)); 
13
  
14
  return;
15
}
#3260550
Lesenswert?

spiler schrieb:
> Ich bin mir da nicht mehr so sicher, ob es über ISP geht.
> Leider sind meine HW-UARTs schon verplant.

SPI, ISP, UART alles doch irgendwie dasselbe oder wie?

Wen interessiert schon das Interface, hauptsache mal drauf los proggen 
und das Forum um Hilfe bitten.

Wie wärs wenn du erstmal rausfindest, was das für ein GPS-Modul ist, 
welche Schnittstellen es hat und wofür die gut sind? Und dann gehts 
weiter.

gruß cyblord
Gast #3260623
Lesenswert?

Martin Wende schrieb:
> Wie heist das Modul denn?

Es ist der A2035-H von Maestro

cyblord ---- schrieb:
> SPI, ISP, UART alles doch irgendwie dasselbe oder wie?

Hab zwei weitere Bauteile die ich via ISP anspreche, deshalb will ich 
nicht auch noch nen I2C Bus haben. Die Uarts sind wie gesagt schon 
verplant.
Da der Baustein ISP hat, muss es auch damit gehen.

Der GPS Baustein hätte neben ISP, wie gesagt, noch i2c und uart.
(Firma: fritzler-avr.de) #3260676
Lesenswert?

Jetz hör doch mal auf von ISP zu reden das ding heist verdammt nochmal 
SPI!

Und im Datenblatt steht EINDEUTIG:
>1.2 Characteristics Overview
>The module’s most important characteristics are:
>Operable at 3.3V / 29mA (TBC) @ 1fix per second
>• UART interface at CMOS level

>3.3 Serial Port Settings
>The default configuration within the custom-specific GPS firmware is:
>• Serial 0 (NMEA) 4800 baud, 8 data bits, no parity, 1 stop bit, no flow control

I2C ist zwar Hardwaremäßig da aber wird wohl auch nicht genutzt.
Ist bei vielen Modulen so, dass noch SPI, USB, I2C und sonstwas als Pin 
rausgeführt wird aber die Software auf dem Modul spricht nur UART.

Als Trost hier nen guter Software UART der Timerbasiert ist und somit 
nicht viel Rechenzeit schluckt:
http://www.rn-wissen.de/index.php/Software-UART_mit_avr-gcc
(Firma: fritzler-avr.de) #3260748
Lesenswert?

Noch ganz wichtig für den SoftUART:
Als RXD brauchts unbedingt den ICP Pin eines Timers und der SoftUART 
benötigt dann natürlich auch diesen Timer.
Der TXD Pin kann frei gewählt werden, es sind auch mehrere TXD möglich 
(mit der selben Baudrate dann natürlich).

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