Introduzione alla riparazione schede PCB

Area dedicata alle guide tecniche,consigli e suggerimenti.
Avatar utente
saturnshadow
Arcade Maniac
Arcade Maniac
Messaggi: 4470
Iscritto il: 04/05/2016, 16:00
Medaglie: 38
Reputation: 921
Località: Pesaro/Bologna
Nazione: Italy
:
Medaglia d'oro Medaglia d'argento Medaglia di bronzo Medaglia di legno

Introduzione alla riparazione schede PCB (LEZIONE 2)

Messaggio da saturnshadow » 08/03/2019, 12:23

ATTENZIONE! Quanto segue è la semplice traduzione della guida redatta e a cura di Brian Brzezicki presente in versione originale sul sito http://www.arcade-cabinets.com .
Arcademania.eu, lo staff tutto, i traduttori e tutti i collaboratori che hanno partecipato alla stesura del testo seguente non sono in alcun modo coinvolti nei contenuti di quanto illustrato, né hanno collaborato in alcun modo, né hanno alcuna responsabilità su qualsivoglia aspetto.
Per qualunque tipo di informazione, richiesta o ulteriore approfondimento riguardo il materiale presente nella guida i riferimenti sono: l'autore stesso, Brian Brzezicki (persona disponibile e squisita ndr), e la Paladin Group, LLC. che detiene il Copyright del materiale ivi tradotto
Qualunque annotazione e/o variazione sul contenuto i riferimenti sono esclusivamente quelli dell'autore (Brian Brzezicki).
Per modifiche alla traduzione invece, potete inviare liberamente i Vs. suggerimenti al fine di consentire le modifiche del caso


Introduzione alla riparazione di PCB per videogiochi arcade
Copyright 2013 Paladin Group, LLC - Author: Brian Brzezicki
www.arcade-cabinets.com
Special thanks to KLOV users TROXEL and BARITO for reading through this guide, doing the exercises, catching many many typos, and generally making this a better document


NB: questa introduzione è di natura generica, tuttavia negli esempi forniti la scheda descritta è la PCB del gioco Atari Centipede.

Lezione 2: lettura degli schemi:

Visualizziamo lo schema allegato qui in basso dell'Atari Centipede
centipede-schematic.jpg
Troviamo il rettangolo grande con la P verde che sugli schemi è identificato con "C2 6502A": questo indica che nella scheda PCB Centipede in posizione C2 c'è un chip 6502A, che è la CPU.
Vediamo che nello schema sul lato destro del chip ci sono delle etichette all'interno e all'esterno.
Le etichette all'interno indicano quale sia la funzione del chip (come generalmente indicato nella scheda tecnica) mentre il numero esterno è il numero di pin effettivo sul chip. Quindi, ad esempio, A14 è il pin 24 sul chip 6502.
Notare che ci sono 16 linee di indirizzo (A0-A15).
Quando la scheda CPU è accesa, ogni linea di indirizzo trasporterà o un segnale GROUND, che rappresenta il binario 0, o + 5V che rappresenta il binario 1. Poiché ci sono 16 diverse linee di indirizzo e ogni linea può avere due stati diversi, ci sono 216 = 65536 diverse combinazioni di 0 e 1, quindi ci sono 65536 posizioni di memoria che la CPU può indirizzare.

Gli indirizzi sono generalmente indicati in formato esadecimale come 0x041A, tuttavia il computer rappresenta tutto in termini di 0 o 1 (codice binario) in modo che possa trasformarlo in livelli di tensione elettronici. Fortunatamente un codice esadecimale può essere facilmente convertito in codice binario, pertanto ogni singola cifra esadecimale può essere convertita direttamente in 4 bit binari usando la tabella sottostante.
TAB1.png
A titolo di esempio prendiamo l'indirizzo sopraindicato 0x041A: questo può essere convertito facilmente sostituendo ogni cifra esadecimale con le corrispondenti 4 cifre binarie
TAB2.png
Quindi la rappresentazione binaria di 0x041A sarà 0000 0100 0001 1010
Quando la CPU desidera comunicare con questo indirizzo di memoria, applicherà le tensioni appropriate alle linee di indirizzo corrette. (Nota I bit degli indirizzi sono numerati da destra a sinistra)
TAB3.png
Ora immaginiamo che la CPU stia accedendo a questo indirizzo di memoria.
A scopo di esercizio proviamo a scrivere i valori appropriati su ogni riga di indirizzo sullo schema.
Seguendo le righe dell'indirizzo sulla destra si nota che tutti diventano l'input per i chip etichettati in verde A e B. Questi sono i chip B1 e C1 e sono etichettati LS244. Questa è l'abbreviazione di 74LS244 e definisce che tipo di chip è.
Il prossimo passo è consultare il datasheet per quel chip (si può cercare su Google “74LS244” ad esempio).
È importante leggere sempre la scheda tecnica e avere un'idea generale di cosa dovrebbe fare il chip. Non è necessario leggere tutti i dati tecnici delle condizioni operative del chip; in genere è sufficiente la prima o le prime due pagine di descrizione.
La maggior parte dei chip avrà anche una "tabella di stato" che descrive tutti gli input e quali saranno gli output associati e questa è un’informazione molto importante. Nel caso specifico di 74LS244, questo chip è un buffer (memoria tampone/di transito).
Lo scopo di questo circuito è semplicemente quello di leggere il segnale in ingresso e produrre lo stesso segnale sul pin di uscita. Poiché questo ha una funzione così semplice, alcuni datasheet non mostreranno nemmeno la tabella di stato. La ragione per cui un buffer è qui, è che mentre la CPU emette lo "stato per ogni linea di indirizzo" desiderata, la CPU fornisce o non fornisce abbastanza corrente necessaria per gli ingressi validi alla maggior parte dei chip della serie 74LSxxx.
Il 74LS244 in questo caso è un po’ come un amplificatore o un ripetitore di segnale e serve semplicemente a fornire la corrente necessaria sulle sue uscite.
Ora prendiamo gli input sul chip C1 e, in base alle conoscenze degli input, quali saranno le uscite ai pin associati? Compiliamo la seguente tabella:
TAB4.png
Notiamo anche i pin 1 e 19: lì i pin abilitano se il chip sta emettendo un valore o meno. Sono collegati al GROUND/Terra, il che rende questo chip permanentemente su uno stato ON/abilitato e fornisce un output su ciascun pin che riflette l'input.
Spesso potremmo vedere dei 74LS244 usati in un altro modo. A volte ci saranno più potenziali chip di input su un bus (binary unit system ndr) condiviso (ad esempio chip RAM o ROM).
Poiché solo un dispositivo alla volta può parlare con il bus senza causare problemi, i chip 74LS244 vengono spesso collocati alla fine di un dispositivo di archiviazione e isolano tale spazio dal bus.
Quando quel dispositivo di memorizzazione dovrà comunicare con il bus, il chip buffer sarà abilitato e trasmetterà i valori, tutte le altre volte il chip buffer riceverà un input di abilitazione che comunicherà al chip di andare in modalità OFF (chiamata High Impedance/alta impedenza), il che rimuoverà efficacemente il chip dal bus e consentirà a un altro dispositivo di poter comunicare col bus. Lo si vedrà in più punti nella RAM e nella ROM e nei circuiti di INPUT.

Esercizio: esaminare gli indirizzi sul bus con il Fluke 9010A e una sonda logica
In questo esperimento si collegherà il Fluke 9010A sulla PCB di Centipede e manipoleremo l’address bus; si noteranno le modifiche che vanno al 74LS244 in posizione C1 quando si invieranno segnali all’address bus.
NB: Ciò presuppone che la PCB di Centipede funzioni perfettamente. È meglio verificare la PCB di Centipede su un cablaggio jamma o su un banco di prova usando la PCB Centipede con l'adattatore JAMMA disponibile su arcadeshop.com

1. Spegnere la PCB di Centipede
2. Spegnere il Fluke 9010A
3. Rimuovere la CPU 6502 dalla scheda di Centipede
4. Collegare il Fluke9010A con il POD della CPU 6502 nello slot lasciato vuoto quando abbiamo rimosso il 6502 dalla scheda
5. Collegare la sonda logica ai punti di test sulla scheda PCB Centipede (da + 5V al cavo rosso e da GND/GROUND al cavo nero sulla sonda logica)
6. Accendere il Fluke 9010A
7. Accendere la scheda PCB Centipede
8. Andare nella configurazione del Fluke, usare il pulsante "More" per passare alla selezione di "Active Line Force"; premere "NO" per disattivarlo.
9. Premere il pulsante "Bus Test": il Fluke dovrebbe rispondere con il messaggio "BUS TEST OK"
10. Premere il pulsante "Read", quando chiede un tipo di indirizzo FF
11. Premere il pulsante "Loop"
12. Toccare con la punta della sonda logica sul pin 17 del 74LS244 in posizione C1 (indirizzo bus line 7, input). Dovremo vedere che il segnale è High/Alto*
13. Toccare con il puntale della sonda logica il pin 3 del 74LS244 in posizione C1 (linea bus indirizzo 3). Dovremmo vedere che il segnale è High/Alto*. Quindi l'indirizzo 7 è "ON", che ha senso perché l'indirizzo 0xFFFF è, in codice binario, 1111 1111 1111 1111, quindi tutte le linee dovrebbero essere logicamente alte (+ 5V)
14. Premere il pulsante "Read" sul Fluke, quando richiede un indirizzo di tipo 0000. Ora il Fluke dovrebbe scrivere 0 per tutti i bit sulla riga dell'indirizzo (GROUND)
15. Premere il pulsante "Loop".
16. Toccare con la punta della sonda logica il pin 17 del 74LS244 in posizione C1 (indirizzo bus line 7, input). Dovremmo vedere che il segnale varia da High/Alto a Low/Basso*. (non dovrebbe rimanere Low/Basso)
17. Toccare la parte superiore della sonda logica sul pin 3 del 74LS244 in posizione C1 (linea bus indirizzo 3). Dovresti vedere il segnale sta attraversando da High a Low* (non dovrebbe rimanere Low/Basso).
* NB: è molto facile interpretare erroneamente un segnale sulla sonda logica. Se il pin non è pulito si potrebbero ottenere risultati non corretti (specialmente quando la transizione sul pin è solo per una frazione di secondo). Ad esempio, leggendo le righe dell'indirizzo che sono impostate su 0, potremmo riscontrare che i pin degli indirizzi rimangono "High/Alti" se sono stati ripuliti: questo fenomeno mi ha sorpreso molte volte!

18. Sperimentiamo con la scrittura indirizzi diversi con il Fluke (non dimenticare di premere "Loop").
I pin corrispondono a quello che ci si aspetterebbe verificando il valore binario dell'indirizzo?

Quando si termineranno le prove non dimenticare mai di scollegare correttamente il Fluke:
1. Spegnere l'alimentazione della PCB di Centipede
2. Spegnere l'alimentazione del Fluke 9010A
3. Rimuovere il POD dallo zoccolo della CPU e rimetterlo nello zoccolo ZIF (Zero Insertion Force socket ndr) sul POD.


Author: Brian Brzezicki - Copyright 2013 Paladin Group, LLC
www.arcade-cabinets.com
Non hai i permessi necessari per visualizzare i file allegati in questo messaggio.



