Home Forum MICROCONTROLLORI Motherboard Z80

Questo argomento contiene 6 risposte, ha 4 partecipanti, ed è stato aggiornato da  s.prischich 7 mesi, 3 settimane fa.

Stai vedendo 7 articoli - dal 1 a 7 (di 7 totali)
  • Autore
    Articoli
  • #60542

    8bit
    Membro

    Salve a tutti sono nuovo, spero di aver postato questo post nella sezione giusta del forum anche se non si tratta esattamente di un microcontrollore.

     

    Vengo alle mie domande, per sfizio e gusto nel costruire qualcosa di vintage ho voluto realizzare questo progettino qui:

    http://www.allthingsmicro.com/projects/build-a-z80-based-computer

     

    Prima di tutto ho dovuto modificare il PCB con eagle perche' quello che fornisce prerenderizzato ha piste e "via" troppo piccoli per una realizzazione casalinga, la mia versione e' quasi 2 volte piu' grandi, questo puo' creare problemi di funzionamento ? Posto la foto del mio PCB qui sotto:

     

     

    Ho usato un set CPU/CTC/SIO della serie Z80A (perche' ne avevo disponibili) con un generatore di clock a 5mhz (overcloccando un pochino, ma in passato avevo fatto qualcosa di piu' semplice con uno Z80A cloccato a 6mhz e funzionava correttamente), ho immaginato che se a 10mhz il trasferimento RS232 gira a 19200 a 5mhz sara' a 9600.

     

    I problemi che ho avuto sono legati alla EPROM e alla GAL, inizialmente me li sono fatti programmare da un'amico con un programmatore universale moderno, poi successivamente mi sono procurato un vecchio HILO System ALL03 per essere indipendente e fare le mie prove per conto mio.

     

    Fin'ora la scheda non ha ancora funzionato, ho gia' controllato che non ci siano falsi contatti nel PCB, quando ho inserito la eeprom AT28C256 nel mio programmatore ho potuto verificare che il suo contenuto non corrispondeva con il BIN che ci doveva essere dentro, l'ho cancellata e riprogrammata e dopo un paio di prove ho constatato che il contenuto della eeprom si rovinava nel momento che la scheda madre venive accesa, io sospetto che nello schema ci sia un'errore, ossia il pin 27 WE e' connesso assieme al pin WR della ram, verso il pin WR della cpu, ma cosi' facendo, da quel che capisco io, la CPU non finisce per scrivere anche nella eeprom !?!?! Allego lo schema

     

    Cmq non mi sono subito scoraggiato, con 2 zoccoli e un pezzetto di 1000 fori ho creato un'adattatore per infilare una vecchia 2764 al posto della AT28C256 (il bin col bios e' di soli 5k) lasciando scollegato il pin 27 dello zoccolo, con questa eprom la scheda si e' improvvisamente animata, con l'oscilloscopio vedevo dei bei segnali sul bus dati (prima era tutto sovrapposto), il pin IORQ della cpu era attivo (prima sempre fermo) il segnale TO0 del CTC anche lui aveva preso vita, insomma sembrava andar tutto tranne che la comunicazione col computer via seriale non andava, anche con l'oscilloscopio sui vari pin della seriale A non si muoveva niente, ho pensato che la sio fosse bruciata visto che era un chip di recupero, pero' a scanso di problemi ho voluto verificare anche il contenuto della GAL sul mio programmatore.

     

    La GAL e' una ATF22V10CQZ, nella lista dei chip dell' ALL03 avevo la ATF22V10CZ, i datasheet di questi 2 chip e' unico, sembrano essere la stessa cosa e non spiega che differenza porta la Q, provo a verificare il contenuto della gal con il file JED e mi dice che c'era un'errore a un certo indirizzo, ho pensato a un problema come con la eeprom, quindi la cancello e la riprogrammo con successo, ma una volta rimessa sul PCB non si muove piu' nulla un'altra volta, la riverifico per vedere se si era rovinata la programmazione ma in questo caso non avvengono danni la gal risulta programma correttamente, pero' come CZ e non CQZ.. sono molto perplesso.

     

    Ora ho ordinato su ebay un SIO di ricambio per sicurezza, una eeprom CAT28C256 (la stessa indicata nel progetto originale) e una GAL22V10B indicata nel progetto originale e supportata dal mio programmatore. In attesa che arrivino questi chip vorrei qualche parere, sopratutto perche' ha connesso WE della eeprom al segnale WR della cpu.

    #75432
    Antonello
    Antonello
    Partecipante

    Sembra davvero un bel lavoro.

    Però nel merito non saprei rispondere.

    #75433
    Piero Boccadoro
    Piero Boccadoro
    Partecipante

    Facciamo che nel merito provo a risponderti io :)
    Allora, piste e vias troppo grandi sicuramente possono avere influenza ed è per questo che vanno dimensionate a priori…
    Ora, non credo che raddoppiarne le dimensioni abbia impatto diretto sui segnali ma di certo potrebbe causare problemi di compatibilità elettromagnetica tra le piste, specie se i clock sono molto veloci.
    Detta così è vero in teoria… bisognerebbe metterci le manine sopra e provare a fare dei test, quantomeno sapendo che tipo di segnali uno si aspetta di vedere e che tipo di segnali effettivamente vede :)

    L’overclock è sempre rischioso ma un buon test preliminare risolve i dubbi, almeno sul breve periodo… Tieni sott’occhio tutto il circuito :)

    L’immagine dello schematico è un po’ piccola per fare un controllo ma temo possa essere un cortocircuito da qualche parte, magari proprio sul finale, verso la connessione.
    Il chip che gestisce le comunicazioni seriali è alimentato correttamente?

    #75450

    s.prischich
    Membro

    Vediamo se posso darti qualche consiglio.

    La board mi sembra un poco grandina ma non dovrebbero esserci problemi, stai lavorando con 5 mhz che non sono poi cosí tanto. Comunque proverei con una frequenza da 1 mhz o meno (non si sa mai!). All'epoca sui data mettevo delle resistenze di pullup da 22k.  Fai un programma con tutti nop ed un jmp all'inizio. Controlla l'A0, dovresti vedere un'onda quadra "pulita".  All'epoca non usavo le PAL ma logica discreta per cui era più facile seguire i segnali.  La PAL la puoi sempre provarla esternamente su una breadboard con dei pulsanti e verificare che effettivamente ti da i segnali che vuoi. Io usavo per debuggare l'hardware anche un emulatore di eprom, tempo fa avevo visto uno in vendita su ebay ad un prezzo irrisorio. Se ben mi ricordo nelle EEPROM la ~WE dovrebbe stare sempre a +5  e la lettura la puoi controllare sia con la ~CE che con la OE.  Prima di verificare se esce qualcosa dalle sio (che sono delle brutte bestie)  proverei con qualcosa di più facile, ad esempio pilotare un led con una uscita libera della GAL. 

    Facci sapere.

    Mi piacciono i progetti vintage!

    Buon Divertimento

    #75459

    8bit
    Membro

    allora rispondo ad alcune cose, la PCB l'ho fatto + grande perche' prerenderizzato che fornisce in download ha piste e via che sono IMPOSSIBILI da realizzare in casa con la fotoincisione, forare via con diametro di 1mm e' impossibile, sono stato obbligato a riprendere il file con eagle a spaziare un po' tutto facendo piste e via piu' grosse, ho usato lo sbrogliamento automatico.

     

    Ho mandato un'email al tizio di quel sito da dove ho scaricato il progettino e mi ha detto che le temporizzazione della AT28C256 non sono compatibili anche se mi sembra strano, seppur nelle mie limitate conoscienze, ho visto che rispetto la catalyst e' 10ns piu' veloce, ma non capisco come una memoria piu' veloce dovrebbe creare problemi, capisco fosse piu' lenta. Cmq ho comprato su ebay una GAL22V10B perfettamente supportata dal programmatore che ho.. avrei preso anche la CAT28C256 ma il tizio di ebay ha messo la foto di una DILm nella descrizione non specificava niente e alla fine m'e' arrivata una eprom PLCC.. -_-' per questo si prendera' un feed negativo, sono cmq riuscito ad accrocchiare un'adattatore con un pezzo di 1000fori.

     

    A riguardo di falsi contatti, corti ho controllato veramente tutto. Ho tagliato la pista che va al pin WR della eprom e ho collegato il piedino a +5.

     

    L'unica cosa strana e' che il segnale di clock e quasi sinusoidale, l'oscillatore alimentato per conto suo fa un'onda quadra, ma messo nel circuito diventa sonusoidale, pero' sinceramente non so se e' normale, se fa qualcosa o no. ho ditemi voi, io sono veramente inesperto di queste cose, solitamente lavoro con elettronica analogica valvolare, quindi la mia esperienza e' veramente zero.

    #75469

    8bit
    Membro

    Salve alla fine sono riuscito a farlo funzionare, c'erano dei contatti che andavano e venivano sotto lo zoccolo della CPU, purtroppo i rivetti per la metalizzazione dei fori hanno fatto i capricci ma non potevo saldare gli integrati senza zoccolo. Anche a 5mhz la CPU e' stabile, e' stato acceso diverse ore mentre mi divertivo a spaciugare con il C.

     

    Vi faccio vedere 2 schermate

     

    :)

    #75507

    s.prischich
    Membro

    Il passo successivo potrebbe essere quello di installare un sistema operativo. Sto pensando al vecchio CP/M e quindi un interprete basic.  Si potrebbe usare come disco una SD card. L'unica cosa che dovresti sviluppare è il BIOS ma non è difficile.  Io ho cominciato prorio così, pensa il primo HD che ho montato era un Winchester da 7Mb ed un floppy da 128K (di 16" se mi ricordo bene).  Ripercorrere questa strada è molto istruttivo perchè ti rendi conto dello sviluppoche ci è stato. Del CP/M si trovano anche i sorgenti su http://www.cpm.z80.de/source.html . Dovrebbero far fare queste cose  anche nelle scuole.

    Mi piacerebbe sapere se hai intenzione di continuare.

    Buon Divertimento

Stai vedendo 7 articoli - dal 1 a 7 (di 7 totali)

Devi aver eseguito l’accesso per poter rispondere a questa discussione.