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?
Trägt zwar nichts zur Klärung deiner Frage bei (ob's richtig verdrahtet ist, kannst nur Du herausfinden): Wieso machst Du bei 32 k da unten herum und nicht ab $8000? MfG Gerd
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.
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...
Hi Mal ne blöde Frage. Wie haste es denn angeschlossen? Port A bringt Low-Adressen/Daten. ALE sagt was gerade drann ist. 256 Byt klingt nach fehlender Low-Adresse, ist aber nur ne Vermutung. Externes SRam sowiso erst ab 0x260 sonst sind die 1. 0x25f Byte intern also ab 0x8000 wäre OK Überprüfe das doch mal. Gruss Uwe
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
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.