90S8515 und 62256 SRAM

Gast #15143
Lesenswert?

Hallo,

ich habe an den 90S8515 32k SRAM angeschlossen. Kann mir bitte jemand 
erklären wieso ich erst ab der Adresse 0x420 etwas speichern kann? Und 
die nächte freie Adresse bei 0x520 liegt? (also immer +256 byte 
Schritte). Nehme ich z.b. 0x430 stimmt der speicherinhalt nicht mit den 
daten überein.

Fehler in der Verdratung oder muss das so sein.

Kann mir jemand helfen?
Gast #15145
Lesenswert?

Woher weißt Du, ob das das nächste freie Byte ist? Wie die Bytes im 
Speicher verteilt sind, ist ja eigentlich ziemlich egal. Hauptsache, die 
speichernden und aufrufenden Adressen sind identisch. Wenn Du also 
irgendwelche Adreßleitungen vertauscht hast, merkst Du das nicht einmal; 
nur wenn Du welche nicht angeschlossen hast.
Gast #15146
Lesenswert?

Hallo zusammen,

@ Gerd
wie meinst Du das ab $8000... bei 32K habe ich doch nur von $0 bis $8000 
Platz?! oder habe ich da was falsch verstanden?

@ant
ja, vollkommen klar... nur das funktioniert so nicht...
nehme ich z.B. Adresse $200 und speichere dort 512 byte, läuft das 
programm entweder gar nicht, oder ist in so einer Art endlosschleife 
gefangen (z.g. gibt printf nur müll aus)...
ab $280 läuft zwar das programm, der speicherinhalt stimmt aber an ein 
paar stellen mit den Daten nicht überein.
ab $420 und in 256 byte schritten funktioniert alles perfekt...
Gast #15148
Lesenswert?

Ich meine das so: der 8515 kann extern 64 k addressieren (A0..A15), 
abzüglich der Adressen unterhalb $0060 und seiner 512 Byte internes SRAM 
oberhalb (also bis $025F). Also kannst Du doch das externe SRAM auf die 
obere 32k-Seite legen, also ab $8000 bis $FFFF. Oder anders: Wenn A15 
high ist, geht das auf das externe SRAM. Dann hast Du das volle SRAM zur 
Verfügung.

Noch ein paar Ideen, wo es liegen könnte:
- Hast Du im MCUCR korrekt externes SRAM enabled?
- Ist das SRAM schnell genug? (Genaues Timing je nach XTAL, bei 10 MHz 
ein
  muss es schon ein recht schnelles sein. Mach doch mal das
  WAIT-State-Bit im MCUCR an!)
- Die Abstürze weisen darauf hin, dass Du beim Schreiben im internen 
Stack
  herumwurstelst.Wo genau hast Du den Stack hingelegt (RAMEND oder ans
  Ende des externen SRAM?).

MfG
Gerd

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