Hallo, ich habe mich am Wochenende mal ein bischen mit dem SPI des Atmega8 beschäftigt. Herausgekommen ist ein Programm, welches im Wechsel eine 0 bzw. eine 1 an einen zweiten Controller sendet, welcher je nach Zeichen seine LEDs an bzw. aus schaltet. Für Kommentare zum Code bzw. Optimierungen wäre ich dankbar. Schönen Sonntag noch, Alex
Hallo Alex, Hallo Welt ;-) Ich versuche seit einiger Zeit, eine SPI Kommunikation zwischen zwei AVRs zum Laufen zu kriegen. Habe schon viele Versuche gemacht, immer wieder von vorne angefangen, aber es hat nie geklappt. Jetzt habe ich es mit deinem Code von oben versucht und auch das klappt nicht. Die Verbindungen MISO-MISO , MOSI-MOSI , SCK-SCK und PB0-SS hab ich gemacht und ich hab sogar dran gedacht, beide Controller auf die selbe Masse zu legen. Aber es haut einfach nicht hin. Is da ein Trick dabei? Hat jemand diesen Code zum Laufen gebracht? Wenn ja wie? Liebe Grüße Palindrome
Du musst natürlich die Massen der beiden Controller verbinden!!! Außerdem musst du des einem MISO an des anderem MOSI und umgekehrt anschließen! Gruß, Dominik
Ja, ich sag ja - die Massen sind verbunden (das hab ich neulich in nem anderen Projekt schmerzlich festgestellt, dass man das nicht vergessen sollte...). MOSI zu MISO? Da sagt mein Datenblatt aber was anderes. MOSI heißt doch Master Out Slave In - und das dann mit MISO, also Master In Slave Out zu verbinden macht wenig Sinn, oder? Bist du da sicher? Okay, ich probier ja alles, mal sehen was passiert....
So, nee, also das wars auch nicht. MOSI und MISO getauscht, aber das Verhalten is das gleiche. Nebenbei - ich verwende zwei 90S8515 - haben die da ne Spezialität, die nicht im Datenblatt steht? Die Programme laufen beide, habe zur Kontrolle auf PORTD jeweils LEDs am Blinken. Beim Master blinken sie ne halbe Sekunde und dann bleiben sie stehen - der Timer Interrupt legt also los, aber dann passiert nüscht mehr - und zwar nie wieder, bis man reset drückt. Kann bitte irgendjemand den Code von oben verifizieren? Hat der von sich aus nen Fehler oder liegts an meiner Hardware? verwirrt
Ich schon wieder, ja. Kaum zu glauben aber wahr - es geht!!! Manchmal steht man eben auf dem Schlauch. Habe beim Master den PB4, also SS vom Master extern auf VCC gezogen und siehe da - es läuft... Trotzdem danke für die Vorschläge ;-)
Tatsächlich, hatte da ne falsche Info bezüglich MISO und MOSI. Hier nochmal die App-Note von Atmel: http://atmel.com/dyn/resources/prod_documents/doc2585.pdf Gruß, Dominik
hi, ich habe gerade dieses SPI Master mode sample angschaut: http://www.atmel.com/dyn/resources/prod_documents/AVR151.zip wo weiß SPI auf welchen PIN es den SCK Clock ausgeben soll? die sagen ja nur wo portb ausgang sein sollen! wo wird das chip select auf 0 gesetzt vor dem senden und auf high nach dem senden? lg
danke für den tipp mit VCC... damit geht es bei mir auch irgendwie... hab sicherheitshalber mal nen widerstand 1k dazwischen gehaun.. toll, hab mir gerade stunden nen wolf gesucht...
Michael Sessler schrieb: > Habe beim Master den PB4, also SS vom Master extern auf VCC gezogen und > siehe da - es läuft... Man muss das Datenblatt auch richtig lesen! Beim Master-SPI muss /SS als Ausgang konfiguriert sein, sonst schaltet das SPI auf Slave um, sobald /SS low wird. Das ist bei allen AVR so, nicht nur beim 8515.
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.