DRAM Refresh

Hej NG,

jeg har en masse gammel DRAM liggende og vil egentlig gerne benytte det i et lille miniature-system med en 8051-kompatibel uC, men mangler en memory-controller. Så vidt jeg kan se på nettet, ville en 74608 kunne gøre dette - dog har jeg kun fundet det nævnt i en 2-3 sætninger. Ingen datablade, intet fra nogen producent.

Man ville også kunne gøre det i software, men som jeg har set andre steder på nettet vil det kunne sluge en pæn del af cpu-ressourcerne, så tit som det skal gøres (hvert 4 ms. ved de kredse jeg har liggende).

Tager jeg helt fejl i at refresh på DRAM går ud på at "scanne henover" alle celler i klodsen, altså blot udlæse dem alle?

Er der nogen fiks løsning på det, udover at kode en peel til det?

/Thomas

Reply to
Thomas Skyt
Loading thread data ...

Eg har liggande nokre GAMLE memorykontrollerer fra INTEL, eg trur det er for

16K ram. Kva er det du treng? (nesten gratis)

HM

Reply to
Harald Mossige

Det er 32k-kredse jeg har liggende, så 16k-controller vil vel kun kunne addressere de nederste 16k, ik' sandt?

/Thomas

Reply to
Thomas Skyt

i

steder

som

for

Kretsen eg har er D3242, Intel. Eg trur den skal passa. Eg har ikkje databladet.

32K? Er ikkje dei egentelig 2 stk 16K som er byggd på ein 18 pins pakke? Kar du mange av dei?

I si tid wrappa eg eit kort for slike, eg samla dei etter reperasjon av kort, og eg skilde dei i 2 grupper, etter kva for ein chip som var defekt, øvre eller nedre. Ram var dyrt i den tida!

Borna nedla forbud mot å kasta det prosjektet.

Som sakt, eg har 9 stk D3242, du får gogla til du finn eit passande datablad eller skjema; rekner med at du treng det for å kunna bruka den!

HM

Reply to
Harald Mossige

Hej Thomas,

Thomas Skyt skrev i artiklen ...

steder

Jeg ved ikke hvad jeg snakker om men prøver alligevel ;-) Der må da findes en application-note du kan kigge efter et eller andet sted.. Ellers prøv at skele til nogle af de andre processorer - 6502, 6800,

68000, 6809, 8085 etc. Refresh-kredse er jeg bange for hører forrige århundrede til.

En GAL, PAL eller PEEL vil spare dig for en del kredse, men hvis du bare vil lege og har stumperne, hvorfor så ikke lave lidt hardware der kan lave en refresh-cyclus for hver instructions cyclus.Det kræver lidt dekodning, et par multiplexer-rkedse og et par binære tællere. Dit formål er at udnytte nogle gamle RAM-kredse som du allerede har liggende frem for at bruge Statisk Cmos-RAM. Du kan evt skele til Z80. Der var også en konstruktion i Elektor i April 82 og Sep 83, hvor de byggede et universal D-RAM kort til bl.a. Junior og følgende byggede det om til 64kbit kredse.

Du har selv været inde på at lave refresh i software - f.eks en interruptstyret rutine der laver 256 NOP operationer hvert 4 ms, eller lidt oftere i mindre bidder. Ideen er at udføre nogle instruktioner så de på kortest mulig tid læser flest mulige bytes på forskellige adresser. Med lidt dygtighed kan Initiering af rutinen og return from interrupt laves sådan at de også deltager i refresh af hukommelses-rækker i RAM-kredsene. Det vil tage ca 16% af processorens tid til refresh ved en instruktionscyclus på 1 microsekund.

Mvh, Lars Experimenterende Dansk Rodemikkel

Reply to
Lars Peter Larsen

Jeg har en 7-8 styk af den ene type og en 6 styk af den anden. Men jeg har ingen dokumentation på dem, så jeg ved ikke hvordan de er opbygget eller pin-belagt.

Og nutildags er det bare svært at få fat i for menigmand - hverken Conrad eller Farnell lader til at ville føre det.

Jeps - og netop uden datablade står jeg ret dumt med alle de kredse jeg har liggende.

/Thomas

Reply to
Thomas Skyt

Jeg har stærkt overvejet at skele til de andre cpu- og uC-typer, i håb om eventuelt at finde noget der. Nutildags bruger man jo næsten kun DRAM i alt processor-baseret, så der må sgu være noget doku et-eller-andet sted.

Mit formål var sådan set at lave et lille minimum-system, som jeg senere ville kunne udvide med en masse små moduler, indtil jeg til sidst når op på en automatiseret analog målestation til eksempelvis produktion af frekvenskarakteristik for en forstærker uden at brugeren behøver gribe ind.

Så det må gerne bære præg af noget "halv-prototype-agtigt" - og SMD er ikke noget jeg holder mig fra.

:) Nu er min valgte uC (DS80C310) heldigvis gevaldigt hurtigere end den originale 8051 - den kan udføre single-cycle instruktioner på kun 121 ns ved 33 MHz takt. Måske skulle jeg blot lige beregne mig frem til tab og effektivitet ved så høj en takt og undersøge om det overhovedet kan betale sig at holde mig fra software-løsningen ...

