Pagina 1 di 2

[Repair log] Tetris (bootleg)

Inviato: 20/03/2015, 16:07
da janniz
Oggi doppia razione con fatica incorporata (Avevo già scritto mezzo questo post... ma la piattaforma del forum ha deciso bene di mangiarselo :/ Vabbè)

Background della scheda
Anche questa scheda faceva parte del medesimo lotto di schede "Non funzionanti". Sulla busta che la conteneva c'era scritto: “Non parte” e “Bootleg - Da riparare”.
Si tratta di un bootleg del Tetris di Atari del 1988. Non so quale dei tanti bootleg censiti dal mame si tratti. Sicuramente non si tratta dei 3 bootleg non ancora emulati censiti su mameitalia.
tetris_01_01.jpg
tetris_01_12.jpg
Modifiche “dell'ultimo minuto”
In questo caso troviamo alcune modifiche abbastanza standard. Vale a dire: una resistenza di pull-down sul clock del contatore 74LS197, un condensatore tra la linea di clock e massa del flip flop D 74LS74 e infine l'unica modifica realmente rilevante, vale a dire un rerouting di una linea nella parte inferiore del PCB lato saldature.
Per curiosità ho provato a ripristinare la condizione costruttiva pre-modifica (ricostruendo anche la linea interrotta sul PCB) ottenendo errori grafici nei tetramini. Questo mi fa pensare che ci sia stato quindi un errore di progettazione a monte, corretto poi solo nelle fasi successive (Mi scuso fin da ora per la scarsa qualità di questa immagine. Mi riprometto di rifarla nel caso servisse a qualcuno...):
tetris_01_20.jpg
Malfunzionamento
Non ci sono segni di attività video, e anche provando a inserire crediti e/o iniziare una partita non si sentono suoni o musiche di alcun tipo.

Ispezione visiva
A una prima ispezione visiva la scheda ha subito dei danni derivanti da urto. L'interruttore designato a selezionare il service mode è completamente divelto ed è presente solo in parte.
Nelle vicinanze si nota la probabile mancanza del trimmer deputato a regolare suono (in basso a destra nell'immagine):
tetris_01_02.jpg
Un 74LS74 ha un piedino mancante. Si tratta di un doppio flip flop D, ed il piedino mancante è quello del clear del flip flop uno. Il piedino sembra reciso di netto, ma non mi è chiaro se la cosa sia stata fatta volontariamente per correggere qualche baco di progettazione oppure sia dovuta a qualche genere di incidente. Tal piedino è in continuità elettrica con il PIN di reset della CPU e, trattandosi di un ingresso, viene utilizzato probabilmente solo all'inzio per portare il flip flop in uno stato iniziale noto.
tetris_01_04.jpg
Infine abbiamo anche un transistor BC547 con il piedino di base spezzato (in foto dopo la riparazione). Questo transistor molto probabilmente è responsabile del pilotaggio della linea di reset della CPU1)
tetris_01_14.jpg
Interventi effettuati
Come prima cosa dopo aver riparato la base del transistor sono andato a monitorare eventuali segni si attività sulla linea del sincronismo:
tetris_01_03.jpg
Evidentemente manca la parte del segnale relativa al sincronismo verticale.

Provo quindi a riparare il piedino mancante del 74LS74, ma purtroppo questo non porta a un giovamento immediato al segnale di sincronismo.
tetris_01_17.jpg
A questo punto decido di effettuare uno sbroglio parziale della scheda per poter così poi andare ad analizzare quali siano i componenti deputati alla creazione del segnale di sincronismo.
Dopo un certo numero di ore passate a seguire le tracce sul PCB ottengo un diagramma parziale. Tuttavia a causa delle troppe piste che si instradano sotto altri componenti e che non sono in grado di tracciare accuratemente ancora non riesco a identificare con precisione quale sia lo schema di generazione del sincronismo. Come ultimo tentativo mi metto quindi, tester alla mano, a verificare la continuità elettrica pin per pin tra tutti gli integrati coinvolti, sperando di riuscire a completare il lavoro di sbroglio già iniziato.
Pur impiegando moltissimo tempo riesco solo a ricavare questo, poco utile alla risoluzione del problema, diagramma parziale:
Tetris_bootleg_01_sync.schematic3.pdf
.
Tuttavia questo approccio brute force mi convince che sicuramente deve esserci una qualche pista interrotta, in caso contrario, avendo provato ogni singolo pin con il tester avrei dovuto identificare con certezza gli altri integrati coinvolti.

