DRAM controller con PIC

Ciao!

Qualcuno lo ha mai fatto? Avete qualche link e/o consiglio da darmi?

Grazie in anticipo!

Reply to
Ice
Loading thread data ...

Ciao,

se lo fai, sei veramente bravo....il PIC non avendo un DRAM controller integrato, non solo deve generare il segnale periodico di refresh, ma anche generare le forme d'onda RAS e CAS per l'indirizzamento dei singoli bit della DRAM. In bocca al lupo

Enrico

Reply to
enrico

"Ice" ha scritto nel messaggio news:xX8Pb.118076$ snipped-for-privacy@news3.tin.it...

Ma a che scopo? E' piuttosto facile generare i segnali per una DRAM, pero' un PIC ci impieghera' almeno una dozzina di microsecondi per leggere o scrivere un dato attraverso i port di I/O. A questo punto, se hai una mole di dati tale da giustificare l'uso di DRAM, non ti conviene sicuramente usare un PIC.

Reply to
Valeria Dal Monte

La cosa che non mi è chiara è come fare a leggere o scrivere una cella di una dram se la dram stessa deve avere un refresh praticamente continuo... Ad ogni modo, come hai detto tu, il pic è un po' lento. Io cercavo qualcosa per pic in modo da potermi studiare il firmware e capire bene le varie fasi. L'ideale sarebbe implementare il tutto con una FPGA o un ASIC. Tu cosa mi consigli? So che esistono dei dram controller ma io voglio farlo da me per capire

Ciao!

Reply to
Ice

"Ice" ha scritto nel messaggio news:rqPPb.166993$ snipped-for-privacy@news4.tin.it...

una dram se la dram stessa deve avere un refresh

I cicli di rinfresco non occupano molto la memoria. Considera anche che quando tu leggi una cella, automaticamente rinfreschi quella cella e tutta la riga a cui appartiene quella cella.

qualcosa per pic in modo da potermi studiare il firmware e capire

un ASIC. Tu cosa mi consigli? So che esistono dei dram

Se devi solo fare delle prove per studio allora va benissimo fare dei programmini per un pic. Probabilmente sarebbe anche piu' semplice collegare un DRAM alla porta parallela del PC, usando solo una piccola parte degli indirizzi e mantendendo gli alti fissi a 0. In questo modo puoi scrivere qualche programma di test in C, mandare i dati, rileggerli, visualizzarli, ecc., preferibilmente lavorando in MSDOS per avere dei tempi di esecuszione certi. Quando hai capito bene come funzionano le cose puoi passare a qualche progetto hardware. In ogni caso procurati il datasheet della memoria che intendi usare per gli esperimenti.

Reply to
Valeria Dal Monte

Intanto grazie!

L'idea di iniziare con la lpt non è male... non ci avevo pensato! Immagino che non sia necessaria molta memoria del pic per pilotare la dram (come codice) ma rimane il fatto che ogni tot milisecondi (o meno, non so) scatta il timer e inizia il ciclo di refresh... ecco se questo avviene quando il carico della cpu è elevato, mi ritrovo con prestazioni decisamente inferiori alle aspettative ed inoltre durante il ciclo di refresh non posso servire altri interrupt (esempio: se l'utente preme un tasto in quel momento?) Credo che adotterò una soluzione con 2 pic: uno principale che controlla il tutto (kbd+lcd+dram_controller ad esempio) ed uno dedicato al solo controllo della dram (dram_controller, appunto)

Ciao!

Reply to
Ice

Sono sempre io!

Forse il motivo principale per cui voglio provare a realizzare un dram controller è che ho la necessità di immagazzinare su un supporto veloce (leggi ram) una grande mole di dati (diciamo 8 MegaByte) provenienti dall'esterno. Ebbene: ho visto che le 72-pin si trovano a prezzi stracciati in fiera e a casa ne ho qualcuna. Inoltre hanno grandi capacità (senza parlare delle più attuali 168 pin...) Le 72-pin sembrano quindi la soluzione ideale solo che sono DRAM. Fino ad oggi ho sempre utilizzato SRAM, soltanto che sul mercato sono riuscito a trovare sono NVSRAM di capacità accettabile (2 MB) ma a comperarle costano troppo (almeno 100 euro!!!) Che faccio? Hai qualche idea per aiutarmi?

Ciao!

Reply to
Ice

controller è che ho la necessità di immagazzinare su un

provenienti dall'esterno.

8 MB oggi non sono molti. Io penso che ti convenga una SRAM. Se proprio vuoi usare una DRAM considera di usare un microprocessore che abbia il rinfresco automatico come il vecchio Z80. In certi casi, se la DRAM viene letta/scritta in continuazlone, il rinfresco non serve nemmeno considerarlo perche' basta distribuire nel tempo l'accesso agli indirizzi e il rinfresco e' assicurato. Per esempio questo avviene in una memoria video.
Reply to
Valeria Dal Monte

Ultima domanda: conosci per caso una sram da 2MB+? Sai com'è... per fare 8MB con chip da 64K (quelle delle shede madri 486) ce ne vogliono 128! Non riesco a trovarne così tante e poi mi ci vuole una 20X30 doppia faccia solo per le ram!

Ad ogni modo, grazie ancora... Ciao!

Reply to
Ice

"Ice" ha scritto nel messaggio news:fmeQb.178106$ snipped-for-privacy@news4.tin.it...

ce ne vogliono 128! Non riesco a trovarne così tante e poi

Vabe', capisco che sei uno di quelli che non buttano via niente :) Comunque ho dato un'occhiata a cataloghi e listini ed in effetti e' difficile trovare SRAM superiori a 512 Kbytes e inoltre sono abbastanza costose, in genere >10 euro. Percio' mi sa che hai ragione, se ti occorrono piu' di uno o due Mbytes e non ci sono motivi particolari per usare le SRAM, sicuramente convengono le DRAM visto che vendono a un euro i moduli da 8 o 16 MB recuperati dai vecchi pc.

Reply to
Valeria Dal Monte

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.