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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.