Hallo, um mich mit Kommunikationsmöglichkeiten zwischen Sensoren und µC einzuarbeiten habe ich versucht ein kleines Programm zu schreiben welches alle paar Sekunden einen Wert im ATMEGA16 verändert diesen über SPI an den ATMEGA328 sendet und dort daraufhin LEDs an- bzw ausschaltet. Meine Kernfrage ist nun folgende: Ich gebe mit dem Master (in meinem Fall der ATMEGA16 mit externem Oszi 8MHz) meine Taktfrquenz vor (Prescale = 16 -> 500kHz). Nun habe ich versucht die Standardfrequenz vom ATMEGA328P herauszufinden und glaube gefunden zu haben, dass diese 128kHz ist: (http://atmega32-avr.com/Download/atmega328_datasheet.pdf - Seite 34) Erst einmal bin ich mir nicht sicher ob dies zutrifft, da im "normalen" Datenblatt nichts zur Taktrate steht, zumindest konnte ich es nicht finden. (http://www.atmel.com/Images/8271s.pdf) und zum anderen kann so vermutlich keine Kommunikation stattfinden, da die Taktrate vom ATMEGA328P ja kleiner ist als 500kHz. Muss der SLAVE eine Mindestanforderung der Taktrateerfüllen oder reicht theoretisch 500kHz als Taktrate für den Slave, wenn der Master mit 500kHz sendet? Sollte jemand sogar noch ein paar Minuten mehr investieren und Feedback zu meinem Code geben können, wäre ich überglücklich :)
Florian K. schrieb: > Nun habe ich versucht die Standardfrequenz vom ATMEGA328P herauszufinden > und glaube gefunden zu haben, dass diese 128kHz ist: > (http://atmega32-avr.com/Download/atmega328_datasheet.pdf - Seite 34) ? Alle AVR aus der Mega bzw. Tiny Serie werden so ausgeliefert, dass sie mit 1Mhz laufen. Immer? Immer! Siehe Abschnitt 6.2.1 Default Clock Source > meine Taktfrquenz vor (Prescale = 16 -> 500kHz). Du musst ja nicht gleich Full Speed fahren.
Oh ok vielen Dank für den Hinweis! Jetzt schäme ich mich ein wenig für die Frage. Aber müsste ich diese Information nicht dennoch im Datenblatt finden?
Florian K. schrieb: > Oh ok vielen Dank für den Hinweis! Jetzt schäme ich mich ein wenig für > die Frage. > Aber müsste ich diese Information nicht dennoch im Datenblatt finden? Siehe Abschnitt 6.2.1 Default Clock Source
OK, ich sollte definitv mehr Zeit im Datenblatt lesen beanschlagen :/ Die Frage zur Kommunikation interessiert mich dennoch: Wenn ich am Master auf 1MHz Übertragung schalte und der Slave ebenfalls mit 1MHz Taktrate läuft: Führt das zu Problemen, oder ist das absolut in Ordnung?
Florian K. schrieb: > Führt das zu Problemen, oder ist das absolut in > Ordnung? Und wieder stehst im Datenblatt. Diemsl allerdings nicht ganz so offensichtlich. In der Beschreibung vom Double Speed Flag findet sich der Satz
1 | When the SPI is configured as Slave, the SPI is only guaranteed to work |
2 | at fosc/4 or lower. |
wobei mit fosc die Prozessor-Taktfrequenz gemeint ist. Aber warum musst du da mit Full-Speed rüberblasen? Gehs halt erst mal langsamer an. Denn die maximale SPI Frequenz ist ja nur 1 Sache. Der Slave muss ja auch etwas mit den empfangenen Daten machen.
Vielen Vielen Dank, vor allem für die netten Hinweise trotz meiner vermeidbaren Fragen (bei ausführlicherer Betrachtung der Datenblätter)!!! Es ging mir eigentlich erst einmal um die Theorie und dann wolte ich verschiedene Geschwindigkeiten der Übertragung testen und schliesslich schauen ab welchen Frequenzen Probleme auftreten usw... Also wie gesagt vielen Dank!
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.