Guten Morgen, Wir haben ein sehr kniffliges Problem. Wir haben einen ATtiny44A, der mit einem ATMega644PA über SPI kommuniziert. Der ATMega sendet dem Tiny Befehle, die 2Byte lang sind und der Tiny antwortet darauf. Das Problem ist, unser SPI Programm für den ATtiny44A funktioniert nicht ganz. Derzeit haben wir ein Array, das die Daten des Attiny beinhaltet und bei dem WRITE Befehl, schreiben wir das nächste Byte auf den entsprechenden Index im Array. Beim READ Befehl lesen wir das Byte wieder aus dem Array und ins USIDR. Wir haben mit einem Logik Analyser die Signale gemessen, der ATMega sendet die richtigen sequenzen, aber der Tiny antwortet beim READ nicht mit den richtigen Daten. Bitte um Hilfe! Beide Programme sind im Anhang.
Nur überflogen - stimmt das?: > //extract write bit > write = (temp & 0x7F); Ich hätte eher & (1 << W_R_n) erwartet.
Hoppla, hab eine falsche Datei hochgeladen. Weiß nicht wie das passieren konnte. Die richtige Version ist jetzt im Anhang. In der echten Version ist es & (1 << W_R_n).
Also, ich weiß nicht ... - die "echte Version" ist nun plötzlich ohne "Author", aber immer noch fünf Tage alt - ein Softwareproblem löst man, indem man es auf den Kern reduziert; hier ist vieles hinzugekommen, was nichts damit zu tun hat. - beim erneuten Überfliegen fällt mir auf, dass die reg_address das CMD_BIT beinhaltet - mag ja stimmen, merkwürdig ist es trotzdem Aber es wird sich sicher noch jemand finden, der sich näher mit der Sache befasst.
Die echte Version ist halt die, die funktionieren sollte, die andere ist anscheinend eine sehr alte Version. Das CMD_BIT ist noch nicht mal richtig implementiert... Ich bin nur verwirrt, da der Attiny ja etwas zurückschickt, nur nicht das was er sollte
> Das CMD_BIT ist noch nicht mal richtig implementiert... Eben; in der "sehr alten" Version, die übrigens gerade mal zwei Tage älter ist, war es noch nicht vorhanden - ich löse ein Problem doch nicht dadurch, dass ich neue Ansätze draufpacke; gleiches gilt für WD, ADC, EEPROM und den Rattenschwanz an Definitionen. > Ich bin nur verwirrt, da der Attiny ja etwas zurückschickt ... Das ist eine immanente Eigenschaft von SPI: der Master liest beim Takten immer etwas ein, auch wenn es Rauschen sein sollte. Der Weg muss also umgekehrt sein, "zurück zu den Anfängen": eine einfache Kommunikation zwischen Master und Slave, damit wäre hier auch eher Hilfe zu erwarten, falls diese dann überhaupt noch nötig ist. Darauf aufbauend eine Funktionalität nach der anderen in Betrieb nehmen. Und weil jetzt Freitagnachmittag ist, noch ein Zitat von Reinhard Mey, nehmen Sie es mir bitte nicht übel, es ist wirklich nicht böse gemeint, passt aber so gut: "Ich übe den Fortschritt und das nicht faul, nehme zwei Schritt auf einmal und fall aufs Maul."
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.