Romoletto
Gamer
Gamer
Messaggi: 33
Iscritto il: 04/03/2019, 7:47
Reputation: 0

Re: Introduzione alla riparazione schede PCB (in Inglese)

Messaggio da Romoletto » 08/03/2019, 15:34

[clap2.gif] [clap2.gif] [clap2.gif] Semplicemente fantastico

Avatar utente
saturnshadow
Arcade Maniac
Arcade Maniac
Messaggi: 4470
Iscritto il: 04/05/2016, 16:00
Medaglie: 38
Reputation: 921
Località: Pesaro/Bologna
Nazione: Italy
:
Medaglia d'oro Medaglia d'argento Medaglia di bronzo Medaglia di legno

Introduzione alla riparazione schede PCB (LEZIONE 3)

Messaggio da saturnshadow » 11/03/2019, 12:57

ATTENZIONE! Quanto segue è la semplice traduzione della guida redatta e a cura di Brian Brzezicki presente in versione originale sul sito http://www.arcade-cabinets.com .
Arcademania.eu, lo staff tutto, i traduttori e tutti i collaboratori che hanno partecipato alla stesura del testo seguente non sono in alcun modo coinvolti nei contenuti di quanto illustrato, né hanno collaborato in alcun modo, né hanno alcuna responsabilità su qualsivoglia aspetto.
Per qualunque tipo di informazione, richiesta o ulteriore approfondimento riguardo il materiale presente nella guida i riferimenti sono: l'autore stesso, Brian Brzezicki (persona disponibile e squisita ndr), e la Paladin Group, LLC. che detiene il Copyright del materiale ivi tradotto
Qualunque annotazione e/o variazione sul contenuto i riferimenti sono esclusivamente quelli dell'autore (Brian Brzezicki).
Per modifiche alla traduzione invece, potete inviare liberamente i Vs. suggerimenti al fine di consentire le modifiche del caso


Introduzione alla riparazione di PCB per videogiochi arcade
Copyright 2013 Paladin Group, LLC - Author: Brian Brzezicki
www.arcade-cabinets.com
Special thanks to KLOV users TROXEL and BARITO for reading through this guide, doing the exercises, catching many many typos, and generally making this a better document


NB: questa introduzione è di natura generica, tuttavia negli esempi forniti la scheda descritta è la PCB del gioco Atari Centipede.

Lezione 3: Bus e decodifica degli indirizzi di bus

I bus:
Nella lezione precedente abbiamo parlato degli indirizzi di bus. A questo punto potremmo chiederci "ma cos'è esattamente un bus?", e questa è una buona domanda. Un bus è semplicemente un gruppo di uno o più collegamenti su cui vengono trasmessi segnali elettrici. I bus hanno solitamente più cavi, nel caso della PCB Atari Centipede e della CPU 6502, ci sono 16 fili che compongono gli indirizzi di bus. Ogni filo porta il proprio segnale (0V o + 5V) e la combinazione di tutti i fili rappresenta alcune informazioni che devono essere trasmesse. Un'altra caratteristica di un bus è che più dispositivi diversi sono collegati a un bus. In qualsiasi momento uno o più dispositivi possono leggere i dati sul bus. Tuttavia, solo un dispositivo può scrivere dati sul bus in qualsiasi momento. Se più dispositivi tentano di scrivere dati sul bus, i segnali si corrompono a vicenda e i dati non sono validi. Stesso concetto del verificarsi di una collisione per quelli che hanno familiarità con le reti Ethernet che utilizzavano hub. Le vecchie reti basate su hub sono una tipologia di bus dove tutti gli host possono leggere i dati sulla rete, ma solo una alla volta può comunicare in un certo istante senza causare problemi.

Bus e dispositivi a Tre Stati:
Leggendo con attenzione si potrebbero riscontrare alcuni punti in conflitto.
1. I chip TTL forniscono / inviano segnali in uscita sui collegamenti verso il GROUND, o impostando sui collegamenti un output +5V.
2. I bus spesso hanno più di un dispositivo/chip collegato.
Potremmo chiederci "se più dispositivi stanno emettendo + 5V o GROUND, ed entrambi sono segnali, quando tutti i dispositivi comunicano causano problemi?" La risposta è sì! Se tutto ciò che un dispositivo può fare è produrre un segnale +5V o GROUND, che sono entrambi segnali validi, allora ogni dispositivo sta tentando di alterare con un output il bus e questo causerà problemi. Tuttavia, esiste una soluzione a questo problema.

Dispositivi a Tre Stati:
Per risolvere il problema sopra descritto, molti dispositivi TTL sono in realtà dispositivi a tre stati. Piuttosto che essere in grado di avere un output con solo 2 stati (Low/High), questi dispositivi hanno la possibilità di avere 3 stati di output
• Chip abilitato e output HIGH/Alto (+5V)
• Chip abilitato e output LOW/Basso (GROUND)
• Chip disabilitato e output HIGH IMPEDANCE/Alta Impedenza (spesso identificato con Z)
Quando il chip è abilitato, emette uno degli stati logici TTL validi (+5V o GROUND). Tuttavia il chip può essere disabilitato. Quando è in questo stato entra in una modalità ad alta impedenza che lo rimuove efficacemente dal bus. È importante capire che l'alta impedenza NON è 0V (GROUND), né è +5V: è NESSUNO stato. Infatti dal punto di vista del circuito, quando un chip è nello stato di alta impedenza, è come se il chip non fosse parte del circuito stesso.

Dispositivo a Tre Stati:
è un dispositivo che ha 3 stati, i normali stati logici di HIGH/Alto e LOW/Basso e un terzo stato chiamato High Impedance/Alta Impedenza che disattiva efficacemente il chip e lo fa sembrare assente sul circuito o sul bus.


Il circuito di decodifica degli indirizzi:
Dal momento che abbiamo i dispositivi a tre stati questo risolve il problema di più dispositivi collegati allo stesso bus. Tutto ciò che dobbiamo fare è garantire che i dispositivi siano sempre in uno stato disabilitato (alta impedenza) e abilitare solo i chip da cui desideriamo ricevere le informazioni.
Ora c’è solo bisogno di un modo (un circuito) per determinare quale chip dovrà essere acceso o abilitato. Questo circuito deve leggere alcuni tipi di informazioni (gli indirizzi del bus) e quindi abilitare il chip che è responsabile per quell'indirizzo di memoria. Questo circuito è chiamato circuito di decodifica degli indirizzi e si trova, a titolo di esempio, nell'immagine sottostante tratta dalla PCB di Centipede (è il circuito contenuto nel rettangolo blu)
PIC1.jpg
Analisi del circuito di decodifica degli indirizzi:
È fondamentale che il circuito di decodifica degli indirizzi funzioni, altrimenti il sistema non lavorerà correttamente. La maggior parte dei sistemi hanno una modalità di autoverifica che controllano la RAM e la ROM per determinare se stanno funzionando correttamente. Tuttavia, se il circuito di decodifica degli indirizzi non funziona, non sarà possibile accedere alle corrette RAM e/o ROM nei momenti giusti quindi l'autotest fornirà risultati non accurati, poiché porterà il sistema a segnalare che RAM o ROM non funzionano. Pertanto, prima di considerare i risultati di un autotest che indicano una RAM o una ROM malfunzionante, si dovrà verificare la corretta operatività del circuito di decodifica degli indirizzi.
Spesso quando fallisce il test sulla RAM o sulla ROM sulla prima che il sistema controlla, c'è una buona possibilità che il circuito di decodifica degli indirizzi sia malfunzionante.
Analizziamo il circuito di decodifica degli indirizzi. Guarda l'immagine dello schema soprastante. Troviamo il chip nel circuito di decodifica dell'indirizzo etichettato con una D verde. Si noti che questo chip è etichettato "J2 LS139". Ciò significa che qui il componente di riferimento è il chip sulla scheda in posizione J2 e che è un 74LS139. Ora è il momento di utilizzare Google (o altro motore di ricerca ndr) per cercare il datasheet del chip 74LS139.
TAB1.png
Se guardiamo il lato "INPUT" ci sono 3 diversi pin di input. Il pin 15 su J2 è la linea di abilitazione e corrisponde all'input G sulla tabella di stato. Il pin 14 corrisponde a A e il pin 13 a B. Nella parte della tabella degli OUTPUT si mostrano tutti i possibili output (colonne da Y0 a Y3) in base ai diversi INPUT di A, B e G. Osservando la tabella si nota che se il pin di abilitazione (G o pin 15 su J2) è in stato logico HIGH/ALTO (H), quindi disabilitato, allora tutti gli output hanno stato logico HIGH/ALTO (H) nonostante gli input di A e B.
Pertanto, effettivamente, quando questo chip è disabilitato tutte le sue uscite sono su HIGH/ALTO.
Tuttavia, quando il chip è abilitato (vedi G su LOW/BASSO), il chip emetterà un segnale LOW/BASSO precisamente su un canale di output, tutti gli altri canali avranno output HIGH/ALTO. L’output che sarà LOW/BASSO sarà determinato dagli input di A e B. Questo chip legge in modo efficace gli input (che alla fine ritornano su determinate linee sugli indirizzi del bus, e in base a quali linee sono attive, si abiliterà su un output determinato - invia Low/Basso oppure NESSUNO STATO).
La funzione di questo chip è in realtà di accendere 1 delle 4 ROM sulla scheda PCB Centipede o assicurarsi che tutte le ROM siano effettivamente spente, se il chip è disabilitato.
Diamo un'occhiata allo schema, vedremo che gli output, sul lato destro del chip, sono etichettati come ROM0, ROM1, ROM2, ROM3 (ognuna con una linea su di esse). Questi sono in definitiva i chip di selezione ROM che vengono eseguiti sugli input "chip select/enable" della ROMS individuale. La linea su ROM0, ROM1, ROM2, ROM3 specifica una condizione invertita, ovvero la ROM è abilitata quando la linea è su stato logico LOW/BASSO piuttosto che su HIGH/ALTO.
Quindi mettendo insieme tutti questi concetti vediamo che se il 74LS139 su J2 è disabilitato NO ROMS sarà abilitato. Se J2 è abilitato dipenderà dagli input a G (pin 15), questo è in realtà anche l'output di alcuni altri chip, ma per gli scopi di questo esercizio tutto ciò che dobbiamo sapere è che J2 sarà abilitato SOLO se la CPU sta provando a leggere i dati e la linea degli indirizzi del bus 13 è il suo stato logico è HIGH/ALTA (in codice binario: 1).
Ora, quando J2 è abilitato precisamente una delle ROM sarà abilitata in base agli input di A (pin 14) e B (pin 13). Il pin A viene eseguito direttamente sulla linea 11 degli indirizzi di bus e il pin B viene eseguito sulla linea 12. Pertanto, il chip della ROM abilitato, dipende dalla combinazione delle linee 11 e 12 degli indirizzi del bus.
Possiamo considerare questa informazione per cercare di capire quando verrà attivato esattamente ogni chip ROM. Sappiamo che per qualsiasi ROM abilitata gli indirizzi del bus 13 devono essere “1”, quindi il chip ROM attivato si baserà sulle linee degli indirizzi di bus 12 e 11.
Possiamo creare un grafico per vedere le diverse combinazioni di A e B mentre G è in stato HIGH/ALTO e mapparli alle rispettive linee di indirizzo. Ignoreremo AB15 e AB14 perché, come sulla PCB di Centipede, quelle linee effettivamente non sono utilizzate.
TAB2.png
Ora possiamo iniziare a farci un'idea di quali indirizzi attiveranno ciascuna ROM. Vediamo solo 3 linee di indirizzo necessarie per selezionare una ROM AB13, AB12, AB11. Solo queste determinano la ROM selezionata, mentre le altre linee di indirizzo possono essere 0 o 1 per qualsiasi posizione. Da quel momento, tuttavia, possiamo immaginare a quali intervalli di memoria è stata assegnata ciascuna ROM. Ad esempio per la ROM 0 attiva, AB13 deve essere uguale a 1, AB12 deve essere uguale a 0 e AB11 deve essere uguale a 0; tutte le altre linee di indirizzo sono irrilevanti. Quindi l'indirizzo minimo a cui la ROM 0 risponderà, sono tutti gli indirizzi in cui tutte le linee da AB0 a AB10 sono 0
TAB3.png
Se convertiamo questo in valori esadecimali vediamo che è l'indirizzo 0x2000. Ora l'indirizzo più alto a cui risponderà la ROM è dove tutti gli altri bit di indirizzo saranno 1
TAB4.png
Questo numero in esadecimale è 0x27FF. Quindi l'intervallo di indirizzi a cui risponde la ROM0 è 0x2000-0x27FF.
Ripetiamo questo processo per ogni ROM:

