Hallo, hab schon eine mehrere Informationen hier im Forum und an anderen Stellen gewälzt, aber Richtig geholfen hats leider nicht. Ich versuche einen SDRAM vom Typ IS42S16400F an eine TC1130 anzubinden. Der µC hat einen integrierten SDRAM- Controller, also dacht ich „alles kein Problem Timing und Adressierung einstellen und fertig“. So leicht war’s dann noch nicht Im Datenblatt des SDRAM sind verschiedene Timingeigenschaften festgelegt die ich folglich über das Setzen entsprechender Parameter in den TC1130 Registern einhalten muss. Ich habe mir die Zykluszeiten für einen 100MHz Takt ausgerechnet und eingetragen. Zuerst mal zum prinzipiellem Verständnis: Ich habe das so verstanden, dass wenn der Takt am SDRAM unter den 100MHz liegt, der Datenzugriff immer noch funktioniert da die Timing-Werte im Datenblatt ja als Minimalwerte angegeben sind. -> ist meine Annahme Richtig? Jetzt zum eigentlichen Problem: Über die JATAG- Schnittstelle wird ein Code zum Testen in den SDRAM geschrieben und soll von dort ausgeführt. Ich habe mir den Speicherinhalt nach Übertragung des Codes mit dem Debugger angeschaut -> hier sind keine Fehler zuerkennen. Nach dem Startup, der Initialisierung der Interrupt- Tabelle usw. wird der CPU. Takt von 45MHz auf 100MHz umgestellt Bis zu dieser Stelle läuft der Test-Code fehlerfrei. Kurz darauf kommt es allerdings zu einem Trap bzw. Absturz. Ohne die Erhöhung der Taktfrequenz läuft der Code einige Sekunden aber auch dann kommt es zu diesem Fehler. Beim vorherigem test des Codes auf dem Entwicklungsbourd sind keine Fehler aufgetreten, allerdings ist hier auch anderer SDRAM angebunden. Meine Mutmaßung ist das es zu einem Lesefehler des Codes kommt, ggf. durch falsch eingestelltes Timings. Ehrlich gesagt weis ich nicht mehr weiter, da ich dachte alles korrekt eingestellt zu haben. Wenn ihr Tipps habt die mir weiterhelfen währ ich sehr froh! Auch Prinzipielles zur Anbindung von SDRAM kann helfen. Steffen
Schreib doch mal ein Testprogramm das permanent Daten ins SDRAM schreibt und liest (RAMtest) das Programm sollte dann allerdings nicht aus dem SDRAM selbst ausgeführt werden. Irgendwie hört sich dein Problem nach falschen refresh timings an...
Vielleicht wird auch die Verbindung zwischen µC und SDRAM gestört. Zeig doch mal Dein Layout, zumindest einen Ausschnitt mit µC und SDRAM drauf.
Unterschiedliche SDRAMs brauchen evtl unterschiedliche Startup-Sequenzen. Mal die Datenblätter verglichen? Manche Zeiten werden in den Datenblättern auch in ns angegben, die rechnen sich bei verschiedenen Frequenzen natürlich in eine unterschiedliche Anzahl von Zyklen um. Hast Du einen Logic-Analyzer zur Verfügung?
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.