/Thomas forhåbentligt-snart-elektronikteknikker-håber-jeg-da-vist-alt-går-vel :)

Reply to
Thomas Skyt

Hejsa

Jeg mindes engang i først-90'erne, at Elektor havde en konstruktion til en

8031, hvor de _ikke_ brugte en speciel controller, men lavede refresh via IRQ og software, hvilket jo ikke er så svært igen.. Prøv om det kan hjælpe dig på sporet.

Mvh Hauge

Reply to
Hauge

i
6800,

Rammen som brukast nå er såkalla pseudodynamisk ram, det vil sei at refreschhardwaren er innebyggd i sjølve kretsen, slik at dei utad oppfører seg som statisk ram.

lave

dekodning,

universal

kredse.

lidt

RAM-kredsene.

Men ved slike frekvenser vil ikkje den gamle rammen du har fungera!. kontroller hastigheten. Vurder ein gamal SIM, 256x8. Ein annan ting er at du antagelig får eit misforhold mellom RAM og ROM; Kan henda du først bør vurdera kor mykje ROM du treng, og om det kan henda er ekstern rom som blir problemet.

HM

Reply to
Harald Mossige

Hmmm ... men på de gamle 30-pinns SIMM moduler jeg har fundet lidt papir på er der stadig strobe-linier og behov for refresh - gælder det med pseudo-dynamikken kun for SDRAM?

Det med ROM'en kan jeg løse ved blot at kopiere den over i RAM'en og derefter mappe om på de to. Jeg overvejer at gøre det med en PLD, hvis jeg alligevel får brug for en sådan til latches og muligvis refresh.

/Thomas

Reply to
Thomas Skyt

Men det bliver næppe nødvendigt. Den Flash-ROM jeg har tænkt mig at bruge har en access time på max. 45 ns (AM29F010, 1Mbit), hvilket giver en max. clock på omkring 22 MHz. Det kan jeg godt leve med :)

/Thomas

Reply to
Thomas Skyt

om

sted.

oppfører

Lat oss gå ein annan veg: Dynamisk ram bruker multiplexa addresse, alle adresselinjene har dobbel fungsjon. (Addresse LOW og HIGH) Du legg ut addresse LOW og klokker den inn med RAS, Row Address Strobe, og så legg du ut HIGH og klokker den inn med CAS, Column - -. Statisk ram derimot har alle addressane ut; det går meir en dobbelt så fort! MEN så skal du ha ein CPU som er tilrettelagd for slik RAM, like inn i instruksjonsoppbygginga.

Der finnes masser av god statisk ram på gamle CPUkort, den såkalla caschrammen, ofte 4 databit brei.

ns

at du

blir

Beklager, du får ikkje meir ROM på den måten. Mappinga, det å legga RAM i eit anna området, gjeres ved å legga adresselinjer høg eller låg.

Eller? Kontrolleren har både ROM og RAM? Bruk kretsen som den er, med ei minimumsløysning, - wrappa på eit veroboard, legg til passande I/O og fyll den opp med program. Når du har brukt opp resursene, så legg du til meir.

HM

Reply to
Harald Mossige

Hvad en refresh-cycle skal gøre afhænger af hvilken DRAM type du bruger. De "gode gamle" asynkrone DRAM'er (altså inden det blev til Extended Data Out = EDO), skulle have samtlige rækker berørt (dvs read eller write). Dett gjorde man ofte ved at have en refresh-tæller, som blev aktiveret hver 2/4/8 msek.

Senere kom der DRAM'er med indbygget refresh-tæller, sådan at man blot skulle udføre en bestemt sekvens på kontrol interfacet. SVJV er det fortsat sådan på de nyeste DDR-SDRAM chips.

Jeg vil lige advare imod at "bare kaste noget sammen": De gamle DRAM'er har ca 100 (asynkrone) timing parametre, som skal stemme for at du kan stole på indholdet af DRAM'en. Det tager ret lang tid at sætte sig ind i begrænsningerne, og så derefter lave noget logik som passer dertil. Jeg lavede engang et Altera MAX5000 design, som senere blev brugt til øvelses oplæg i Digital System Konstruktion på DTH. Det blev en stor fiasko - ingen af de studerende fik lavet konstruktionen, eftersom de ikke kunne hitte rede i DRAM databladet.

Jeg ville kode en peel til det. YMMV.

/Kai

Reply to
Kai Harrekilde-Petersen

Hej Thomas,

Denne tekst kan måske give en pegepind:

formatting link

--
Venlig hilsen,
Søren
              * If it puzzles you dear... Reverse engineer *
LM317-PSU-Designer v1,0b
Reply to
Søren

Der er vel ingen af dem der ingeniører i dag vel :-) puha det ser sort ud :-). Jeg synes du maler fanden på væggen her. Klart nok er der problemer, men de kan altså løses. På en Z80 kunne du klare det med en håndfuld gates og en tæller, på 8051 skal der en smule (ikke meget) kode til oveni. Du kan altså også lave din egen helt fra "bunden" uden det store. Det er rigtigt nok at timingen skal overholdes, men det gælder sgi da for alt digital teknik, når du nærmer dig en komponent grænse. Den største begrænsning er den manglende idéskabning eller "idétyveri". Det er altid sværrest når man først har sagt "det er umuligt".

Reply to
Klavs Rommedahl

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.