Forum: Mikrocontroller und Digitale Elektronik SPI über USI am Attiny 2313


von John (Gast)


Lesenswert?

Hallo,

ich versuche mit einem Attiny2313 SPI als Master zu verwenden.
Am Clock kommt ein sauberes Signal, aber ich bekomme nur low an MOSI.
Hat jemand eine Idee was am Code nicht stimmt?

Der Code ist eigentlich aus dem Datenblatt übernommen, oder hab ich was 
vergessen?
1
void init(void){
2
  //Slave Select
3
  DDRB |= (1 << 4);
4
   //MOSI
5
  DDRB |= (1 << 5);
6
  //MISO
7
  DDRB &= ~(1 << 6);
8
  //SCK
9
  DDRB |= (1 << 7);
10
 
11
}
12
13
uint8_t send(uint8_t out) { 
14
  USIDR=out;
15
  USISR=(1<<USIOIF);
16
  do
17
    {
18
    USICR=  (1<<USIWM0)|(1<<USICS1)|(1<<USICLK)|(1<<USITC);
19
    }
20
  while (!(USISR & (1<<USIOIF)));
21
  return USIDR;
22
}


Danke

von John (Gast)


Lesenswert?

Verzeihung, ich meine nicht MOSI nach der Pinbelegung, sonder DO, die 
sind bei den Attinys ja umgekehrt. Also am DO kommt kein Signal raus.

von John (Gast)


Lesenswert?

Oh je.... hab bei der Direction DO und DI vertauscht.... Passiert wenn 
man nach MOSI und MISO schaut...

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.