Hallo liebe Gemeinde, ich betreibe gerade zwei Atmega32, welche ueber SPI miteinander verbunden sind. Einer fungiert als Master, der andere als Slave. Initialisiert gemaess Atmel-Datenblatt. Getaktet werden die Chips ueber einen (Parallelabgriff) Quarzoszillator mit 16 MHz.Die Kommunimation erfolgt nur vom Master zum Slave. Ich habe nun das Problem, dass eine stabile Kommunikation einfach nicht zu Stande kommt. Offenbar geht ein guter Teil der Daten beim Transport verloren, resp. wird nicht ordnungsgemaess erkannt. Gesendet werden immer 2 Byte in Folge. Zur Zeit zum Test in einem Abstand von 500 ms. Wenn ich Glueck habe, so kommt jede 4. Bytedoublette auch an. Das Erkennen der Daten erfolgt aber nicht zyklisch. Der Spi-Takt entspricht einem 128tel von FCPU. Eine saubere Erkennung sollte somit eigentlich moeglich sein. Die eingehenden Bytes werden nach ausgeloestem SPI-Interrupt sofort im Slave ausgelesen und in ein kurzes Array abgelegt. Timingprobleme sollten nicht bestehen. Hat einer von Euch einen Tipp, wie dieses Problem zu loesen sein koennte? Uber den UART konnte ich eine solche Kommunikation bereits recht stabil realisieren. Dieser Weg steht aber im aktuellen Projekt nicht mehr zur Verfuegung. Mit Gruss Mike
Zwischen den zwei Bytes braucht man eine relativ lange Pause. Probier mal 1ms oder so. MfG Falk
Hallo Mike! Jetzt haben wir das Glaskugelproblem. Wir brauchen schon den Quellcode. Gruß, Lars
Ich muss Lars zustimmen, zeig mal her deinen Code, und am besten ungekürzt! Und mach auch mal ein, zwei Fotos von deinem Aufbau, vllt stimmt ja da irgendwas nicht (Kabellänge, Störeinflüsse, Wackelkontakte). Wir können nur Tips geben wenn wir auch bescheid wissen! Informier uns!
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.