ATmega324P SPI Slave - seltsames Verhalten

OP Persönliche Seite #1989066
Lesenswert?

Hallo zusammen und frohe Weihnachten,

ich habe ein Problem, das mir keine Ruhe lässt.
Es geht um ein System mit ATmega328 @16MHz als SPI Master, einem Wiznet 
W5100 Ethernet Chip @25MHz als Slave über Pegelwandler (und 
Deselektierungsschaltung nach Application Note, damit der SPI als 
multi-Slave laufen kann) und einem ATmega324P @14,7456MHz als SPI Slave.

Dementsprechend 2 Chipselect-Leitungen vom Master zu den beiden Slaves.

Damit der SPI für den AVR-Slave nicht zu schnell ist, läuft er am Master 
auf Clock/8, wenn er mit dem AVR kommuniziert. Sobald der Chipselect 
davon weg ist, läuft er für den W5100 auf Clock/4, danach wird wieder 
zurückgeschaltet.

Jetzt das Problem:

Wenn der W5100 dem Master antwortet, kommt nur Unsinn an.
Wenn ich am AVR-Slave das SPI-Modul nicht einschalte, gehts.
Chip-Selects sind ok.
Wenn ich den Takt am SPI für den W5100 nicht auf Clock/4, sondern auf 
Clock/8 stelle, gehts auch.
Und allgemein tritt der Fehler nicht immer, jedoch gut reproduzierbar 
auf. Es scheint mir eine gewisse Abhängigkeit zu dem gerade gesendeten 
Datenwort zu bestehen.

Kann es also sein, dass der AVR als Slave trotzdem er deselektiert ist, 
anfängt auf den Bus zu senden, wenn dort zu hohe Frequenzen auftreten?

Ich weiß, dass die Frequenz kleiner Clock/4 sein soll, damit die 
Kommunikation funktioniert. Aber muss das auch so sein, wenn er gerade 
nicht selektiert ist?
Das würde ja bedeuten, dass auch alle anderen Busteilnehmer so langsam 
gefahren werden müssen!

Ist das Problem bekannt?

Grüße,

Peter
OP Persönliche Seite #1989212
Lesenswert?

Also, wenn du damit meinst, dass etwas in den CS vom AVR-Slave 
eingekoppelt wird, das ist nicht der Fall, der ist während der Zugriffe 
auf den W5100 ganz stabil auf high.

Es wird wohl darauf rauslaufen, dass ich den Slave-Teil mit dem AVR in 
einer Testschaltung aufbaue, in der ich gezielt verschiedene Frequenzen 
an den einzelnen Leitungen anlegen kann.
OP Persönliche Seite #1989648
Lesenswert?

Geschätzte 4 cm. Die Karte ist professionell gefertigt, die Leiterbahnen 
haben Abstand mit doppelseitigen Masseflächen dazwischen.

Aber wie gesagt, die Signalflanken sind sauber wie aus dem Lehrbuch. Was 
mich wundet, ist, dass das Problem auftritt, sobald die Taktfrequenz am 
SPI im unselektierten Zustand die Frequenz überschreitet, die man im 
selektierten Fall fahren dürfte.

Ich werde testweise mal die Quarzfrequenz von dem Slave-AVR hochsetzen, 
wenn das Problem dann weg ist, liegt es an der zu hohen Frequenz am SPI.
Dafür muss ich allerdings erst Quarze bestellen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren