Forum: Mikrocontroller und Digitale Elektronik SCK-Pin des ATMega16 bleibt stumm


von Maxim (maxim) Benutzerseite


Angehängte Dateien:

Lesenswert?

Nach dem Reset geht MOSI auf high und SCK rührt sich nicht, bleibt also 
auf low. Auch im Debugger in AVR Studio blinkt nur PINB7, nicht aber 
PORTB7. Das DDR ist aber richtig gesetzt (denke ich zumindest). Im 
Datenblatt habe ich auch nichts gefunden, was mir helfen könnte.

Vielleicht etwas mit den Fuse-Bits?

von Maxim (maxim) Benutzerseite


Angehängte Dateien:

Lesenswert?

Im Anhang die Fuse-Bits.

von Simon K. (simon) Benutzerseite


Lesenswert?

Ist der SS Pin auf Ausgang gestellt?

von Maxim (maxim) Benutzerseite


Lesenswert?

Simon K. wrote:
> Ist der SS Pin auf Ausgang gestellt?

Denke schon:
LDI  TEMP, 
(1<<DDB5)|(1<<DDB7)|(1<<DDB4)|(1<<SLAVE_1)|(1<<SLAVE_2)|(1<<SLAVE_3)
OUT  DDRB, TEMP

DDB4 ist der SS-Pin.

von Michael U. (amiga)


Lesenswert?

Hallo,

//Konfiguriere SPI
LDI  TEMP, (1<<SPE)|(1<<MSTR)|(1<<SPR0)|(1<<SPR1)
OUT  SPCR, TEMP
SBI  SPSR, SPIF

SPIF ist ein ReadOnly-Bit.
Gelöscht wird es beim ersten Lesezugriff mit gesetzem SPIF (Mega16 
Datenblatt Seite 140).

Ändere das mal in
IN     TEMP,SPSR

sonst fällt mir erstmal nichts auf.

Gruß aus Berlin
Michael

von Maxim (maxim) Benutzerseite


Lesenswert?

Ich muss SPIF zu Beginn des Programms setzen, da im späteren Verlauf das 
Senden erst möglich ist, wenn SPIF gesetzt und somit die vorhergehende 
Übertragung komplett ist.

Aber ich werde schauen, ob 's daran liegt, danke schonmal.

ps: Kann es sein, dass der Debugger das SPIF-Bit setzt, obwohl es read 
only ist? Missachtet er solche Details? Das würde das Problem nämlich 
erklären.

von Maxim (maxim) Benutzerseite


Lesenswert?

Tatsächlich, das SPIF-Bit wurde durch

SBI SPSR, SPIF

nur im Debugger gesetzt, nicht aber im uC. Ich habe die Zeile durch

OUT SPDR, DATA_TO_SEND

ersetzt. Das setzt den SPIF-Flag indirekt, indem ein "sinnloses" Byte 
ohne Empfänger in die Welt verschickt wird. Das Programm läuft jetzt 
auch auf der Hardware.

von Michael U. (amiga)


Lesenswert?

Hallo,

hatte ich eben schreiben wollen, dann Dein Posting gesehen und meins 
wieder gelöscht... :-)

Gruß aus Berlin

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.