Hallo, ich weiß einige werden dieses Projekt sicherlich für Schwachsinn halten, aber ich poste es trotzdem mal. Ich habe vor, in einen µC eine etwas erweiterte Funktionsweise eines E bzw EEproms zu implementieren. Die Daten dazu sollen über einen Computer per UART in einen Arbeitsspeicher geladen werden und evtl auch geändert werden können vom Computer aus(steht ganz unten auf der Featureliste, die Grundfunktionalitäten sind erstmal wichtiger). Die Zugriffszeit des emulierten Eproms sollte nicht höher als 100ns maximal 120ns sein. Was würdet ihr für einen µC zur Erfüllung dieser Aufgabe nehmen? Ein AVR wäre denke ich zu langsam für diese Aufgabe. Also würde ich es mit einem ARM versuchen. Ich bin immer offen für Anregungen, Vorschläge und Kritiken. Gruß Chris
Ein SRAM, das anstelle des (E)EPROMs verwendet wird und vom µC gefüllt wird, das kann auch ein AVR oder ein noch viel langsamerer µC ansteuern. Was nicht, auch nicht mit einem ARM möglicht ist, ist die direkte Simulation des (E)EPROMs mit den Portleitungen des µC - der müsste in den von Dir erwähnten 100ns nämlich auf Lese- und Schreibzugriffe reagieren können, die richtigen Daten irgendwoanders herholen resp. dorthin packen ... Das bedeutet, daß der betreffende µC in diesen 100ns etliche CPU-Zyklen und etliche I/O-Zyklen durchführen müsste - keine praktikable Lösung. Nimm ein SRAM, kopple dessen Adress- und Datenbus über Tristate-Bustreiber ('245 o.ä.) an µC und das Zielsystem, und denke Dir eine sinnvolle Verschaltung von /CS, /OE und /WR aus. Soll der µC das SRAM beschreiben, werden die Bustreiber so geschaltet, daß der µC mit dem RAM verbunden, aber das Zielsystem getrennt ist. Geschwindigkeitsmäßig sollte ein normales 70ns-SRAM genügen, die Differenz zu den geforderten 100ns füllt selbst ein LS245 nicht aus. Notfalls nimmst Du halt 'ne schnellere Logikreihe, wie z.B. AC. Der µC selbst hat beim Beschreiben des SRAMs ja alle Zeit der Welt (das Zielsystem kann halt in der Zeit nicht darauf zugreifen) und kann daher praktisch jeder denkbare Typ sein.
Ich denke auch, wie mein vorredner schon sagte, ein Eprom direkt mit dem mc zu emulieren ist der falsche Denkansatz. Das würde spezielle Hardware brauchen, weil das Ram, was die Daten für den emulierenden MC mindestens faktor 2-6 schneller sein müsste, als das emulierte Eprom. Das ist vermutlich den Aufwand nicht wert.
Stimmt... der Lösungsansatz ist weitaus schöner und eleganter finde ich. Vor allem um einiges leichter zu implementieren. Danke für den Vorschlag. Ich werde mich mal drann setzen, falls noch jemand andere Vorschläge oder Ideen dazu hat, ich bin wie gesagt für alles offen. Gruß Chris
Das ganze nennt sich Eprom Simulator oder Eprom Emulator. Vor 20 Jahren habe ich das entwickelt, gebaut und vertrieben. Letzlich musst du ein RAM aufbauen über das du sowohl vom uC wie auch vom Zielsystem zugreifen kannst. Das kann man mit Multiplexer bauen oder auch einfachen Transievern wie einem 74245. der uC schreibt während Downlodaphase in das Ram und erzeugt gleich noch ein Reset signal für das Zielsystem. Danach schaltet er seine Treiber ab und gibt den Zugriff vom Zielsystem frei. Der selbst erzeugte Reset wird ausgelöst und das Zielsystem kann loslaufen. Die zusätzlichen Verzögerungen durch die Mux liegen bei ca 20ns. Die beste lösung ist eine sehr kurze Verbindung über steckkontakte ins zielsystem. Hier kein Flachbandkabel o.ä verwenden das bereitet Probleme. Später habe ich dann einen Doppelsimulator gebaut der immer abwechselnd in Bank 1 und dann Bank 2 läd. Durch eine Umschaltsignal wird für das Zielsystem unsichtbar bei der steigenden Flanke des CS Signals zwischen den beiden Bänken umgeschaltet. Dieses System wurde auf Motorenprüfständen verwendet um die Kennfelder der Motorelektronik bei laufendem Motor zu ändern. Vor 20 Jahren gab es keine EEPROMS, seither macht ein Eprom Simulator keinen Sinn mehr. Aussdem kann man das bei Ahlers für wenige Euros kaufen. Trotzdem viel Spass beim bauen.
Gibt es SRAMS/DRAMS mit 20 Adressleitungen und einer Speicherkapazität von min 32Mbit? Die die ich bisher gefunden habe haben alle weitaus weniger Adressleitungen(10 bis 12). Das heißt ich müsste einen Adressdekoder verwenden.
Nur zur Info: EEProms gibts seit 1983; die technik, die dafür verwandt wurde (floating Gate NMOS) stammt aus einer Erfindung aus den frühen 70ern (egentlich eher ende 60'er aber die entwicklung dauerte relativ lange). Consumermarktreife (stabile, niedrige Preise) erreichten EEProms "relativ" früh 4-5 Jahre nach Erscheinung.
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.