Mi dedico quindi alla lato saldature del PCB e in breve scopro che inequivocabilmente una pista è interrotta!!!
tetris_01_06.jpg
A onor del vero avevo trascurato questi danni lato saldature perché a occhio nudo sembrava che fosse stato coinvolto soltanto lo strato isolante e le piste in rame mi sembravano assolutamente integre. Solamente con l'ausilio del tester ho avuto modo di verificare l'effettiva presenza del difetto.

Procedo quindi con la riparazione:
tetris_01_19.jpg
e vengo ripagato con questa moneta:
tetris_01_11.jpg
Soddisfatto per il risultato voglio provare ad effettuare una partita, seppur con audio assente. Ed ecco spuntare un nuovo problema… Non funzionano correttamente i controlli.
Mi armo di pazienza e seguo le linee di segnale dal pettine jamma fino ad arrivare sul buffer 74LS240. Una verifica attenta degli ingressi e delle uscite dell'integrato rileva che esso viene pilotato dalla PAL CE16V8 situata poco distante.
tetris_01_07.jpg
Analizzo la suddetta PAL con la sonda logica ed ho modo di notare che uno dei suoi piedini risulta essere flottante. Una volta rimossa dallo zoccolo DIP la PAL si presenta molto ossidata perciò procedo con una bella spruzzata di disossidante per circuiti elettrici risolvendo così definitivamente il problema dei controlli non funzionanti.

Non resta altro da fare che dedicarsi al comparto sonoro.
tetris_01_09.jpg
Sfortunatamente non dispongo di nessun trimmer adatto al montaggio orizzontale, e quindi devo adattarmi utilizzandone uno verticale. L'installazione finale è un po' naif, ma per il momento puo' bastare.
tetris_01_18.jpg
Infine resta da montare un interruttore e slitta per il l'accesso al service menu. Per il momento l'attività è stata rimandata in attesa di trovare un pulsante adatto.

Ed ora posso godermi nuovamente Tetris in tutto il suo splendore:


Versionamento del post:
  • 27/03/2015: Aggiornamento dello schema elettrico (approfondimento sulla generazione di /RESET)
  • 20/03/2015: Versione iniziale

Re: [Repair log] Tetris (bootleg)

Inviato: 20/03/2015, 16:12
da antoniomauro
Grande!

Re: [Repair log] Tetris (bootleg)

Inviato: 20/03/2015, 16:17
da PaTrYcK
Grande ottimo lavoro!

P.s. come ti trovi con quell'oscilloscopio digitale portatile?

Re: [Repair log] Tetris (bootleg)

Inviato: 20/03/2015, 16:20
da kackremboh
mi unisco al coro: BRAVO <-clap->

Re: [Repair log] Tetris (bootleg)

Inviato: 20/03/2015, 16:54
da motoschifo
Bel lavoro, e poi Tetris è sempre Tetris <-thumbup->
Leggendo il post mi hai fatto tornare in mente le ore interminabili di elettronica delle superiori... <-lol->

Re: [Repair log] Tetris (bootleg)

Inviato: 20/03/2015, 16:57
da janniz
PaTrYcK ha scritto:Grande ottimo lavoro!

P.s. come ti trovi con quell'oscilloscopio digitale portatile?
Ottimamente... l'unica pecca, se gliene si vuol trovare una sono i connettori che sono un po' "deboli" e ogni tanto si staccano dal punto sotto test. Ne avevo sostituiti un paio con un connettore ad uncino. Questi vanno meglio con gli elementi con piedini più grandi (resistenze, condensatori, etc.) ma non riesco più ad infilarli tra un pin e l'altro degli integrati :/

A onor del vero una seconda pecca ci sarebbe, anche se a mia discolpa posso dire di averlo scoperto dopo averla acquistata... Tutte questi cloni di USBee e Saelae sono di fatto dei cloni, e quindi utilizzandoli si ruba il frutto del lavoro di chi onestamente questi prodotti li sviluppa... soprattutto se utilizziamo il software originale del produttore.
Ho visto che ci sono dei prodotti opensource che si propongono di utilizzare il medesimo hardware per raggiungere gli stessi scopi. Non ho ancora avuto il tempo di provarli ma spero vivamente di riuscire a farlo quanto prima...
motoschifo ha scritto:Bel lavoro, e poi Tetris è sempre Tetris <-thumbup->
Leggendo il post mi hai fatto tornare in mente le ore interminabili di elettronica delle superiori... <-lol->
Già... che belle le ore di laboratorio di elettronica e soprattutto di sistemi all'ITIS :D :D :D

Re: [Repair log] Tetris (bootleg)