Indirizzo di Avvio per la ROM1
TAB5.png
Valore esadecimale per l’indirizzo di avvio della ROM1

Indirizzo finale per la ROM1
TAB6.png
Valore esadecimale per l’indirizzo finale della ROM1


Indirizzo di Avvio per la ROM2
TAB7.png
Valore esadecimale per l’indirizzo di avvio della ROM2

Indirizzo finale per la ROM2
TAB8.png
Valore esadecimale per l’indirizzo finale della ROM3


Indirizzo di Avvio per la ROM3
TAB9.png
Valore esadecimale per l’indirizzo di avvio della ROM3

Indirizzo finale per la ROM3
TAB10.png
Valore esadecimale per l’indirizzo finale della ROM3


Troveremo che le seguenti ROMS rispondono (o sono mappate) sui seguenti indirizzi
TAB11.png
Esercizio: utilizzo del Fluke 9010A e della sonda logica per vedere il funzionamento del circuito di decodifica degli indirizzi
In questo esercizio si utilizzerà il Fluke 9010A per leggere diversi indirizzi dalle varie ROM sulla scheda PCB Centipede. Useremo la sonda logica per notare le modifiche all'uscita di J2 quando vengono selezionati diversi intervalli di memoria.
1. Configurare correttamente il Fluke e la sonda logica (a questo punto dovremmo sapere come farlo correttamente, ma ricordare di accenderere il Fluke sempre prima rispetto alla PCB)
2. Sul Fluke premere il pulsante "Setup", selezionare "More" fino a "Active Line Force" e scegliere "No"
3. Premere "Bus Test" per assicurarsi che il tutto funzioni correttamente.
4. Sul Fluke, premere il pulsante "Read", scegliere l'indirizzo 0x0000 e "Loop". Da ciò che è stato precedentemente illustrato nessuna ROM sarà in questo intervallo così che nessuna delle ROM selezionate dovrebbe essere attiva (stato LOW/Basso), quindi dovrebbero essere tutte in stato High/Alto. (Probabilmente si noterà anche che la ROM3 è in una fase di transizione: per ora ignoriamola)
5. Mettere la punta della sonda logica su ogni ROM scelta, sugli output di J2 (pin 9,10,11,12): notare che sono tutti su HIGH/Alto quindi è disabilitato. Si può anche notare che sulla PCB di Atari Centipede ogni chip ROM ha un proprio punto di test di selezione ROM vicino alla ROM stessa: si consiglia pertanto di effettuare misurazioni qui anziché sui pin di J2 (se si ottengono risultati confusi dalla ROM3, ignoriamola per ora)
6. Ora sul Fluke richiedendo un indirizzo di memoria relativo a ROM0, leggiamo l'indirizzo 0x2000. Non dimenticare di premere il pulsante "Loop" per rendere la lettura continua. Posizionare la punta della sonda logica sulla ROM0 (pin 12 su J2 o utilizzare il punto di test ROM0 vicino a D1).
7. Notare che il pin di selezione ROM0 ha un valore "invertito" per indicare che la ROM0 è abilitata (è abilitata su LOW/Basso)
8. Testare i pin di selezione ROM per ROM1, ROM2. Si nota che sono ancora su High/Alto.
9. Ora sul Fluke richiediamo un indirizzo di memoria relativo alla ROM1: leggiamo l'indirizzo 0x2800. Non dimenticare di premere il pulsante "Loop" per rendere la lettura continua. Posizionare la punta della sonda logica sulla ROM1 (pin 11 su J2 o utilizzare il punto di test ROM1 vicino a E1).
10. Notare che il pin di selezione della ROM1 ha un valore "invertito" per indicare che la ROM0 è abilitata (è abilitata su LOW/Basso)
11. Testare i pin di selezione ROM per ROM0, ROM2. Si nota che sono ancora su High/Alto. Non testare ancora la per ROM3.
12. Provare il pin di selezione ROM per ROM3: questo è un caso un po' più interessante. Sulla PCB di Centipede è effettivamente codificato elettricamente per essere sempre attivo (LOW/Basso), tranne quando dovrebbe essere specificamente spento. Leggendo da un'altra RAM o ROM si spegnerà (stato High/Alto). Se si usa una sonda logica, si vedrà effettivamente una transizione, ma questa transizione è effettivamente in corso, quando la RAM viene letta a 0x0000. Dai valori ottenuti della sonda logica è difficile dirne le differenze: si vede solo la transizione. Se si usa un oscilloscopio si possono vedere le transizioni della linea ROM3 da HIGH/Alto (spento) quando la RAM è LOW/Basso (attivata)
13. Si potrebbe tentare di controllare altri indirizzi per verificare che le ROM siano abilitate o disabilitate come ci si aspetterebbe.

Prova:
Alla luce di quanto illustrato, guardiamo il chip H3 (74LS42) nel circuito di decodifica degli indirizzi. Questo chip è responsabile dell'attivazione di altri componenti come la RAM del playfield, il WATCHDOG e il POKEY (POTentiometer Keyboard Integrated circuit – chip I/O brevettato da Atari ndr). In base a quanto si è appreso, provare a determinare quali indirizzi esadecimali attivano il chip POKEY tramite H3. Usare il Fluke e la sonda logica per verificare i risultati.






Risposta della prova:

Il POKEY è abilitato tramite H3 quando i seguenti bit di indirizzo sono impostati come segue (quando il valore è "-" può essere sia 0 che 1)
TAB12.png
O in valori esadecimali: 0x1000 (quando gli indirizzi da AB0 a AB9 sono 0) fino a 0x10FF (quando i bit di indirizzo da AB0 a AB9 sono 1)



Author: Brian Brzezicki - Copyright 2013 Paladin Group, LLC
www.arcade-cabinets.com
Non hai i permessi necessari per visualizzare i file allegati in questo messaggio.

Romoletto
Gamer
Gamer
Messaggi: 33
Iscritto il: 04/03/2019, 7:47
Reputation: 0

Re: Introduzione alla riparazione schede PCB (in Inglese)

Messaggio da Romoletto » 11/03/2019, 21:15

Sei veramente un grande

Inviato dal mio Mi A1 utilizzando Tapatalk


Avatar utente
Barito
Arcade Maniac
Arcade Maniac
Messaggi: 3672
Iscritto il: 08/12/2015, 19:18
Reputation: 841

Re: Introduzione alla riparazione schede PCB (in Inglese)

Messaggio da Barito » 12/03/2019, 6:36

Mi costringi a cambiare il titolo del topico rimuovendo "in inglese"
Dal ciglio della strada osservo sbraitando i lavori in corso nel mondo arcade...

Avatar utente
saturnshadow
Arcade Maniac
Arcade Maniac
Messaggi: 4470
Iscritto il: 04/05/2016, 16:00
Medaglie: 38
Reputation: 921
Località: Pesaro/Bologna
Nazione: Italy
:
Medaglia d'oro Medaglia d'argento Medaglia di bronzo Medaglia di legno

Re: Introduzione alla riparazione schede PCB (in Inglese)

Messaggio da saturnshadow » 12/03/2019, 9:44

Barito ha scritto:
12/03/2019, 6:36
Mi costringi a cambiare il titolo del topico rimuovendo "in inglese" Immagine
colpa tua che posti messaggi in "lingua morta" (cit.) [rofl.gif]

Avatar utente
saturnshadow
Arcade Maniac
Arcade Maniac
Messaggi: 4470
Iscritto il: 04/05/2016, 16:00
Medaglie: 38
Reputation: 921
Località: Pesaro/Bologna
Nazione: Italy
:
Medaglia d'oro Medaglia d'argento Medaglia di bronzo Medaglia di legno

Introduzione alla riparazione schede PCB (LEZIONE 4)

Messaggio da saturnshadow » 12/03/2019, 11:45

ATTENZIONE! Quanto segue è la semplice traduzione della guida redatta e a cura di Brian Brzezicki presente in versione originale sul sito http://www.arcade-cabinets.com .
Arcademania.eu, lo staff tutto, i traduttori e tutti i collaboratori che hanno partecipato alla stesura del testo seguente non sono in alcun modo coinvolti nei contenuti di quanto illustrato, né hanno collaborato in alcun modo, né hanno alcuna responsabilità su qualsivoglia aspetto.
Per qualunque tipo di informazione, richiesta o ulteriore approfondimento riguardo il materiale presente nella guida i riferimenti sono: l'autore stesso, Brian Brzezicki (persona disponibile e squisita ndr), e la Paladin Group, LLC. che detiene il Copyright del materiale ivi tradotto
Qualunque annotazione e/o variazione sul contenuto i riferimenti sono esclusivamente quelli dell'autore (Brian Brzezicki).
Per modifiche alla traduzione invece, potete inviare liberamente i Vs. suggerimenti al fine di consentire le modifiche del caso


Introduzione alla riparazione di PCB per videogiochi arcade
Copyright 2013 Paladin Group, LLC - Author: Brian Brzezicki
www.arcade-cabinets.com
Special thanks to KLOV users TROXEL and BARITO for reading through this guide, doing the exercises, catching many many typos, and generally making this a better document


NB: questa introduzione è di natura generica, tuttavia negli esempi forniti la scheda descritta è la PCB del gioco Atari Centipede.

Lezione 4: Verifica delle ROM con il Fluke 9010A

Nelle "lezioni 1- 3" abbiamo illustrato le basi dei segnali della CPU e come leggere gli schemi. In questa lezione spiegheremo come usare il Fluke 9010A per verificare le ROM nei circuiti. La verifica delle ROM è uno dei passaggi essenziali per garantire il corretto funzionamento di un sistema poiché le ROM sono l’effettivo codice del gioco utilizzato dalla CPU.
Se ci siamo avvicinati da poco all'arte del collezionismo arcade e abbiamo un gioco che non funziona, chiedendo consigli, il più comune che riceveremo sarà "rimuovere e riposizionare le ROM". Se non si possiede un Fluke 9010A non è una cattiva idea, tuttavia se siamo in possesso dell’apparecchiatura, incoraggiamo a NON farlo. Non è una procedura negativa in teoria, ma concretamente finisce per causare più problemi di quanti ne potrebbe risolvere. Ci sono due inconvenienti con questo procedimento:

