Forum: Mikrocontroller und Digitale Elektronik SPI Attiny44


von Alex D. (daum)


Angehängte Dateien:

Lesenswert?

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.

von S. Landolt (Gast)


Lesenswert?

Nur überflogen - stimmt das?:

> //extract write bit
> write = (temp & 0x7F);

Ich hätte eher
& (1 << W_R_n)
erwartet.

von Alex D. (daum)


Angehängte Dateien:

Lesenswert?

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).

von S. Landolt (Gast)


Lesenswert?

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.

von Alex D. (daum)


Lesenswert?

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

von S. Landolt (Gast)


Lesenswert?

> 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
Noch kein Account? Hier anmelden.