Forum: Mikrocontroller und Digitale Elektronik SPI ein paar Fragen


von SPI (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

im Anhang seht ihr wie ich den MCU (AVR 328P) mit den beiden ICs 
verbunden habe. Die beiden CS Pins habe ich gemessen. Funktionieren 
perfekt. An MISO und MOSI habe ich gemessen und gesehen, dass 1 statt 4 
Byte über die Leitung gehen. Obwohl der CS Pin noch auf Low ist. CS1 und 
CS2 sind auch nie gleichzeitig auf Low.

Ich hab das Problem, dass ich nur jeweils ein IC zum laufen bekomme. 
Wenn ich beide dran hänge, funktioniert nichts mehr. Daher habe ich ein 
paar Fragen:

1) Brauche ich PullUp Widerstande? Wenn ja, wo und was nimmt man da? 
Reicht 1k?

2) Ich habe den CS Pin vom ARV extra nicht angeschlossen, weil ich 
dachte es könnte damit zusammen hängen. Oder kann man den ruhig fürs 
erste Gerät verwenden? Den CS Pin habe ich auf Eingang

SPI init:
1
void spi_init_master (void)
2
{
3
  DDRB = (1<<5)|(1<<2)|(1<<3)|(1<<0);
4
  SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR0)|(0<<CPOL)|(0<<CPHA);
5
    
6
}

von Mathias O. (m-obi)


Lesenswert?

Den CS Pin kannst du ruhig nehmen. Der wird nur als CS gebraucht, wenn 
dein Mega als Slave fungiert. MISO ist zu MISO bzw MISO zu SO und MOSI 
zu MOSI bzw zu SI?

von Michl (Gast)


Lesenswert?

Ein Pull-Up Wiederstand ist normalerweise 10k (min. 5k)

von (prx) A. K. (prx)


Lesenswert?

SPI schrieb:
> 1) Brauche ich PullUp Widerstande?

Sind nur an den beiden CS sinnvoll, um Kollisionen im Reset zu 
vermeiden.

> Wenn ja, wo und was nimmt man da?

10K aufwärts.

Manche SPI Devices haben intern bereits Pullups an CS.

von Karl H. (kbuchegg)


Lesenswert?

SPI schrieb:

> Den CS Pin habe ich auf Eingang

Schalte ihn auf Ausgang!
Der Pegel am CS beeinflusst das Verhalten des SPI Master Modes im AVR, 
wenn der auf Eingang ist.

von Leonard H. (Gast)


Lesenswert?

Schauen das die Bausteine die du ansteuern willst als Slave geschaltet 
sind. Ansonsten jeweils mal an MISO Wiederstände.
Bei mir hat die SPI Kommunikation bis jetzt immer funktioniert!
leonard

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.