8-Bit SRAM an AVR32

OP #2759219
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 ?
Gast #2760048
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren