Atmega8 ISP - Hilfe

Gast #3696199
Lesenswert?

Hi,

ich bastel/spiele nun seit ein paar Wochen mit einer Hand voll Atmega8
herrum und wollte nun als nächstes, mich einmal an die Kommunikation 
zweier dieser machen...

nachdem ich mich eine weile über verschiedene Arten informiert habe
wollte ich die Verbindung über die SPI Schnittstelle ausprobieren.

Dazu habe ich hier:

http://www.mikrocontroller.net/mc-project/Pages/AVR/Programme/Programme.html

recht weit unten die datei spi_bibliothek.h gefunden und daraus 
folgendes gebaut:


Master (Minimalprojekt - nur das nötigste):
1
int main(void)
2
{
3
  SPI_MasterInit();
4

5
  while(1)
6
  {
7
    SPI_MasterTransmit('A');
8
    _delay_ms(200);
9
    SPI_MasterTransmit('B');
10
    _delay_ms(200);
11
  }
12
}
und als Slave (Minimalprojekt - nur das nötigste):
1
int main(void)
2
{
3
  SPI_SlaveInit();
4

5
  char tmp ='0';
6

7
  while(1)
8
  {
9
    tmp = SPI_SlaveReceive();
10
    if(tmp == 'A'){
11
      //LED Anschalten...
12
    }
13
    if(tmp == 'B'){
14
      //LED Ausschalten...
15
    }
16
  }
17
}

zur Verkabelung:

sclk <-> sclk
mosi <-> mosi
miso <-> miso
ss   <-> ss

nur leider blieb der erfolgt ehr auf der Strecke liegen als das sich 
reaktionen am 2. Atmega bemerkbar machten...

es Kompiliert fehlerfrei und die Led's lassen sich auch sonnst 
fehlerfrei ansteuern.

Habe ich ggf. etwas vergessen / falsch gemacht ?

Gruß,
Eistee ;-)
Gast #3696245
Lesenswert?

okay,

gemeint ist natürlich SPI im betreff...

es hat sich erledigt ;-)

SS beim master sollte natürlich auf Vcc liegen und
SS beim Slave auf Gnd...

manchmal sind es doch die kleinen dinge im Leben die großes bewirken...

Gruß,
Eistee ;-)
Gast #3696299
Lesenswert?

>SS beim master sollte natürlich auf Vcc liegen und
>SS beim Slave auf Gnd...

Aus, aua, aua;)

SS beim master sollte natürlich ein Ausgang sein
und SS beim Slave ein Eingang. SS wird bei beiden verbunden.

Wenn der Master nichts sendet zieht er SS auf high.
Wenn der Master was zu senden hat zieht er vorher SS auf low.
Damit wird im Slave das SPI resettet und so die Übertragung
synchronisiert. Wenn der Master fertig ist mit senden
zieht er SS auf high.

Das wars eigentlich schon. Wenn du SS beim Slave fest auf
irgendeinen Pegel legst reicht die kleinste Störung und
der Slave empfängt nur noch Schrott.

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