Forum: Mikrocontroller und Digitale Elektronik SPI ATMega32 - Funkstille


von Jens (Gast)


Lesenswert?

Hallo Leute,
also ich möchte mit einem ATMega32 einen DAC mit SPI-Schnittstelle 
ansteuern! Ich nutze dazu mosi, sck und ein Portpin als Select des 
Prozessors.

DDRB = 0b10100011;           // I/O setup

SPCR = 0b01010000;           // SPI setup

PORTD = PORTD & 0b11111110;  // wählt DAC aus

for(;;){
       SPDR = 0x01;
       wait(20);
       PORTB = PORTB ^ 0b00000010; // LED blinken
       wait(20);
       }

Ja ich weiß schön ist das nicht programmiert, aber wenn der Slave das 
vielleicht nicht versteht, sollte man wenigstens mit dem Oszi an SCK und 
MOSI etwas wackeln sehen. Aber es passiert rein gar nichts, aber das 
Programm läuft - LED blinkt und da sich der Chip auch programmieren läßt 
ist die SPI wohl auch nicht kaputt, aber wieso gehts nicht?
Habt ihr eine Idee?
Danke
Gruß Jens

von johnny.m (Gast)


Lesenswert?

Schalte auf jeden Fall PB4 (SS\) als Ausgang oder aktiviere wenigstens 
den Pull-Up. Wenn SS\ als Eingang konfiguriert ist und er da einen 
Low-Pegel kriegt, dann schaltet das SPI-Interface in den Slave-Modus 
(gedacht ist das für einen eventuellen Multi-Master-Betrieb). Und dann 
funktioniert die Datenübertragung als Master nicht mehr. Wenn Du PB4 als 
Ausgang schaltest oder den Pull-Up aktivierst (dann darf aber nichts 
extern dranhängen!), kann nichts passieren.

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.