Salve, vorrei sperimentare un po' con le SRAM.
Vorrei provare ad accedere ad un chip SRAM classico (tipo 62256, un 256 Kbit da 32 KB MDIP28) da 2 Arduino.
Volevo in pratica usare un Arduino come chip video, che legge i dati dalla SRAM e li visualizza su un LCD ed un altro Arduino (o meglio, un Atmega "solitario") che genera i dati in base a degli algoritmi che caricherò nel chip.
Come posso collegare i 2 Arduino alla memoria? Dovrei usare un bus comune. Siccome poi sia l'Arduino "video" che l'Arduino "CPU" accederanno continuamente alla memoria, come posso fare per evitare che si "pestino i piedi", ovvero che tentino di accedere contemporaneamente alla SRAM
Per isolare un arduino dal altro puoi usare dei driver tristate tipo 75ht245 o simili.
Vedo solo un impegno circuitale per gestire una Sram paralella troppo impegnativo. Ti servono 8 pin per i dati e 15 pin per gli indirizzi della memoria. Anche se usi dei 595 é complicato l' uso.
Ti consiglio di usare una fram tipo FM25256B della Ramtron o simile. Sono memorie ferroeletriche che mantengono l' informazione senza alimentazione. praticamente uniscono le velocitá e l' illimitata scrittura dei RAM con il mantenere i dati dei EEprom. Hanno lo stesso schema di collegamento dei EEprom seriali.
Poi con 3 multiplexer 2 a 1 uno dei Arduinoi da al altro il permesso di scrivere (penso che chi scrive sulla memoria dovrebbe dare a quello che aggiorna il display il permesso di leggere la ram)
permettimi la domanda: Perché Ti fai la vita difficile? non puoi far fare tutto ad un Arduino?.
Allora, io non ho abbandonato il mio progettino di farmi un simil-computer/console anni '80. Però ho leggermente rivisto l'idea.
Dato per assodato che non avrei potuto lanciare programmi al di fuori della Flash interna dell'Atmega, ho ordinato un paio di Z80B da ebay, che mi sono arrivati proprio stamani.
Voglio usare quindi lo Z80 per costruirmi un piccolo computer capace di elaborare programmi su EEPROM, che saranno alloggiati su chip o cartuccia.
Poi ho pensato di usare l'Arduino (o l'Atmega "solitario") come VDC (Video Display Controller), seguendo un po' schemi semplici e fattibilissimi come questo: l'AVGA, ossia un semplice Arduino che genera segnale PAL.
Questo VDC dovrebbe leggere i dati video da una memoria in cui possa accedere anche lo Z80. Mi son detto: se lo facevano negli anni '80, si può fare anche oggi, giusto?
Il problema è che non so come fare :
Nel senso che di schemi di computer basati su Z80 ne ho visti molti ma tutti usano una pletora di chip che non so come si usino, tipo NAND, i tuoi 245, "aggeggi" 3-8 pin e simili
Pensavo anche all'I2C. Se metto insieme qualche SRAM I2C, un convertitore parallelo/I2C tipo questi forse la cosa risulterebbe più semplice.
Vorrei usare una TV.
Difatti il link all'AVGA che ho messo porta proprio ad un progetto in cui un Atmega viene usato per gestire semplici giochi e generare il segnale video.
Io lo userei solo come VDC per generare il segnale video partendo dai dati contenuti nella Video RAM.
Volevo fare così per: 1) semplificare il progetto rispetto all'utilizzo di un microprocessore per tutto (in stile ZX80, per capirsi) e 2) per alleggerire i compiti dello Z80.
Quello shield l'ho visto, ma volevo realizzare qualcosa tutto da me, almeno imparo, sennò sarò sempre a chiedere le cose
Nella sezione internazionale (interfacing) mi hanno dato uno schema con diversi shift register ed altri chip, una cosa molto bella: se mi puoi dare anche tu i tuoi suggerimenti, te ne sarò grato :