Liste der Anhänge anzeigen (Anzahl: 1)
20 Bit Zähler mit Logik
Hallo!
Ich hab mir gedanken gemacht, wie ich am besten ein größeres SRAM ansteuere, und das möglichst schnell.
Z. Zt. soll das SRAM ein 512kx8 großes sein, das bedeutet 19 Adressleitungen. Weil mir das an einem AVR zu viel ist, will ich das ganze
jetzt mit Binär-Zählern aufbauen.
Da ich zu Hause noch über 30 Stück des 74193 (ohne LS, HC oder so) hab mach ich das ganze mit dem. Der 74193 ist ein 4Bit Zähler.
Davon werden 5 Stück hintereinander geschaltet um auf 20 Bit zu kommen.
Auf meinem Breadboard hab ich schon 2 hintereinander geschaltet, was auch recht gut funktioniert (sind gerade nur LED's zum Testen dran).
Im Anhang ist meine Beschaltung...und da wüsste ich gern ob ich das so machen kann oder ob da was dagegen spricht ](*,)
Zur Erklärung:
IC1 (ganz links) bekommt einen Takt von max. 32MHz an den "UP" Eingang, die Nachfolgenden bekommen ihren Takt vom "Carry Out" des vorherigen 74193. Die "Clear" Eingänge werden alle zusammengeschaltet um einen gleichzeitigen Reset machen zu können.
Die Eingänge zum setzen (A,B,C,D) werden mit Masse verbunden, der "Load" und "Down" Eingang werden auf +5V gezogen. Der "Borrow Out" Ausgang bleibt offen.
Die Ausgänge der IC's werden auf eine Pfostenleiste gelegt. Jeder IC bekommt seine 100nF zwischen Vcc und GND, zusätzlich ist noch ein 10µF Elko vorgesehen.
Die Ausgänge der Zähler gehen später an die Adresseingänge eines SRAM. Mit Daten wird das RAM direkt von einem parallelem ADC versorgt (also keine RAM Erweiterung für den AVR oder so).
Hat jemand Tipps oder hab ich was übersehen? Hab bisher noch nix mit reinen Logik-Bausteinen gemacht!
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo!
Ich hab mir jetzt mal die Daten des 74193, TDA8703 und vom SRAM (628512-55) angeschaut.
Das ganze sieht eigentlich gar nicht so schlecht aus...:
Der 193 braucht max. 47ns um seine Ausgänge nach einem "High->Low" der Clock auf Low zu bringen (andere Richtung ist mit 38ns etwas schneller).
Der TDA8703 benötigt max. 20ns um die Richtigen Daten nach einem "Low->High" der Clock (was den Beginn der Messung bedeutet) bereitzustellen.
Beim oben genannten SRAM (Best.-Nr von Reichelt entspricht dem Namen) beträgt die Address Set-up Time, Write Recovery Time und Data Hold from Write Time genau 0ns.
Damit sollte eine Geschwindigkeit von ca. 21MHz drin sein, oder (also von Seiten des '193)?
Im Anhang ist ein Timing Diagramm des SRAM. Die Zeiten die entscheidend sind dürften tAS, tWR, tDH sei. Die sind alle laut Datenblatt 0ns.
tWC dürfte die Zeit sein, die für die max. Schreibgeschwindigkeit entscheidend ist, diese beträgt 55ns. Damit kann ich mit max. 18MHz auf das SRAM schreiben.
@shaun:
Du meinst die Zeit die der Zähler benötigt um nach dem 16. Clock "Low->High" den Carry Out Ausgang auch ein "Low->High" machen zu lassen?
Die Zeit beträgt max. 24ns.
Im Worst Case müsste ich 4*24ns (also 96ns, das Carry Out des letzten '193 brauch ich ja nicht) warten. Bedeutet das, dass ich die Geschwindigkeit auf eben diese 96ns verringern muss? Das würden dann nurnoch knapp 10MHz sein!
Für die erste Version müsste das aber immernoch genug sein...kann ich schon am RAM sparen :-$