1. Fare qualsiasi cosa al volo seguendo la moda del momento è assai pericoloso con schede CPU. A differenza delle schede elettroniche dei monitor o delle schede di alimentazione in cui sostituire i condensatori è una buona idea in quanto gli involucri si degradano e di solito sono la causa della maggior parte dei problemi, le schede CPU sono genericamente digitali anziché analogiche e solitamente non hanno componenti che degradano: hanno componenti che o funzionano o non funzionano.
Inoltre, a differenza delle schede di alimentazione o dei monitor che hanno tracce grosse e spesse e su cui è semplice operare sui componenti come i condensatori, dove è difficile sostituirli senza rimuoverli; le schede CPU sono molto delicate, con piccoli componenti fragili e facilmente danneggiabili.
2. Mentre in passato vedevamo che il problema in una o due schede era una ROM sporca o il suo zoccolo (ROM socket), oggi questo inconveniente sarà su centinaia di schede. Abbiamo notato anche tonnellate di schede in cui qualcuno ha provato a reinserire la ROM e finendo per rompere uno dei pin, piegandoli, inserendo la ROM con i pin all'interno o all'esterno dello zoccolo, inserendo una ROM al contrario, o addirittura inserendo una ROM nello zoccolo sbagliato. Naturalmente tutto ciò causa che il gioco non funzioni.
Se possediamo un Fluke è molto più utile verificare l’eventuale presenza di errori sulle ROM e restringere il campo fino alla ROM effettivamente causa del guasto e poi intraprendere qualsiasi azione si renda necessaria: sia la sostituzione della ROM, che quella dello zoccolo (socket) o qualunque altra operazione debba essere compiuta.