Inviato: 22/03/2015, 8:58
da DAMND
Accidenti che lavoraccio che hai fatto, molto bravo, davvero un ottimo lavoro!
Ma sei ingegnere elettronico?

Re: [Repair log] Tetris (bootleg)

Inviato: 22/03/2015, 9:27
da masez21
Quanto invidio le tue competenze! Complimenti, gran lavoro!

Re: [Repair log] Tetris (bootleg)

Inviato: 22/03/2015, 10:59
da PiccoloVideo
Mi unisco ai complimenti, veramente bravo

Re: [Repair log] Tetris (bootleg)

Inviato: 22/03/2015, 14:40
da janniz
Grazie davvero a tutti dei complimenti...
In verità la cosa più faticosa è sempre tradurre in un post il lavoro effettuato... ed infatti li accumulo e poi non sempre ricordo tutti i passaggi che avevo effettuato. Per esempio su questa scheda avevo anche sbrogliato una parte della logica di controllo... ma non l'ho tradutto subito in uno schematico e quindi ormai è persa tra i meandri della mia memoria e i miei incasinatissimi appunti presi al volo mentre faccio le riparazioni :(
DAMND ha scritto:Ma sei ingegnere elettronico?
Fuochino... Ingegnere informatico, ma per l'elettronica digitale di questo tipo bastano e avanzano le competenze da perito che maturai (molti, troppi :P) anni fa, unite a un pizzico di curiosità e passione... (anche se indubbiamente i numerosi corsi di elettronica, soprattutto digitale, del poli hanno giovato non poco :P)

Re: [Repair log] Tetris (bootleg)

Inviato: 22/03/2015, 14:54
da Paolo63
Complimenti, bel lavoro. Apprezzo molto lo sforzo ulteriore di mettersi a riportare i passaggi sul forum. Grazie

Re: [Repair log] Tetris (bootleg)

Inviato: 22/03/2015, 22:06
da tdm1978
Sei un grande......e ti sei meritato un MI PIACE hai sviluppato una parte dello schema elettrico su cui sto lavorado anche io, ho la stessa scheda con credo un problema di reset alla cpu, in quanto video bianco e il pin di reset della cpu e in stato alto basso, quindi presumo come se si effettui sempre l'avvio del reset.

Vediamo se per caso tramite il tuo schema elettrico riesco a verificare meglio il tutto.

Se hai suggerimenti sono sempre graditi.

Re: [Repair log] Tetris (bootleg)

Inviato: 22/03/2015, 23:50
da janniz
tdm1978 ha scritto: Vediamo se per caso tramite il tuo schema elettrico riesco a verificare meglio il tutto.

Se hai suggerimenti sono sempre graditi.
Se il problema è il reset io mi focalizzerei sul transistor. Sono quasi certo di ricordare che fosse lui a pilotare il circuito di reset... Purtroppo sono passati troppi giorni perché io mi ricordi con precisione, più tardi provo a vedere se trovo qualcosa tra gli appunti...

Re: [Repair log] Tetris (bootleg)

Inviato: 23/03/2015, 0:00
da tdm1978
a meno che nn abbia sbagliato a fare qualcosa il transistor l'ho sostituito proprio con il bc 547 , come il tuo anche se il mio pcb montava un bc 237

Re: [Repair log] Tetris (bootleg)

