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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.