Forum: Mikrocontroller und Digitale Elektronik ATmega328 SPI Problem


von Andi (Gast)


Lesenswert?

Hallo,

ich will mit einem ATmega328P eine SD-Karte auslesen. Das hab ich in 
einem anderen Projekt auch schon mal geschafft ;) Und die SPI 
Schnittstelle bediene ich auch nicht zum ersten mal aber ich dreh 
langsam am Rad.

Ich arbeite mit AVR Studio4 und WinAVR-20100110 ich kann die Ausgänge 
mit PORTx ohne Probleme setzen und sehe das auch schön am Oszi das ganze 
wurde mit 2 Controllern und auf 2 verschiedenen Platinen getestet. Aber 
SPI(weder SCK noch MOSI) macht keinen Mux.
Hier mein Code:
1
#include <avr/io.h>
2
3
void SPI_MasterInit(void)
4
{
5
  /* Set MOSI and SCK output, all others input */
6
  DDRB = (1<<PB3)|(1<<PB5);
7
  /* Enable SPI, Master, set clock rate fck/16 */
8
  SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR0);
9
}
10
void SPI_MasterTransmit(char cData)
11
{
12
  /* Start transmission */
13
  SPDR = cData;
14
  /* Wait for transmission complete */
15
  while(!(SPSR & (1<<SPIF)));
16
}
17
18
void main(void)
19
{
20
  SPI_MasterInit();
21
  while(1)
22
  {
23
    SPI_MasterTransmit(0xAA);
24
  }
25
}

von holger (Gast)


Lesenswert?

Setz den SS Pin auf Ausgang.

von Andi (Gast)


Lesenswert?

Der Tipp ist Gold wert :)

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.