Inviato: 23/03/2015, 7:58
da janniz
Non ho sottomano un datasheet, ma fa una ricerca veloce dovrebbe andar bene ugualmente (sono transistor general purpose e alla fine l'unica cosa che fanno é tirare verso massa un mezzo chilo di ingressi collegati al bus di /reset) anche se io avrei cercato un rimpiazzo identico.
Riesci a farmi sapere le tensioni di base/collettore/emettitore?
Io proverei a cercare chi pilota la base. Se le tensioni sul transistor sono coerenti invece sposterei l'attenzione direttamente sul reset della CPU per capire chi dovrebbe portarla a uno stato logico alto...

Re: [Repair log] Tetris (bootleg)

Inviato: 23/03/2015, 21:37
da tdm1978
per il transistor vado tranquillo secondo il manuale ECA il BC 237 è equivalente al bc 547. per le tensioni spero domani di poterci mettere le mani sopra e farti sapere.

Re: [Repair log] Tetris (bootleg)

Inviato: 23/03/2015, 22:49
da frame
janniz ha scritto:
Una volta rimossa dallo zoccolo DIP la PAL si presenta molto ossidata perciò procedo con una bella spruzzata di disossidante per circuiti elettrici risolvendo così definitivamente il problema dei controlli non funzionanti.
JanniZ Potresti dirmi, se non è segreto, il nome commericale del prodotto che usi per questo scopo?

Re: [Repair log] Tetris (bootleg)

Inviato: 24/03/2015, 17:28
da janniz
Il nome non lo ricordo, é un comune disossidante per circuiti integrati. Più o meno uno vale l'altro per i miei scopi...

P.S: Janniz con la Z minuscola [SMILING FACE WITH SMILING EYES] la avevo messa maiuscola solo per sottolineare la differenza [SMILING FACE WITH OPEN MOUTH] (Sono pignolo... lo so... [GRINNING FACE WITH SMILING EYES])

Re: [Repair log] Tetris (bootleg)

Inviato: 24/03/2015, 21:07
da tdm1978
Ed eccomi qua il transistor nn sembra guasto (anche perchè lo avevo sostituito in precendenza con uno nuovo)e le tensioni su di essono sono le seguenti:

Base + 5Volt
Collettore + 5Volt
Emittore + 5Volt

Staccando solo il piendino della base del transistor sulla scheda nn cambia nulla, ma :
- l'emettitore va a 0 Volt
- il collettore va a 2,28 Volt
- La piazzola dove va la base è sempre a + 5Volt

Sul pin di reset CPU ho sempre un clock visibile a occhio nudo e con il tester(praticamente leggo 4,9 volt e subito dopo 1,8)

Dallo schema che hai fatto nn capisco quale integrato si occupa della partenza del segnale di reset.

Credo che il problema sia proprio li anche se nn riesco a venirne a capo.

Re: [Repair log] Tetris (bootleg)

Inviato: 27/03/2015, 1:36
da janniz
tdm1978 ha scritto: Base + 5Volt
Collettore + 5Volt
Emittore + 5Volt

Sul pin di reset CPU ho sempre un clock visibile a occhio nudo e con il tester(praticamente leggo 4,9 volt e subito dopo 1,8)

Dallo schema che hai fatto nn capisco quale integrato si occupa della partenza del segnale di reset.

Credo che il problema sia proprio li anche se nn riesco a venirne a capo.
Scusa se ci ho messo un po' a rispondere, ma quella parte di circuito l'avevo guardata un po' velocemente e ho dovuto recuperare la scheda da dove l'avevo riposta e trovare un po' di tempo per analizzare la zona intorno al transistor.

Il /RESET nello schema che ho indicato io è generato da U6, pin 12. Nello schema in effetti manca il BC547B, integrerò quanto prima, comunque dovrebbe bastarti sapere che l'emettitore del transistor è collegato al pin 13 di U6 (/CLR, U6 è un 74LS197). Le tensioni sul transistor sono corrette. Fino a quando l'emettitore è attivo alto, il contatore non si resetta e quindi la linea di reset resta alta (non attiva).
Tu probabilmente vedi la linea di reset pulsare perché il contatore non viene mai fermato da un comando di parallel load (pin 1), quindi dopo un po' va in overflow raggiungendo lo zero e fa scattare il reset.
Dovresti verificare il pin1 e rilevare un treno di impulsi che serve per reimpostare ciclicamente il contatore.

Se così non è (ed è probabile che non lo sia) devi sapere che il pin1 di U6 viene pilotato da un integrato che non era rappresentato nel mio schema, lo chiameremo U11. Si tratta di un 74LS08 e sul mio PCB si trova a sinistra dell'integrato che avevo chiamato U4.
Quindi il pin8 di U11 pilota il pin1 di U6 e il suo valore è generato dagli ingressi sui pin9 e 10 del medesimo integrato. Il pin9, è facile, è connesso tramite una resistenza da 10k a +5V. Il pin10 invece mi è stato più difficle tracciarlo, ma alla fine ho scoperto è connesso al pin11 di un 74LS138 che chiamerò U12 e si trova immediatamente a destra di quello che avevo indicato come U8.
Se vai a vederti il datasheet vedrai che si tratta di un demux. Il pin 11 corrisponde all'uscita 4, vale a dire che si attiva alto quando A0 e A1 valgono 0, A2 vale 1 e i pin di abilitazione sono a loro volta attivi (pin4 e 5 attivi bassi e 6 attivo alto).
Ricapitolando quindi sul suddetto integrato dovresti avere sul pin11 il medesimo treno di impulsi che ci aspettavamo su U11. Se così non è dovrai verificare gli ingressi e le abilitazioni, e via dicendo...

Ora vado a dormire che comincio ad avere una puntina di sonno... (e credo si noti dai periodi sconnessi che certamente avrò seminato poco sopra... :P)

Mi raccomando, fammi sapere come procede...