ZioFrenk Inserito: 30 gennaio 2016 Segnala Inserito: 30 gennaio 2016 Salve a tutti! Ho in mente di costruire un computer basato sullo Z80, ho già quasi tutti i pezzi tranne la EEPROM, che è introvabile. Allora mi è venuto in mente di utilizzare una SRAM 62256 con cella tampone e caricare i dati con la porta RS485 (che per me è più comoda dato che ho solo due fili da collegare). Per convertire i dati da RS485 a UART uso un 75176, il problema è convertire poi questi dati in parallelo, non ho idea di come farlo dato che la linea non ha clock. Mi servirebbero 8 linee dati e uno strobe collegato ai contatori 7493 per l'indirizzo, ma per me la porta parallela è scomoda, dato che non ho i connettori e nemmeno la porta stess sul PC. Qualcuno ha qualche idea? Ho anche un dubbio sulle SRAM. Per scrivere abbasso /chip enable, alzo /output enable e abbasso /write enable, poi mando i dati. Però tra un indirizzo e l'altro devo fare qualcosa sul bus dei controlli o posso lasciare così, continuare ad aumentare l'indirizzo e scrivere i dati? Grazie in anticipo!
Ctec Inserita: 31 gennaio 2016 Segnala Inserita: 31 gennaio 2016 Introvabile? Mica vero. La Atmel ne fa ancora e le trovi on line, costano anche pochino. Le trovi sia in DIL che PLCC, per cui facilmente maneggiabili. Per fare quello che dici te, un loader, hai per forza bisogno che ci sia almeno un programmuccio (un bootloader, appunto) che gestisca la CPU e soprattutto la memoria e la UART durante tale operazione. Le SRAM non incrementano automaticamente l'indirizzo, per cui fare quello che vuoi te è complicato (niente è impossibile, è solo una questione di tempo e soldi), e ti consiglio di lasciar perdere, Compra una EEPROM, un programmatore per la stessa (costano pochissimo) e poi casomai divertiti col bootloader per evitare di riprogrammare il tutto a ogni modifica.
Livio Orsini Inserita: 31 gennaio 2016 Segnala Inserita: 31 gennaio 2016 Io ho ancora la scheda NASCOM basata sullo Z80 con una EPROM con una specie di BIOS che gestisce tastiera, convertitore video, UART e registratore a cassette coem memoria di massa.
Ctec Inserita: 31 gennaio 2016 Segnala Inserita: 31 gennaio 2016 Me la vendi per il mio museino personale? Di schede anni '70 non ho nulla...
ZioFrenk Inserita: 31 gennaio 2016 Autore Segnala Inserita: 31 gennaio 2016 Per quello pensavo a uno switch che stacca completamente la CPU e collega la ram al caricatore. Per incrementare l'indirizzo ho 4 contatori 7493 in cascata, per quello mi servirebbe il clock dalla porta seriale, oltre che per convertire i dati in parallelo con lo shift register. Potrei sì ordinare le EEPROM da atmel, ma mi sa che me ne farebbero comprare mille alla volta, poi di programmatori ne ho visti solo costosi. In questo modo invece si può dire che lo costruisco da solo, quindi non serve il bootloader perché non passo dalla CPU. Rimane comunque il dubbio sulla sequenza per scrivere i dati sulle RAM.
Ctec Inserita: 31 gennaio 2016 Segnala Inserita: 31 gennaio 2016 Su RS una EEPROM 256kb (32KB) viene meno di 8€ e te ne danno anche una. Altri cataloghi on line, più o meno uguale. Programmatori di EPROM (E2PROM, FLASH, micro, ecc) su Ebay da 44€. E ti concestreresti sul progetto vero, la scheda CPU. Per fare quello che vuoi te dovresti: disconnettere dal resto del mondo (scheda CPU) il bus dati, indirizzi e controllo della RAM e invece connetterli al circuitone. Poi resettare il circuitone per essere sicuro di partire dall'indirizzo 0x0000, farti una UART tua (non puoi usare una standard, perchè non puoi scrivere nei registri interni per impostare i parametri di comunicazione), farti un deserializzatore (ci sono anche chip appositi) che dopo 8 bit di dati, supponendo che la tua UART ha tolto gli start e gli stop e ti ha detto che hai un dato valido, ti lancia anche uno strobe per mettere sul bus dati il byte e poi lanciare il WR, rileggere il dato per essere sicuro che hai scritto giusto (ti ci vuole un registro e un comparatore ad 8 bit. Se tutto ciò è andato bene, puoi incrementare l'indirizzo, dire al PC che può mandare un altro byte e così via. Penso che con una 40ina di integrati te la dovresti cavare... Ripeto che niente è impossibile...
Livio Orsini Inserita: 31 gennaio 2016 Segnala Inserita: 31 gennaio 2016 Il problema è come caricare il programma di boot. Devi avere comunque qualche cosa che ti fa scrivere nella EPROM o EEPROM o RAM con batteria integrata il programma di partenza. Disponendo di un programmatore scarichi il programma da PC nella EPROM-PROM-RAM. Potresti usare un micro che dispone già del suo boot, come arduino, per copiare i dati da PC verso la RAM con batteria o in una E2 Prom con interfaccia parallela; carichi il programma di boot per lo Z80 e poi inserisci la memoria nello zoccolo. Quote Me la vendi per il mio museino personale? Di schede anni '70 non ho nulla... Il Nascom e lo ZX-80 Sinclair me li tengo per ricordo. Sicuramente tra qualche anno i miei eredi pagheranno qualcuno per gettare in discarica questi dispositivi, assieme a componenti come 2716 e AC187-AC188, OC72, etc. (oltre alla mia biblioteca)
gabri-z Inserita: 31 gennaio 2016 Segnala Inserita: 31 gennaio 2016 Quote Penso che con una 40ina di integrati te la dovresti cavare... Ripeto che niente è impossibile Se la cava , il ZX 80 Sinclair ne aveva si meno .
Ctec Inserita: 31 gennaio 2016 Segnala Inserita: 31 gennaio 2016 Sei come me, vedo, Livio. Il museino che ho è iniziato con i miei primi computer (TI99/4A e Spectrum), poi altra roba raccattata qua e là. Al tempo dello ZX80 e delle schede nude, non avevo abbastanza "fondi" per procurarmele... I miei figli già mi domandano perchè non butto quella "robaccia obsoleta"...
ZioFrenk Inserita: 31 gennaio 2016 Autore Segnala Inserita: 31 gennaio 2016 Ho trovato questo integrato che mi sembra interessante allo scopo: http://www.ti.com/lit/ds/symlink/sn74lv8153.pdf Il problema è che per come sono messo già 30€ sarebbero una certa spesa. Ho sempre fatto tutto con ciò che recuperavo. Mi è venuta l'idea di quest'interfaccia perché ho tante RAM nel cassetto degli integrati e i convertitori apposta (tranne quello serie-parallelo). Per selezionare tra modalità normale e programmazione toglierò corrente alla cpu o al programmatore tramite un deviatore, senza scollegare dati e indirizzi.
Ctec Inserita: 31 gennaio 2016 Segnala Inserita: 31 gennaio 2016 Non puoi semplicemente disalimentare una parte. La sezione disalimentata inchioderà il bus come vuole, non penso vada automaticamente in three-state. Per quello ti dicevo che ci vuole un sistema di disconnessione. La cosa più semplice, ma un po' farraginosa, è che tu ti realizzi una NOVRAM (una SRAM con la batteria, cioè una NOnVolatile RAM, si trovano anche degli schemi, Elektor li fece sicuramente negli '80...). La estrai dallo zoccolo della tua scheda (che ti consiglio fare con uno ZIF), la metti in un programmatore esterno, fatto anche da te magari con quel deserializzatore che hai indicato, e poi la rimetti nella tua scheda Z80 e ridai tensione. Quel deserializzatore prevede un protocollo ben definito, che dovrai trasmettere sul filo seriale. Poi dovrai fare il sistema di gestione degli indirizzi (autoincremento) e tutto il ciarpame per gestire la sincronizzazione dei segnali. Però non saprai mai se la programmazione è andata a buon fine. Comunque costa solo un paio di €
Ctec Inserita: 31 gennaio 2016 Segnala Inserita: 31 gennaio 2016 Nota: le SRAM consumano molto meno se il CSneg (Chip Select negato) non è attivo (quindi alto). Inoltre, se questo è inattivo, non si corre il rischio di alterare il contenuto delle celle al momento della sconnessione. Pertanto è buona regola per farla estraibile, che casomai prima di sconnetterla si possa scollegare il CS dal circuito primario, magari mediante un jumper, e avere l'accortezza di portare al Vcc di batteria il pin CS con una adeguata resistenza (100k vanno bene generalmente). Quando la si reinserirà, si rimetterà al suo posto il jumper (altrimenti la SRAM rimane a "dormire"...
ZioFrenk Inserita: 31 gennaio 2016 Autore Segnala Inserita: 31 gennaio 2016 Ottimo. Per scrivere invece la sequenza sarebbe abbasso /CS, alzo /OE, abbasso /WE poi mando i dati incrementando l'indirizzo ogni volta?
bumbi Inserita: 31 gennaio 2016 Segnala Inserita: 31 gennaio 2016 parecchi anni fa avevo costruito una scheda cpu z80 con ram annessa, ma senza eprom, per caricare il programma nella stessa utilizzavo il vecchio Z80 di Nuova elettronica , che ho ancora funzionante.. ve lo ricordate ?? mitico ! avevo dotato la scheda di selettore che mandava in halt la cpu , andava in three-state e riuscivo cosi a programmare la ram tramite apposito connettore
Ctec Inserita: 1 febbraio 2016 Segnala Inserita: 1 febbraio 2016 No, /OE alto, metti l'indirizzo, abbassi /CS, metti i dati, abbassi /WR, lo mantieni per il tempo da datasheet, rialzi /WR e /CS, incrementi l'indirizzo e ricominci Che modello di SRAM userai?
ZioFrenk Inserita: 1 febbraio 2016 Autore Segnala Inserita: 1 febbraio 2016 Grazie, è da tanto che cercavo di capire come scrivere più dati in serie. Ho una 62256 che utilizzerò per il programma e altre quattro da 8kB che utilizzerò come memorie dati.
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora