Forum: Compiler & IDEs 8-Bit SRAM an AVR32


von Timo M. (maudes)


Lesenswert?

Hallo Zusammen,

ich habe folgendes Problem beim Versuch, Daten zwischen einem 8-Bit SRAM 
und dem AVR32UC3A0 zu handeln (Entwicklungsumgebung ist Atmel Studio 6, 
Sprache C/C++):
Die immer 1 Byte großen Nutzdaten schreibe ich mit einem uint8_t Pointer 
in den SRAM, beim Auslesen klappt alles super, aber beim Schreiben 
werden immer 4 Byte mit dem gleichen Inhalt in den SRAM geschrieben.

Analog zu dem Beispiel im Atmel Studio habe ich die smc.h angepasst, 
also Data Bus With = 8, CS[0] ist in Software und Hardware aktiv.

Hat da jemand ne Idee, was ich falsch mache ?

von Pako (Gast)


Lesenswert?

Ich kenne den AVR32 nicht, aber ich vermute mal folgendes:

Der externe Datenbus ist 32Bit breit.
Wenn du 32Bit-RAM drannhängen hättest, dann würde die
- Adresse 0x00000000 das Byte 0 des 32Bit-Wortes 0 adressieren,
- Adresse 0x00000001 das Byte 1 des 32Bit-Wortes 0 adressieren,
- Adresse 0x00000002 das Byte 2 des 32Bit-Wortes 0 adressieren,
- Adresse 0x00000003 das Byte 3 des 32Bit-Wortes 0 adressieren,
- Adresse 0x00000004 das Byte 0 des 32Bit-Wortes 1 adressieren,
- Adresse 0x00000005 das Byte 1 des 32Bit-Wortes 1 adressieren,
usw.

D.h. der Adressausgang A0 am Prozessor ändert sich nur alle 4 Bytes.
Dein 8Bit-RAM hängt aber wahrscheinlich mit seinem Eingang A0 an diesem 
Ausgang A0. D.h. Dein RAM sieht nur dann eine neue Adresse, wenn sich A0 
ändert und das passiert nur alle 4 Bytes.

PS: keine Garantie, daß das stimmt, war einfach mal vermutet.

von Joachim D. (Firma: JDCC) (scheppertreiber)


Lesenswert?

Schaltbild ?

von Timo M. (maudes)


Lesenswert?

Hallo Pako,

super das war's.

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