Come testare ROMS con l'aiuto del progetto MAME, della webpage "KID4SWY's (Hamster's Web based ROMident") e il Fluke 9010A:

Se si dispone di un Fluke, è possibile utilizzarlo per leggere internamente ciascuna ROM dalla posizione della CPU ed eseguire un checksum su ciascuna ROM per assicurarsi che i dati siano validi e leggibili correttamente. Questo è molto importante. È possibile rimuovere ciascuna ROM ed eseguire un checksum utilizzando un lettore di ROM per PC tuttavia, da esperienze pregresse, le ROM raramente sono guaste.
Una ROM potrebbe essere letta correttamente dall’esterno ma non essere letta correttamente nel circuito; questo non è dovuto a un chip ROM difettoso, ma a causa del guasto dei chip di supporto. Ci sono molti altri componenti necessari per leggere correttamente la ROM nel circuito e ognuno di questi ha maggiori probabilità di essere guasto rispetto alla ROM stessa. Abbiamo già visto uno di questi circuiti precedentemente: il circuito di decodifica degli indirizzi. Ma ce ne sono molti altri, compresi i chip nel circuito dei dati del bus. Una ROM efficiente non verrà letta correttamente se uno qualsiasi dei chip di supporto è guasto, anche se la ROM stessa è perfettamente funzionante.
Per controllare le ROM in circuito, avrete bisogno del vostro Fluke 9010A e CPU POD. Ma avremo bisogno anche di reperire altre informazioni sul web.

1. La prima cosa di cui avremo bisogno sono copie integre dei dati della ROM del gioco in questione. Non esiste un modo universale per ottenere queste informazioni, ma se si utilizza ad esempio Google, con una ricerca del tipo "game_name MAME ROM" (esempio "Centipede MAME ROM"), probabilmente troveremo tra i risultati un file .zip contenente la ROM del gioco desiderato. Teniamo presente che un determinato gioco potrebbe avere più versioni ROM, perché magari contenevano dei bug perciò i fornitori ne hanno poi rilasciata una nuova versione del codice del gioco.
2. Una volta che abbiamo ottenuto le ROM, decomprimiamo la cartella ROM da qualche parte sul computer in modo da poter accedere ai singoli file della ROM.
3. Ora andiamo alla pagina RomIdent di KI4SWY (http://romident.coinopflorida.com/): per ogni ROM presente nel file, carica l'immagine della ROM e copia "ROM name", " SHA1 checksum" e "FLUKE SIG"
TAB1.png
Altre informazioni utili riguardo questo file
TAB2.png
4. Usare un editor di testo (notepad, WordPad, MS Word o Vim – Vi IMproved text editor - se sei davvero figo) per copiare il nome della ROM, il FLUKE SIG e il CHECKSUM di ciascun file della ROM.
5. Scarica e installa il MAME (http://mamedev.org/).

Cos’è il MAME?
MAME è, letteralmente, Multiple Arcade Machine Emulator. È un programma che emula l'hardware reale dei sistemi arcade e consente di giocare utilizzando il codice di gioco reale. MAME è un progetto (creato dall’italiano Nicola Samoria) eccellente e fa un lavoro egregio rendendo i vecchi giochi accessibili e giocabili a chiunque. Tuttavia, l'obiettivo del progetto non è prettamente ludico ma di documentare e simulare l'hardware reale, che spesso non è più reperibile facilmente. La documentazione fornita dal MAME e la possibilità di vedere come funziona l'hardware è un ottimo strumento per riparare l'hardware vero e proprio.


6. Creiamo un foglio di calcolo simile al seguente, assicurandoci di avere abbastanza linee per ogni file della ROM
TAB3.png
7. Compiliamo il foglio con il nome ROM, lo SHA1 e FLUKE SIG grazie ai dati generati dalla pagina RomIdent di KI4SWY.
TAB4.png
8. Usiamo il MAME per stampare le informazioni del gioco, ad esempio digitando:

mameXX.exe gamename -listxml

Esempio:
C:\Users\student\Downloads>mame64.exe centiped –listxml

NB: se non si conosce il nome del gioco che usa MAME, digitare solo le prime lettere del nome del gioco e MAME fornirà un elenco di giochi tra cui potrebbe esserci il titolo cercato
PIC1.png
9. Una volta eseguito correttamente "mame64.exe game_name -listxml", si otterranno molti output. Scorriamo indietro fino a trovare le righe che iniziano con le lettere "<rom name ="
PIC2.png
10. Dovremmo notare alcune cose qui:
• Il nome della ROM come lo abbiamo trovato nel file .zip della ROM, la dimensione della ROM, il SHA1 checksum, l'offset e la regione
11. Prendiamo il foglio di calcolo creato precedentemente, per ogni ROM nella lista, trova la linea ROM corrispondente all'output -listxml e verifica le corrispondenze del SHA1 checksum (di solito si controlla solo i primi numeri e gli ultimi caratteri per assicurarsi che corrispondano). Se i SHA1 checksum non corrispondono, bisogna assicurarsi che la ROM che stiamo osservando sia la versione corretta.
TAB5.png
12. A questo punto per ogni ROM presente nel foglio di calcolo, trovare la sezione "region" dall'output -listxml e se c’è la dicitura "main cpu", inseriamo una X nella colonna Main cpu corrispondente
TAB6.png
13. Ora per ogni ROM nel foglio di calcolo, trovare la riga "offset" dall'output -listxml e compilare la sezione "Start". Possiamo saltare le ROM che non includono Main cpu X, infatti verranno poi rimosse dalla tabella.
TAB7.png
14. Adesso per ogni ROM trovare il campo “Size” dell'output -listxml, questo è espresso in decimali (il sistema numerico che è usato normalmente per la maggiore) e sarà necessario trasformarlo in un valore esadecimale (HEX). Possiamo usare la calcolatrice sul PC per trasformare i valori in esadecimali. Alcuni valori comuni sono:
TAB8.png
Riportiamo questi valori esadecimali nella colonna “Size”
TAB9.png
15. a questo punto per ogni riga in alto aggiungi la colonna "Size" più "Start" e sottraiamo 1. Inseriamo il risultato ottenuto nella colonna "End". Ricordiamo che si tratta di valori esadecimali perciò questi non si sommano come i normali numeri decimali. Se non sappiamo come fare addizioni in sistema esadecimale, la calcolatrice integrata in MS Windows o in Linux (gnome-calculator) hanno una modalità di calcolo che può farlo per noi. Assicuriamoci solo di passare alla modalità programmazione e impostare poi la funzione esadecimale
TAB10.png
16. Installiamo correttamente il Fluke e la sonda logica (dovremmo sapere come farlo correttamente adesso, ma ricordiamo di accendere sempre il Fluke prima della PCB – nel nostro esempio quella di Centipede)
17. Sul Fluke premere il pulsante "Setup", selezionare "More" fino all'opzione "Active Line Force", scegliere "No"
18. Premere "Bus Test" per assicurarsi che il tutto funzioni correttamente
19. Per ogni riga della tabella della ROM, provare la gamma ROM con il Fluke
• Premere "ROM"
• Quando richiede un intervallo iniziale, immettere il valore nella colonna "Start"
• Quando richiede un intervallo finale, immettere il valore nella colonna "END"
• Quando richiede un valore “SIG”, inserire il valore nella colonna "FLUKE"
20. Per ogni intervallo testato, il Fluke dovrebbe restituire un risultato "OK".

Risoluzione dei problemi delle ROM:
• Testare ogni intervallo della ROM, anche se il primo test della ROM risulta negativo.
• Se tutte le ROM non funzionano, estrarre una delle ROM e utilizzare un lettore ROM per copiarne il contenuto in un file; utilizzare la pagina RomIdent di KI4SWY per verificare che la ROM sia integra e la versione quella corretta. È possibile che il gioco in nostro possesso sia una versione diversa dal codice ROM rispetto a ciò che abbiamo testato originariamente. Se così fosse, bisogna tentare la ricerca del file della ROM per la release del gioco posseduta.
• Se tutte le ROM sono guaste, ma è una verifica da effettuare in un programmatore di ROM, probabilmente si ha un problema con il circuito di decodifica dell'indirizzo o con il circuito del bus dati. Usiamo quanto appreso nella "Lezione 3" per assicurarsi che le ROM siano tutte abilitate correttamente.
• Se una delle ROM non funziona, con riferimento alla "Lezione 3", bisogna assicurarsi che la ROM venga abilitata correttamente e che nessun’altra ROM sia abilitata contemporaneamente. Se l'abilitazione della ROM funziona correttamente, è probabile che un chip ROM sia guasto: in questo caso procedere alla sostituzione. Se non siamo in grado di scrivere una ROM, prendiamo in considerazione HobbyRoms.com (http://www.hobbyroms.com) che può scrivere ROM a pagamento a costi contenuti.
Non hai i permessi necessari per visualizzare i file allegati in questo messaggio.

Romoletto
Gamer
Gamer
Messaggi: 33
Iscritto il: 04/03/2019, 7:47
Reputation: 0

Re: Introduzione alla riparazione schede PCB

Messaggio da Romoletto » 12/03/2019, 14:06

Non mi era mai successo.... Non riesco a starti dietro spaziale

Inviato dal mio Mi A1 utilizzando Tapatalk


Avatar utente
Gibranx
Arcade Maniac
Arcade Maniac
Messaggi: 2748
Iscritto il: 26/02/2018, 12:06
Medaglie: 6
Reputation: 659
Località: Vinavilandia
Nazione: Alaska
:
Medaglia d'oro Medaglia d'argento Medaglia di legno

Re: Introduzione alla riparazione schede PCB

Messaggio da Gibranx » 13/03/2019, 11:25

È un lavoro di traduzione, credo, tra i più importanti in assoluto, se non il più importante, certamente.
Gli italiani di oggi e di domani te ne saranno grati ad aeternum.
"Piegando un foglio di carta a metà per 103 volte, raggiungeremmo uno spessore di quasi 107 miliardi di anni luce, oltre il diametro dell’Universo conosciuto".

Avatar utente
saturnshadow
Arcade Maniac
Arcade Maniac
Messaggi: 4470
Iscritto il: 04/05/2016, 16:00
Medaglie: 38
Reputation: 921
Località: Pesaro/Bologna
Nazione: Italy
:
Medaglia d'oro Medaglia d'argento Medaglia di bronzo Medaglia di legno

Introduzione alla riparazione schede PCB (LEZIONE 5)

Messaggio da saturnshadow » 13/03/2019, 14:35

ATTENZIONE! Quanto segue è la semplice traduzione della guida redatta e a cura di Brian Brzezicki presente in versione originale sul sito http://www.arcade-cabinets.com .
Arcademania.eu, lo staff tutto, i traduttori e tutti i collaboratori che hanno partecipato alla stesura del testo seguente non sono in alcun modo coinvolti nei contenuti di quanto illustrato, né hanno collaborato in alcun modo, né hanno alcuna responsabilità su qualsivoglia aspetto.
Per qualunque tipo di informazione, richiesta o ulteriore approfondimento riguardo il materiale presente nella guida i riferimenti sono: l'autore stesso, Brian Brzezicki (persona disponibile e squisita ndr), e la Paladin Group, LLC. che detiene il Copyright del materiale ivi tradotto
Qualunque annotazione e/o variazione sul contenuto i riferimenti sono esclusivamente quelli dell'autore (Brian Brzezicki).
Per modifiche alla traduzione invece, potete inviare liberamente i Vs. suggerimenti al fine di consentire le modifiche del caso


Introduzione alla riparazione di PCB per videogiochi arcade
Copyright 2013 Paladin Group, LLC - Author: Brian Brzezicki
www.arcade-cabinets.com
Special thanks to KLOV users TROXEL and BARITO for reading through this guide, doing the exercises, catching many many typos, and generally making this a better document

NB: questa introduzione è di natura generica, tuttavia negli esempi forniti la scheda descritta è la PCB del gioco Atari Centipede.

Lezione 5: Verifica della RAM con il Fluke 9010A

Random Access Memory:
Uno dei guasti più frequenti che si verificano sulle PCB Arcade sono gli errori sulla RAM. Questi malfunzionamenti porranno delle serie limitazioni alle schede. Senza una RAM funzionante, le CPU presenti sulla scheda non saranno in grado di operare (spesso non riescono nemmeno a eseguire elementari codici di base per un’autodiagnosi). Sebbene sia necessario verificare la RAM, in realtà è uno dei primi componenti da provare, perché se si ha un buon clock, reset, CPU e RAM spesso è sufficiente entrare nel self-test delle schede di gioco, il che aiuterà a restringere il campo ad altri problemi come, ad esempio, ROM non valide ecc. Tuttavia, ai fini dell'apprendimento, ci sono molti concetti da comprendere prima di provare a testare la RAM, e questa è la ragione per cui viene illustrata per ultima.

Comprendere la mappatura della memoria
Se si dispone di un Fluke, è possibile utilizzarlo per leggere e scrivere sulla RAM ed eseguire test automatici suq uesta. Tuttavia per testare le RAM bisogna dapprima conoscere l'intervallo di memoria che contiene la RAM (esattamente come si ha bisogno di conoscere l'intervallo di memoria che corrisponde alle ROM). Come illustrato nel capitolo 4, la tabella dei diversi indirizzi è correlata ai diversi chip e/o circuiti (RAM, ROM, ingressi pulsante ecc.): questa è chiamata "mappatura della memoria" (memory map).

Ci sono alcuni modi per determinare la mappatura della memoria:
1.Leggere gli schemi e determinare per ciascun chip RAM, quale combinazione di bit di indirizzo deve essere su
"ON" affinché la RAM sia abilitata. Dovremmo essere sempre in grado di eseguire questo punto se in possesso degli schemi, tuttavia potrebbe essere necessario del tempo per eseguirlo ed è semplice commettere
errori.
2. Spesso gli schemi mostrano gli intervalli di RAM (i giochi Atari sono assai buoni su questo tema). Di seguito viene mostrata la mappa di memoria a titolo di esempio degli schemi di una PCB Atari Centipede. Si noti
che ha 4 colonne:

a. Indirizzo esadecimale: l'intervallo di indirizzi a cui si riferisce questa riga.
b. R/W (Read/Write): se l'intervallo può essere letto, scritto o entrambi.
c. Data: mostra quanti bit di memoria il sistema utilizza in questo intervallo di memoria. Ogni indirizzo di memoria contiene quasi sempre 8 bit di dati, tuttavia alcune parti del circuito non utilizzano
necessariamente tutti i bit forniti dalla RAM. Questa colonna mostra quali bit sono usati nelle diverse posizioni di memoria. Notare che il "Motion Graphics Color Range" (0x0FF0 - 0x0FFF) che determina i
colori degli sprite disegnati sullo schermo, utilizza solo 6 degli 8 bit disponibili.
d. Function: una breve descrizione della funzione di questo intervallo di indirizzi. Come si può vedere nella mappatura della memoria, gli indirizzi 0x0000 - 0x03FF sono i giochi che funzionano nella RAM. I
DIP Switch sono mappati agli indirizzi 0x0800 e 0x801 con ciascun bit che rappresenta uno degli 8 switch su ogni DIP, e l'intervallo 0x2000 - 0x3FFF è il codice del gioco (ROMS)
PIC1.png
3. Se si estrae il codice sorgente dal progetto MAME e si trova il file del driver per il gioco in questione, spesso gli sviluppatori lo documenteranno.
PIC2.png
Non è importante come reperire la mappatura della memoria, purché la si ottenga. La memory map è fondamentale in quanto espone tutti gli input e gli output del sistema. Possiamo vedere dove si trova la RAM, dove sono le ROM, a quali indirizzi sono lo stato dei pulsanti e dei joystick, etc.
Possiamo anche vedere quali indirizzi possono attivare determinati suoni e se il gioco utilizza circuiti separati (discreti) per ogni suono. Ai fini di questa lezione ci occupiamo solo di reperire gli intervalli di memoria associati alla RAM. Per i nostri scopi, questi sono l'intervallo per la RAM del sistema principale (RAM) e la RAM utilizzata per interfacciarsi con l'hardware grafico per disegnare le immagini sullo schermo (RAM video)
TAB1.png
NB: nella mappatura della memoria soprastante, si può osservare che gli indirizzi 0x07F0 - 0x07FF non hanno una "D" nelle 2 colonne più a sinistra nella tabella. Ciò significa che quei 2 bit non vengono effettivamente utilizzati e questo comporta sovente la necessità di escludere intervalli che non utilizzano tutti gli 8 bit dal test della RAM, in quanto potrebbe provocare risultati confusi sul Fluke.

La RAM più importante è la RAM del sistema principale, solitamente chiamata "RAM", "RAM di lavoro", "RAM scratchpad" o talvolta "zero page RAM". La RAM che contiene uno di questi identificativi è la più importante in quanto è questa RAM che la CPU utilizza direttamente per eseguire calcoli, ed è fondamentale per le operazioni essenziali: senza queste RAM completamente funzionanti, il gioco probabilmente non si avvierà affatto, neanche in modalità test. La "RAM video" è meno importante perchè viene solitamente scritta quando il sistema vuole disegnare le immagini sullo schermo.
Solitamente non è necessaria per accedere alle modalità "test" (o di diagnostica) o per eseguire il codice principale del gioco, pertanto, nel tentativo di risoluzione di eventuali problemi, si procede testando dapprima la RAM del sistema principale.
Ad esempio, se sulla nostra PCB Atari Centipede oggetto di controllo, il clock, la CPU e le RAM 2114 funzionano tutti correttamente, generalmente è possibile eseguire il self test diagnostico e il sistema potrà comunicarci quale RAM video ROM non funzionano.
Il “test mode” su molte schede fornisce diverse analisi diagnostiche e in genere consente anche di visualizzare gli sprite del gioco (grafica) e/o riprodurne i suoni, ecc.
Utilizzando il self test del sistema si potrà così risparmiare molto tempo nella riparazione di una scheda gioco.

Esercizio:
Verificando gli schemi degli indirizzi RAM 0x0000 - 0x03FF che corrispondono alle RAM 2114 RAM su H2 e F2 sulla PCB Atari Centipede. Verifichiamo gli schemi della scheda e possiamo notare come quando i bit all’indirizzi di bus 10, 11 e 12 sono tutti 0 allora il 74LS42 su H3 attiva NOT(RAM0) qual è la linea di controllo che attiva il chip select sulle RAM a H2 e F2?
PIC3.png

Riusciamo a verificare l’intervallo minimo e massimo dove AB12, AB11, AB10 sono gli intervalli esadecimali 0x0000-0x03FF?

TAB2.png
X significa “non considerare, il bit può essere 0 o 1”

Test degli intervalli RAM con il Fluke:
1. Configuriamo correttamente il Fluke e la sonda logica (ricordiamo ancora una volta che è necessario accendere Fluke prima della PCB)
2. Sul Fluke premere il pulsante "Setup", selezionare "More" fino all’opzione "Active Line Force" e scegliere "No"
3. Premere "Bus Test" per assicurarsi che il tutto funzioni correttamente
4. Scegliere l’opzione "RAM LONG" che eseguirà un test approfondito della RAM (è “LONG” poiché più completo e richiederà tempistiche lunghe per essere ultimato (“RAM Short” esegue test più rapidi ma meno accurati).
• Quando richiederà un intervallo iniziale, immettere il valore 0x0000
• Quando richiederà un intervallo finale, inserire il valore 0x03FF
• Lasciar completare il test: presumibilmente durerà circa 10 minuti nell’esaminare l'intervallo 0x0000 - 0x03FF
Se l’analisi della RAM dà esito positivo, il Fluke restituirà il messaggio "OK"; se, al contrario, verranno riscontrati errori si otterrà un messaggio di errore "BTS" o "DCD" (esistono anche altri tipi di messaggi di errore, ma sono molto meno comuni. Nel caso fare riferimento al Manuale Utente del Fluke 9010A al Capitolo 4H per ulteriori informazioni)

Spiegazione dell’errore RAM "BTS" dopo il test con il Fluke.
Il primo e più semplice errore di RAM che potremmo ricevere è un errore "BTS", che è riportato come
R/W ERR @ aaaa BTS xx - LOOP?
In questo caso, aaaa è l'indirizzo di memoria, in valore esadecimale, in cui si è verificato l’errore e xx è un numero esadecimale (di solito 2 cifre) che descrive i bit a quell'indirizzo che il Fluke non è stato in grado di leggere o scrivere. Per esempio se abbiamo ricevuto l'errore:
R/W ERR @ 0000 BTS 08 - LOOP
significa che il Fluke ha riscontrato un errore all'indirizzo 0x0000 in cui non è stato in grado di impostare un valore al bit 08. In questo caso 08 è un numero esadecimale: quando viene convertito in codice binario ha un "1" in tutte le posizioni di bit che non erano scrivibili.
TAB3.png
Qui il Fluke ha indicato che il quarto bit da destra (spesso chiamato linea D3) sembra non funzionare. A questo punto bisognerà cercare quale chip corrisponde a DB3 sulla RAM, nella posizione 0x0000.
Nel caso di una PCB Atari Centipede, l'indirizzo 0x0000 corrisponde a entrambi i chip RAM 2114 a H2 e F2 (ogni 2114 contiene 4 degli 8 bit memorizzati a quell'indirizzo). Tuttavia qual è il chip ha la linea dati associata a DB3? Si può verificare negli schemi che DB3 corrisponde al pin 11 sul 2114 su H2, quindi H2 sarà il chip che è responsabile della linea 3 del bus dati proveniente dalla RAM.
PIC4.png
Se si verifica un errore BTS 08 su una scheda Atari Centipede, significa che si è verificato un errore con i dati in lettura/scrittura sul pin 11 della 2114 RAM su H2. Probabilmente rappresenterà una certezza estrarre semplicemente la RAM e procedere alla sua sostituzione, tuttavia bisogna tener presente che potrebbe non essere la RAM stessa ad esser guasta, ma forse potrebbe esser presente un’interruzione sul percorso dalla CPU al pin 11 su H2. O, ancora, potrebbe essere presente una saldatura che collega questa linea con qualcos'altro. Se seguiamo il percorso di D7 dalla CPU al pin 11 su H2, noteremo che passa attraverso un 74LS245 a E2, il segnale arriva attraverso il pin 15 sull'LS245 e poi esce dal buffer sul pin 5 diretto al pin 11 di H2. Forse il LS245 @ E2 non è integro. Esaminare il tracciato del circuito sugli schemi e determinare quali chip potrebbero effettivamente causare gli errori RAM che si riscontrano, è un’importante competenza . È simile a qualsiasi altro pensiero analitico determinare quali sistemi potrebbero essere la causa degli errori, provare a ipotizzare quali chip saranno i probabili candidati causa dei guasti e quali non lo saranno. È possibile creare "test" per escludere la possibilità i chip siano guasti. Ad esempio si può notare che E2 non è utilizzato solo nei circuiti RAM, ma è anche sul percorso dei circuiti ROM. Se E2 ha un problema, dovrebbe provocare anche inconvenienti ai dati letti dalle ROM. Perciò, se compiendo un test sulle ROM, otterremo un risultato del test diagnostico positivo è altamente improbabile che E2 sia il problema (anche se non impossibile al 100%)
PIC5.png
NB: D3 passa dalla CPU al pin 15 del 74LS245 @ E2, quindi torna indietro al pin 5 del 74LS245 @ E2 prima di passare alla RAM 2114 e ad altre posizioni, come ad esempio il circuito della ROM.


Oltre a LS245 @ E2 ci sono anche altri chip che si connettono a DB3. Ad esempio i chip ROM si connettono a DB3, i chip RAM video si connettono anch’essi a DB3, così come i circuiti dei DIP switch, ecc. Qualunque componente di questi circuiti potrebbe influenzare il test diagnostico se presentano inconvenienti. Detto questo, è necessario trovare sempre la soluzione più semplice. Se si riesce a restringere il problema ai dati non validi su DB3 durante il test RAM, si procederà a sostituire la RAM in questione (2114 @ H2). Se l’inconveniente si verifica anche dopo aver sostituito la RAM, bisognerà verificare altri punti in cui un chip difettoso potrebbe causare "interferenze" a DB3 facendolo apparire invece come un problema di RAM.

Spiegazione dell’errore RAM "DCD" dopo il test con il Fluke.
L'altro errore comune è l'errore DCD. L'errore DCD viene restituito quando il Fluke rileva che c'è un errore nel circuito di indirizzamento ovvero che sembra ci siano due indirizzi che stanno tentando di scrivere nello stesso posto.
Immaginiamo di avere una RAM con indirizzo da 0 a 1023. Ora consideriamo l’ipotesi di scrivere 0 su tutti gli indirizzi. Pertanto inizieremo a scrivere il numero esadecimale 0xFF su tutti gli indirizzi. Iniziamo con lo scrivere il valore 0xFF all'indirizzo 0x0000. Ciò che il Fluke farà nei test della RAM è tentare di scrivere il valore 0xFF all’indirizzo successivo (indirizzo 1).
La prima operazione del Fluke sarà la lettura del contenuto all'indirizzo 1 per assicurarsi che il valore sia ancora 0x00. Se all'indirizzo 1 non è 0 ma 0xFF, il Fluke realizzerà che scrivere sull'indirizzo 0 ha causato anche un cambiamento all'indirizzo 1. Questo è dovuto in genere a un guasto nel circuito di decodifica degli indirizzi direttamente sui chip RAM, e la risoluzione del problema in genere è la sostituzione della RAM che corrisponde all’"indirizzo scorretto". Tuttavia è anche possibile (ma meno probabile) che l'errore potrebbe essere causato dal circuito del decodificatore degli indirizzi della scheda PCB, ma questo evento è meno probabile.
Quando il Fluke rileva un errore DCD, fornirà un messaggio di errore simile al seguente:
RAM DCD ERR @ address BIT x- LOOP

L'indirizzo visualizzato è l'indirizzo su cui il Fluke ha tentato di scrivere e la X descrive e indirizza i bit che quando sono sia 0 che 1 agisce allo stesso modo (oppure ci sono due indirizzi che differiscono di un bit per "mappare" la stessa posizione di memoria).
A titolo di esempio, nella situazione precedentemente illustrata, il Fluke potrebbe restituirci un messaggio del tipo
RAM DCD ERR @ 0000 BIT 0-LOOP

Per comprendere questo errore, dobbiamo prima trasformare l'indirizzo in codice binario
0x0000 = 0 0 0 0 0 0 0 0

Poi dobbiamo evidenziare il bit che si è rivelato errato, in questo caso il bit "0"
0x0000 = 0 0 0 0 0 0 0 0

Ciò significa che quando il Fluke scrive all'indirizzo 0000 0000 (0x00) oppure 0000 0001 (0x01) sta scrivendo nello stesso posto. Un altro esempio è preso direttamente dal manuale utente del Fluke 9010A.

Se ci viene restituito un messaggio di errore
RAM DCD ERR @ 0FE0 BIT 4-LOOP

significa che il Fluke ha rilevato che la scrittura compiuta su 0x0FE0 o su 0x0FF0 è stata effettuata nello stesso posto. Significa che se scriviamo il numero 14 su 0x0FE0 e poi abbiamo esaminato l’indirizzo 0x0FF0, avremmo letto anche qui il valore 14.
0x0FE0 = 0000 1111 1110 0000
0x0FF0 = 0000 1111 1111 0000

Questo errore solitamente è causato dalla RAM stessa, quindi il modo più semplice per correggere questo errore è trovare il chip RAM che dovrebbe contenere l'indirizzo evidenziato dal Fluke (come 0x0FE0) e sostituire quel/i componente/i.

C’è da dire però che alcune schede CPU utilizzano più chip RAM per creare un dato indirizzo, pertanto potrebbe non essere così semplice procedere come potrebbe sembrare. Se consideriamo i 2 chip 2114 RAM e che contengono ciascuno solo 4 bit degli 8 complessivi, vuol dire che per ogni indirizzo ci sono 2 chip 2114 e che ognuno di essi contiene 4 degli 8 bit di memoria totali. Esistono tecniche per provare a determinare quale chip è effettivamente danneggiato, ma per i meno esperti spesso è più semplice procedere alla sostituzione di tutti i chip che corrispondono a quel dato indirizzo.
Non hai i permessi necessari per visualizzare i file allegati in questo messaggio.

Romoletto
Gamer
Gamer
Messaggi: 33
Iscritto il: 04/03/2019, 7:47
Reputation: 0

Re: Introduzione alla riparazione schede PCB (in Inglese)

Messaggio da Romoletto » 13/03/2019, 18:17

saturnshadow ha scritto:
Romoletto ha scritto:
07/03/2019, 17:23
Ammazza, non ci credo, sei il traduttore più veloce della Sala
Tempo al tempo, che sono 7 capitoli. Questo è solo il primo [sweatdrop.gif]
Ne riparliamo quando arriverò almeno al quinto [joint.gif]
Ora possiamo riparlarne.... Sei un mito, Punto. ImmagineImmagineImmagineImmagineImmagineImmagine

Inviato dal mio Mi A1 utilizzando Tapatalk


Avatar utente
saturnshadow
Arcade Maniac
Arcade Maniac
Messaggi: 4470
Iscritto il: 04/05/2016, 16:00
Medaglie: 38
Reputation: 921
Località: Pesaro/Bologna
Nazione: Italy
:
Medaglia d'oro Medaglia d'argento Medaglia di bronzo Medaglia di legno

Re: Introduzione alla riparazione schede PCB (in Inglese)

Messaggio da saturnshadow » 14/03/2019, 11:16

Romoletto ha scritto:
13/03/2019, 18:17
Ora possiamo riparlarne.... Sei un mito, Punto. ImmagineImmagineImmagineImmagineImmagineImmagine
troppo buono!
ma mi credi che la parte più complessa non è la traduzione, quanto l'adattamento?
purtroppo ci sono nozioni strettamente tecniche che non mi è possibile verificare, quindi cerco di renderle al meglio con un linguaggio chiaro inoltre si nota che è stato scritto da un ingegnere (o affine).
il che significa lacune nella redazione di uno scritto con scopo divulgativo (errori ortografici e grammaticali inclusi [sweatdrop.gif] )
ma bando alle ciance e andiamo alla prossima (penultima! [flame2.gif] ) lezione [book6.gif]

Avatar utente
saturnshadow
Arcade Maniac
Arcade Maniac
Messaggi: 4470
Iscritto il: 04/05/2016, 16:00
Medaglie: 38
Reputation: 921
Località: Pesaro/Bologna
Nazione: Italy
:
Medaglia d'oro Medaglia d'argento Medaglia di bronzo Medaglia di legno

Introduzione alla riparazione schede PCB (LEZIONE 6)

Messaggio da saturnshadow » 14/03/2019, 11:24

ATTENZIONE! Quanto segue è la semplice traduzione della guida redatta e a cura di Brian Brzezicki presente in versione originale sul sito http://www.arcade-cabinets.com .
Arcademania.eu, lo staff tutto, i traduttori e tutti i collaboratori che hanno partecipato alla stesura del testo seguente non sono in alcun modo coinvolti nei contenuti di quanto illustrato, né hanno collaborato in alcun modo, né hanno alcuna responsabilità su qualsivoglia aspetto.
Per qualunque tipo di informazione, richiesta o ulteriore approfondimento riguardo il materiale presente nella guida i riferimenti sono: l'autore stesso, Brian Brzezicki (persona disponibile e squisita ndr), e la Paladin Group, LLC. che detiene il Copyright del materiale ivi tradotto
Qualunque annotazione e/o variazione sul contenuto i riferimenti sono esclusivamente quelli dell'autore (Brian Brzezicki).
Per modifiche alla traduzione invece, potete inviare liberamente i Vs. suggerimenti al fine di consentire le modifiche del caso


Introduzione alla riparazione di PCB per videogiochi arcade
Copyright 2013 Paladin Group, LLC - Author: Brian Brzezicki
www.arcade-cabinets.com
Special thanks to KLOV users TROXEL and BARITO for reading through this guide, doing the exercises, catching many many typos, and generally making this a better document

NB: questa introduzione è di natura generica, tuttavia negli esempi forniti la scheda descritta è la PCB del gioco Atari Centipede.

Lezione 6: Verifica del segnale Video

Poiché il Fluke 9010A può scrivere sulle memorie e l'hardware video legge la memoria per le istruzioni su come disegnare e animare lo schermo, è possibile utilizzare il 9010A per scrivere sulla memoria video e far sì che i circuiti video disegnino ciò che si desidera. Ciò consente di attivare i circuiti video in modo controllato e verificare i circuiti video.

Verifica delle immagini a schermo (i Tile):

La maggior parte delle PCB arcade ha speciali circuiti che disegnano le immagini sullo schermo leggendo i dati dalla memoria video e operando su di essa. Con la conoscenza del layout della memoria (la mappatura della memoria e gli schemi), è possibile utilizzare il Fluke 9010A per verificare i circuiti video per scrivere i valori corretti in memoria in caso di guasto. Ad esempio, prendiamo in considerazione nuovamente la mappatura della PCB di Centipede.
PIC1.png
L'hardware video di Centipede è in grado di disegnare sullo schermo singole immagini predefinite (le immagini sono definite nelle ROM video). Chiamiamo queste immagini TILE (letteralmente “tessere”). Centipede ha 32 tile dall'alto al basso e 30 tile da sinistra a destra per un totale di 32x30 = 960 tile. Ogni immagine distinta (tile) che può essere disegnata, ha un identificatore univoco compreso nell’intervallo 0x00 - 0xFF (1 byte), e ogni posizione in cui un tile può essere disegnato ha una posizione in memoria ben distinta.
Su Centipede ci sono pertanto 960 posizioni di memoria nella RAM dedicata al playfield, nell'intervallo 0x0400 - 0x07BF. Il modo in cui compare un tile sullo schermo è dovuto alla scrittura dell'identificativo dell'immagine sull'indirizzo di memoria corrispondente al tile che si desidera disegnare nell'intervallo di RAM del playfield.
Le posizioni dei tile partono dal valore 0x0400 che è l'angolo in basso a sinistra dello schermo (vedi lettera A nell'immagine sottostante) e aumentando di numero, procedendo in linea retta sullo schermo, fino al valore 0x041F (vedi lettera C). La successiva fila di tile, dal valore 0x0420, ricomincia dal fondo dello schermo nella colonna successiva accanto (vedi lettera D).
PIC2.png
È possibile utilizzare il Fluke 9010A per scrivere dei dati sulla RAM video per verificare che:
• I circuiti video stanno leggendo correttamente i tile dalla memoria della RAM video
• I circuiti video stanno visualizzando correttamente i tile
Per fare ciò basta usare il pulsante di scrittura del Fluke 9010A per memorizzare un identificatore di tile nella posizione della memoria video che corrisponde alla posizione in cui si desidera venga disegnato.

Esercizio 1: Scrivere i dati dei tile nella memoria video
1.Impostare il Fluke correttamente (ricordiamo ancora una volta di accendere il Fluke sempre prima rispetto la PCB)
2. Sul Fluke premere il pulsante "Setup", selezionare "More" fino all’opzione "Active Line Force", quindi scegliere "No"
3. Premere "Bus Test" per assicurarsi che il tutto funzioni correttamente
4. Premere il tasto "Write"; quando viene richiesto su quale indirizzo scrivere, scegliere l'indirizzo corrispondente al tile che si desidera compilare. In questo caso, scriviamo qualcosa su un tile approssimativamente al centro dello schermo, utilizzando l'indirizzo 0x5CF
5. Quando viene richiesto il valore da scrivere, scegliamo FF. A questo punto dovremmo notare l’immagine di un fungo capovolto disegnato al centro dello schermo.
PIC3.png
6. A questo punto possiamo anche provare a giocare con i diversi indirizzi compresi tra 0x0400 e 0x07EF. Potremmo tentare anche la scrittura del nostro nome sullo schermo, in linea retta in senso orizzontale.

Verifica degli Sprite sullo schermo:

Così come i tile possono essere disegnati sullo schermo, la maggior parte dei vecchi giochi arcade hanno speciali hardware video dedicati in grado di disegnare oggetti in movimento (sprite) sullo schermo. La PCB di Centipede presa come esempio non è diversa: l'hardware della PCB di Centipede può disegnare fino a 16 diversi sprite contemporaneamente sullo schermo. Esistono pertanto 16 diverse posizioni in memoria per gli sprite in cui è possibile definire quale deve essere visualizzato. Inoltre, esistono posizioni di memoria per ciascun sprite che definiscono, in pixel, la posizione verticale, posizione orizzontale e con quali colori.
Diamo un'occhiata di nuovo alla mappatura della memoria:
PIC4.png
Gli identificatori degli sprite sono scritti nei 16 indirizzi tra 0x07C0 e 0x07CF. Come i tile, ogni posizione contiene l'identificatore univoco che indica al sistema quale sprite va disegnato a schermo. Proviamo, ad esempio, a comunicare al sistema la volontà di disegnare il ragno di Centipede con le zampe alzate. Per fare questo, dovremmo:
• Scrivere il valore 0x14 nella posizione 0x07C0, che definisce lo sprite # 1 in cui è presente l'immagine del ragno con le zampe alzate.
• Dovremo successivamente riempire la corrispondente posizione verticale dello sprite # 1. Questo è l’indirizzo della memoria dell'oggetto movimento sul verticale (0x07D0). Possiamo porlo al centro verticalmente con indicando il valore di 0x80
• A questo punto dovremo quindi riempire la corrispondente posizione orizzontale dello sprite # 1 Questo è l’indirizzo della memoria dell'oggetto movimento sull’orizzontale (0x07E0). Lasciamo l’immagine al centro in orizzontale con il valore 0x80
• Infine dovremo indicare il colore corrispondente allo sprite # 1. Di seguito l’indirizzo della memoria del colore degli oggetti di movimento (0x07F0). Per questo esempio utilizziamo il valore 0xFF.

Per rendere il tutto più chiaro, possiamo creare una tabella per determinare in quali posizioni scrivere i valori.
TAB1.png
Esercizio 2: disegnare sprite nella memoria video.
1.Impostare il Fluke correttamente (accendere sempre il Fluke prima rispetto la PCB)
2. Sul Fluke premere il pulsante "Setup", selezionare "More" fino all’opzione "Active Line Force", quindi scegliere "No"
3. Premere "Bus Test" per assicurarsi che il tutto funzioni correttamente
4. Premere il tasto "Write"; quando viene richiesto quale indirizzo scrivere, scegliere 0x07C0 (identificativo dello sprite #1) e scrivere il valore 0x14 (ragno con le zampe in alto)
5. Premere il tasto "Write"; quando viene richiesto quale indirizzo scrivere, scegliere 0x07D0 (posizione verticale dello sprite #1) indicando il valore 0x80
6. Premere il tasto "Write"; quando viene richiesto quale indirizzo scrivere, scegliere 0x07E0 (posizione orizzontale sprite #1) e indicare il valore 0x80.
7. Premere il tasto "Write"; quando viene richiesto quale indirizzo scrivere, scegliere 0x07F0 (colore dello sprite #1) e impostare il valore 0xFF
Se tutto funziona correttamente dovremmo visualizzare nel centro dello schermo un ragno come da immagine sottostante.
PIC5.png
Adesso ci è possibile fare esperimenti con valori diversi in posizioni sullo schermo differenti. Ricordiamo che ogni sprite deve avere compilati il suo identificatore, la corrispondente posizione su orizzontale e verticale (in pixel) e l’indicazione del colore.

È possibile utilizzare queste tecniche anche per testare e attivare i circuiti video quando dovremo risolvere eventuali problemi video sulle PCB dei giochi.
Non hai i permessi necessari per visualizzare i file allegati in questo messaggio.

Romoletto
Gamer
Gamer
Messaggi: 33
Iscritto il: 04/03/2019, 7:47
Reputation: 0

Re: Introduzione alla riparazione schede PCB (in Inglese)

Messaggio da Romoletto » 14/03/2019, 14:00

saturnshadow ha scritto:
Romoletto ha scritto:
13/03/2019, 18:17
Ora possiamo riparlarne.... Sei un mito, Punto. ImmagineImmagineImmagineImmagineImmagineImmagine
troppo buono!
ma mi credi che la parte più complessa non è la traduzione, quanto l'adattamento?
purtroppo ci sono nozioni strettamente tecniche che non mi è possibile verificare, quindi cerco di renderle al meglio con un linguaggio chiaro inoltre si nota che è stato scritto da un ingegnere (o affine).
il che significa lacune nella redazione di uno scritto con scopo divulgativo (errori ortografici e grammaticali inclusi [sweatdrop.gif] )
ma bando alle ciance e andiamo alla prossima (penultima! [flame2.gif] ) lezione [book6.gif]
Allora ti faccio ulteriori complimenti perché finora, si capisce abbastanza bene. Ovviamente non è come leggere topolino, ma questo era scontato.
Bravo ImmagineImmagineImmagineImmagine

Inviato dal mio Mi A1 utilizzando Tapatalk


Avatar utente
saturnshadow
Arcade Maniac
Arcade Maniac
Messaggi: 4470
Iscritto il: 04/05/2016, 16:00
Medaglie: 38
Reputation: 921
Località: Pesaro/Bologna
Nazione: Italy
:
Medaglia d'oro Medaglia d'argento Medaglia di bronzo Medaglia di legno

Re: Introduzione alla riparazione schede PCB (in Inglese)

Messaggio da saturnshadow » 14/03/2019, 15:23

Romoletto ha scritto:
14/03/2019, 14:00
Ovviamente non è come leggere topolino, ma questo era scontato.
Bravo ImmagineImmagineImmagineImmagine
infatti
è per quello che leggo manga [rofl.gif]
contento che, nonostante tutto, sia comprensibile

e comunque: FINE! [beer2.gif]

Avatar utente
saturnshadow
Arcade Maniac
Arcade Maniac
Messaggi: 4470
Iscritto il: 04/05/2016, 16:00
Medaglie: 38
Reputation: 921
Località: Pesaro/Bologna
Nazione: Italy
:
Medaglia d'oro Medaglia d'argento Medaglia di bronzo Medaglia di legno

Introduzione alla riparazione schede PCB (LEZIONE 7)

Messaggio da saturnshadow » 14/03/2019, 15:27

ATTENZIONE! Quanto segue è la semplice traduzione della guida redatta e a cura di Brian Brzezicki presente in versione originale sul sito http://www.arcade-cabinets.com .
Arcademania.eu, lo staff tutto, i traduttori e tutti i collaboratori che hanno partecipato alla stesura del testo seguente non sono in alcun modo coinvolti nei contenuti di quanto illustrato, né hanno collaborato in alcun modo, né hanno alcuna responsabilità su qualsivoglia aspetto.
Per qualunque tipo di informazione, richiesta o ulteriore approfondimento riguardo il materiale presente nella guida i riferimenti sono: l'autore stesso, Brian Brzezicki (persona disponibile e squisita ndr), e la Paladin Group, LLC. che detiene il Copyright del materiale ivi tradotto
Qualunque annotazione e/o variazione sul contenuto i riferimenti sono esclusivamente quelli dell'autore (Brian Brzezicki).
Per modifiche alla traduzione invece, potete inviare liberamente i Vs. suggerimenti al fine di consentire le modifiche del caso


Introduzione alla riparazione di PCB per videogiochi arcade
Copyright 2013 Paladin Group, LLC - Author: Brian Brzezicki
www.arcade-cabinets.com
Special thanks to KLOV users TROXEL and BARITO for reading through this guide, doing the exercises, catching many many typos, and generally making this a better document

NB: questa introduzione è di natura generica, tuttavia negli esempi forniti la scheda descritta è la PCB del gioco Atari Centipede.

Lezione 7: Verifica degli input

Naturalmente tra i componenti importanti di un videogioco arcade ci sono i suoi input (joystick, pulsanti, ecc.). Senza questi componenti funzionanti, semplicemente non si può interagire con il gioco. Mentre è abbastanza raro che gli input si danneggino, vale la pena illustrare come determinare se questi funzionano correttamente o meno; è assai semplice provarlo: sarà sufficiente l’uso di una sonda logica o addirittura un multimetro in modalità tensione DC.
Questa sezione spiegherà come testare qualsiasi input digitale (on/off) dai joystick, ai pulsanti fino ai DIP switch. Per far questo bisogna consultare gli schemi della PCB e verificare dove vanno gli input dei vari comandi.
Prima di passare a esaminare gli schemi, tuttavia è necessaria qualche conoscenza di base.
Pulsanti, joystick e DIP switch funzionano perché quando si preme un pulsante, si chiude un interruttore dall'input del pulsante al cavo di GND/GROUND (Terra – solitamente un cavo elettrico di colore nero ndr). C'è un chip, solitamente simile - o del tipo - di un 74LS244, a cui va il cavo dell'input. Normalmente il pin di ingresso su questo circuito è direttamente collegato a un resistore e quindi collegato alla linea di alimentazione dei +5V. Questa configurazione è chiamata resistenza di pull up. Normalmente quando l'input non è attivato, l'ingresso al chip (attraverso il resistore) viene tenuto in stato High/Alto o +5V tramite il resistore e/o la fonte di alimentazione. Quando si preme il pulsante (segnale di input), l'interruttore presente sul pulsante chiude la connessione, creando un percorso diretto dal pin di input al GND/GROUND sull'altro lato del pulsante.
Così ogni segnale dei pulsanti entra in un chip tramite un pin, ma il segnale del pulsante ha anche un output dal chip stesso da un pin verso la CPU tramite il bus dati. Il pin di output dovrebbe funzionare come l'input, perciò sarà normalmente High/Alto, e quando premiamo il pulsante dovrebbe passare sullo stato Low/Basso.
È tuttavia possibile che su alcune schede, i segnali siano invertiti: l'output è normalmente Low/Basso e diventa High/Alto quando viene premuto.
PIC1.png
Per testare gli input, bisogna verificare dapprima l'ingresso sul pin che sia High/Alto (+5V) quando il pulsante non è premuto, e che passi a Low/Basso alla sua pressione. Se dovesse accadere ciò, avremo sicuramente un sistema integro dal chip all'interruttore del pulsante e questi è collegato correttamente al GND/GROUND (la messa a terra).
Se si riscontra che l'input è normalmente Low/Basso o che l'ingresso è normalmente High/Alto e non cambia mai di stato, bisogna controllare fisicamente il microswitch del pulsante e verificare che il cablaggio fino alla scheda del gioco sia integro.
Se dopo la verifica di componenti e collegamenti non si ravvisano problemi, il passaggio successivo consisterà nel controllare l'output del chip ed eseguire nuovamente i test. Se si riscontrano incongruenze con l'output (ovvero non è su High/Alto quando il pulsante non è premuto, o non va mai su Low/Basso dopo la pressione di quest’ultimo), sarà sufficiente sostituire il chip in questione.

Esercizio 1: prova del pulsante di fuoco Centipede usando una sonda logica o un multimetro
1. Accendere la PCB (nel nostro esempio una PCB Atari Centipede)
2. Se utilizziamo una sonda logica, collegare l'alimentazione della sonda logica in maniera appropriata a +5V e a GROUND
3. Se si utilizzerà un multimetro, accendere lo strumento e impostarlo sul test di tensione CC
4. Individuare il chip e il pin di input che legge il segnale inviato dal pulsante di fuoco della scheda PCB (nel nostro esempio sulla PCB di Centipede è il pin 6 su 74LS257 @ L9)
5. Posizionare la sonda logica sul pin 6 (o, in caso di utilizzo di un multimetro, il puntale dello stick sul pin 6 e il puntale dello stick nero su un qualsiasi punto di GROUND - messa a terra)
6. Verificare la presenza di +5V o di "stato logico High/Alto"
7. Premere il pulsante di fuoco
8. Verificare di vedere 0V (GND/GROUND) o "stato logico Low/Basso"
9. Successivamente individuare il chip 74LS257 e il pin di output che legge il pulsante di fuoco: nel caso in questione è il pin 7
10. Posizionare la sonda logica sul pin 7 (con multimetro: puntale dello stick rosso su pin 7 e puntale dello stick nero su GROUND)
11. Verificare la presenza di +5V o "stato logico High/Alto"
12. Premere il pulsante di fuoco
13. Verificare il 0V (GND/GROUND) o "stato logico Low/Basso"
PIC2.png
Test degli ingressi con il Fluke 9010A.
Per quanto riguarda la CPU, tutti gli input sono semplici valori che la CPU legge da un certo indirizzo di memoria. La CPU legge costantemente i vari indirizzi di memoria e verifica il valore dei bit.
Questi controlli vengono solitamente associati a uno o più bit, su uno o più indirizzi. Normalmente quando il microswitch di un pulsante è aperto il bit ha valore "1" e quando questi è chiuso il bit è "0".
Sulla PCB di Centipede è possibile vedere dalla mappatura della memoria che l'indirizzo 0x0C01 è dove molti dei pulsanti sono mappati (pulsante di fuoco dei player 1 e 2, start dei player 1 e 2, così come il rilevatore delle monete). È possibile impostare il Fluke in modo da leggere costantemente questi indirizzi in modalità "Loop", e mentre li si preme, osservarne i cambiamenti sul display dell’apparecchiatura.
Non hai i permessi necessari per visualizzare i file allegati in questo messaggio.

Romoletto
Gamer
Gamer
Messaggi: 33
Iscritto il: 04/03/2019, 7:47
Reputation: 0

Re: Introduzione alla riparazione schede PCB (in Inglese)

Messaggio da Romoletto » 14/03/2019, 19:25

saturnshadow ha scritto:
Romoletto ha scritto:
14/03/2019, 14:00
Ovviamente non è come leggere topolino, ma questo era scontato.
Bravo ImmagineImmagineImmagineImmagine
infatti
è per quello che leggo manga [rofl.gif]
contento che, nonostante tutto, sia comprensibile

e comunque: FINE! [beer2.gif]
Anche io sono stato un grande appassionato di manga. Purtroppo tempo famiglia e sopratutto dinero, mi hanno fermato Immagine ma non è detto che un giorno riprenderò Immagine anche se da poco ho fatto un giro su un negozio di fumetti e non conoscevo più una saga... Che tristezza.

Ps. M I T I C O ImmagineImmagineImmagineImmagineImmagineImmagineImmagineImmagineImmagineImmagineImmagineImmagine

Lavoro a dir poco titanico. ImmagineImmagineImmagineImmagineImmagine
P. P. S. Se un giorno riusciremo ad incontrarci, ti offrirò volentieri un mega litro di Immagine, approposito ma raduni nulla?

Inviato dal mio Mi A1 utilizzando Tapatalk



Avatar utente
saturnshadow
Arcade Maniac
Arcade Maniac
Messaggi: 4470
Iscritto il: 04/05/2016, 16:00
Medaglie: 38
Reputation: 921
Località: Pesaro/Bologna
Nazione: Italy
:
Medaglia d'oro Medaglia d'argento Medaglia di bronzo Medaglia di legno

Re: Introduzione alla riparazione schede PCB (in Inglese)

Messaggio da saturnshadow » 14/03/2019, 19:45

Romoletto ha scritto:
14/03/2019, 19:25
Anche io sono stato un grande appassionato di manga. Purtroppo tempo famiglia e sopratutto dinero, mi hanno fermato Immagine ma non è detto che un giorno riprenderò Immagine anche se da poco ho fatto un giro su un negozio di fumetti e non conoscevo più una saga... [...] Se un giorno riusciremo ad incontrarci, ti offrirò volentieri un mega litro di Immagine, approposito ma raduni nulla?
Non so fin quando hai comprato o dove sei rimasto ma ti posso garantire che le cose migliori... sono ristampe di manga di 15/20 anni fa (quindi non ti sei perso niente [joint.gif]). Ci sono pochissime eccezioni, ma niente di irrinunciabile
Riguardo alla birra, non so dove stai ma me lo segno [on_eek.gif]
Sui raduni, sempre a disposizione. [icon_wink.gif] effettivamente sarebbe tempo di organizzarne un altro [think.gif]

Romoletto
Gamer
Gamer
Messaggi: 33
Iscritto il: 04/03/2019, 7:47
Reputation: 0

Re: Introduzione alla riparazione schede PCB (in Inglese)

Messaggio da Romoletto » 14/03/2019, 20:42

saturnshadow ha scritto:
Romoletto ha scritto:
14/03/2019, 19:25
Anche io sono stato un grande appassionato di manga. Purtroppo tempo famiglia e sopratutto dinero, mi hanno fermato Immagine ma non è detto che un giorno riprenderò Immagine anche se da poco ho fatto un giro su un negozio di fumetti e non conoscevo più una saga... [...] Se un giorno riusciremo ad incontrarci, ti offrirò volentieri un mega litro di Immagine, approposito ma raduni nulla?
Non so fin quando hai comprato o dove sei rimasto ma ti posso garantire che le cose migliori... sono ristampe di manga di 15/20 anni fa (quindi non ti sei perso niente [joint.gif]). Ci sono pochissime eccezioni, ma niente di irrinunciabile
Riguardo alla birra, non so dove stai ma me lo segno [on_eek.gif]
Sui raduni, sempre a disposizione. [icon_wink.gif] effettivamente sarebbe tempo di organizzarne un altro [think.gif]
Se non sbaglio, le ultime cose che ho comperato riguardano neo Genesis evangelion, o giu di lì. Sono di Assisi, centro Italia, quindi mi sposto abbastanza bene Immagine

Inviato dal mio Mi A1 utilizzando Tapatalk


Rispondi