Il caso | |
Al Museo abbiamo una
rarissima Virtuality SD1000, basata su Amiga 3000. Purtroppo il computer e'
guasto ed il primo passo e' ripararlo, prima di poter fare qualsiasi prova. Va detto che e' stata rimossa la batteria, che purtroppo ha lasciato uscire elettrolita, dannosissimo per tutto quello che si trova attorno. |
|
Premesse | |
L'ultima cosa che volevo
e' essere io a riparare questo Amiga; non perche' non possa farlo, anzi, ma
perche' e' sbagliato che alla fine con tutti gli esperti e fan di amiga,
tocchi sempre al sottoscritto risolvere i problemi. ATTENZIONE! Nessun condensatore e' stato cambiato a culo in questa riparazione |
|
Prime operazioni | |
![]() |
Dalla scheda dell'Amiga 3000 era stata gia' rimossa in precedenza la batteria, dalla quale era fuoriuscito l'elettrolita che aveva invaso diversi componenti nella zona limitrofa, ossidando saldature e reofori ma fortunatamente senza mangiare piste. |
![]() |
Le rom montate di serie. Probabilmente contengono la versione 1.4 del Kickstart, ma lo sapremo quando l'amiga 3000 ripartira' completo in tutte le sue funzioni. |
![]() |
La zona della batteria, dove c'e' stata fuoriuscita di elettrolita, viene pulita con alcool isopropilico e spazzolata per eliminare le tracce di ossido. |
![]() |
Il chip FAT AGNUS, in contenitore plcc ad 84 pin viene estratto, i piedini puliti con carta abrasiva, lo zoccolo pulito con disossidante e pennello. |
![]() |
Anche per il chip DENISE stessa procedura, smontaggio, pulizia dei pin e disossidazione dello zoccolo, che non si puo' passare con la carta abrasiva. |
![]() |
Ultimo chip nella zona dove la batteria ha causato problemi e' PAULA che si occupa dell'audio. Estratto e disossidato anche questo. |
Primo test | |
Al primo test l'Amiga 3000 non funziona, non parte il Kickstart e visualizza uno schermo di colore verde che significa che c'e' un guasto nella chip ram, ma senza altri indizi. A questo punto o si inizia a cambiare a culo i chip della chipram, che pero' sono 8 (gli altri 8 fortunatamente sono zoccolati) o bisogna trovare il modo di diagnosticare il problema. | |
La svolta | |
![]() |
Tra tutti i megaesperti
di Amiga, nessuno ha saputo indicarmi che esisteva un favoloso diagnostico,
me lo sono trovato da solo. Si tratta del potente
DiagRom, di John Hertall un completo
programma diagnostico per Amiga, residente in rom. Per utilizzarlo ho programmato due eprom di tipo TC574200D , gentilmente offerte dal nostro collaboratore Fabrizio Oldrini, con i due files, rispettivamente : 32bitLO.bin per la eprom low 32bitHI.bin per la eprom high |
Il primo problema | |
![]() |
Eseguendo il test della
chip ram, si vede che nel primo banco, quello montato di fabbrica sull'Amiga
3000, c'e' un byte che rimane sempre a FF. Ogni byte e' gestito da due
integrati, e mi pare strano che siano entrambi guasti. Come prima cosa occorre lo schema elettrico dell'Amiga 3000. E la mappa di memoria |
![]() |
Pensando che le ram
siano innocenti, perche' improbabile di averle tutte e due guaste (considerazione
che si rivelera' poi errata) indago sulla circuiteria che le controlla.
L'unico segnale che non e' in comune con le altre ram funzionanti, e' il
CAS. Nella foto si vede il segnale di CAS di una delle ram del banco aggiuntivo, quello che attualmente funziona bene. Si vede chiaramente come il segnale sia regolare. Ovviamente non essendo un segnale generato da una logica, ma da software, dopo qualche ciclo perde il trigger. |
![]() |
In questa foto invece si vede il segnale di CAS di una delle ram del banco di serie, quello che da' errori, e praticamente e' difficile sincronizzarlo, essendo molto irregolare ed instabile. Cio' mi conferma che il problema e' nel banco di serie, quello che va dall'indirizzo 0 a FFFFFF. |
![]() |
I segnali di CAS per le ram che formano la chip ram sono generati dalle pal U202 ed U203, entrambe di tipo 16L8; i CAS del banco di serie, sono generati dalla pal U202, una 16L8 che ha codice Commodore 390526-02. |
![]() |
Questa pal puo' essere facilmente sostituita con una
GAL16V8, ed il file jedec fortunatamente e' disponibile in internet sul sito
Amiga Wiki. File jedec per sostituire U202 con una gal 16V8 Programmata la gal e sostituita, non cambia nulla, segno che e' innocente. Qui sono disponibili tutti i files delle logiche programmabili utilizzate sull'amiga 3000 : GAL_PAL_PLD Download-Page.html |
![]() |
A questo punto sembra
proprio che siano entrambe le ram di un byte ad essere difettose, ma per
esserne sicuro, faccio un po' di prove con l'ottimo editor di memoria
presente nel diagnostico Amiga RomDiag. Dopo poche prove mi rendo conto che il byte segnalato dal test della chip ram e' proprio come se non fosse presente, isolato (segna FF perche' ci sono dei pull up da qualche parte) e mentre nelle altre celle di memoria riesco tranquillamente a scrivere, in quelle corrispondenti al byte guasto, che sembra essere quello con i bit da 16 a 23, non riesco a scrivere nulla. |
Prima riparazione | |
![]() |
Quelle al centro in
basso sono le due ram che considero guaste, a cui sono giunto seguendo le
indicazioni del diagnostico. Le ram montate sono di due tipi differenti, ignoro per quale motivo: Toshiba TC514258AP-80 datasheet Nec D424258C-80 datasheet |
![]() |
Fortunatamente i piedini non sono piegati, sembrano anche piccoli rispetto ai fori, per cui dissaldarle sembra un'operazione fattibile |
![]() |
Ecco il circuito stampato con le memorie dissaldate. Sono riuscito a toglierle senza particolari problemi, tutto fatto con pompetta a mano e trecciola dissaldante. Il circuito stampato sembra di buona fattura, non si e' rovinato minimamente nonostante sia stato necessario insistere in piu' punti con il saldatore |
![]() |
Monto due zoccoli torniti, come abitualmente si fa quando si ripara qualcosa che ha un minimo di valore. A parte poter fare facilmente prove adesso, un domani che dovesse guastarsi nuovamente, sara' molto piu' facile sostituire le memorie guaste. |
![]() |
Ecco gli zoccoli installati. Nonostante siano perfettamente aderenti al circuito stampato, uno e' leggermente spostato perche' c'e' il piccolo condensatore di disaccoppiamento che sforza. |
![]() |
Si notano le saldature degli zoccoli fatte a mano e non a macchina, ed i piedini torniti che sono perfettamente perpendicolari rispetto al circuito stampato. Tutte le saldature sono state gia' pulite con alcool isopropilico. |
![]() |
Due ram installate sugli
zoccoli per fare la prova. Non avendo a disposizione per adesso ram di
questo tipo, che sono delle 44C256 classiche, le ho prese in prestito dal
banco funzionante. Si possono montare sia ram di tipo fast page che static column, visto che tanto il FAT AGNUS che le controlla non e' in grado di sfruttare nessuna di queste due modalita' Purtroppo appena accendo ci sono solo schermate colorate, ed il diagnostico non parte, segno che il banco di serie ha ancora l'errore di prima, in compenso quello aggiuntivo non puo' funzionare, perche' gli ho tolto due ram per metterle in prova nel banco di serie. Senza almeno un banco da 1M funzionante, che sia quello di serie o quello aggiuntivo, il diagnostico non puo' visualizzare niente a video. |
![]() |
Tolgo quindi le ram prese in prestito, le rimetto nel banco aggiuntivo, faccio partire il diagnostico, eseguo il test della chip ram, che mi conferma che ho cambiato il banco sbagliato. Infatti adesso oltre al byte guasto gia' in precedenza, ce n'e' un'altro che e' quello con solo gli zoccoli, senza ram. |
![]() |
Per conferma faccio la prova con l'editor, ed infatti adesso per ogni parola di 32 bit, sono due i byte che non posso modificare, ma che rimangono sempre a 0xFF per la presenza dei pull up sul bus dei dati. |
Secondo tentativo | |
![]() |
E' evidente che o il
diagnostico visualizza i bytes in un ordine sbagliato, che non ha niente a
che fare con il big endian di Amiga, o lo schema elettrico e' sbagliato,
oppure io non ho capito niente. In ogni caso, devo risolvere la situazione,
per cui mi creo una mappa chiara di come il diagnostico visualizza i bytes
corrispondenti alla parola di 32 bit. Schema visualizzazione bytes diagnostico Per essere sicuro al 100%, faccio una prova consigliata da John Hertall, l'autore del diagnostico, che e' quella di cortocircuitare le uscite di ogni chip e vedere quello che da' errore. Questa prova richiede un po' di tempo perche' spesso il diagnostico si inchioda quando si fanno i corti. A questo punto posso passare alla sostituzione delle altre due ram sospettate. |
![]() |
Dissaldo anche le altre
due ram, queste dovrebbero essere quelle giuste, dopo tutto il ragionamento. Anche per queste monto zoccoli torniti |
![]() |
Fatte tutte le saldature e ripulita l'area con alcool isopropilico. Queste due ram sono state piu' difficili da dissaldare, perche' i piedini di queste ram della Toshiba sono molto spessi, ed in piu' erano leggermente piegati all'esterno, il che ha richiesto molto tempo per raddrizzarli e pulirli, in piu' quelli delle alimentazioni essendo piu' spessi ed essendo il circuito a 4 strati, sono stati complicati da dissaldare, richiedendo un riscaldamento notevole e l'estrazione a caldo. |
![]() |
Adesso facciamo il test con il banco aggiuntivo completo e quello di serie senza la meta' dei chip |
![]() |
Come prevedibile ci sono
ancora i due bytes guasti. Significa che ho dissaldato le ram giuste questa
volta. |
![]() |
Adesso monto 4 memorie sicuramente funzionanti sugli zoccoli, prendendole in prestito dal banco aggiuntivo |
![]() |
E come ero quasi sicuro, finalmente il test adesso viene superato e la chip ram del banco base, di serie all'Amiga, viene riconosciuta come funzionante. |
![]() |
Ovviamente quando si arriva al test del secondo banco, quello aggiuntivo, ci sono errori sui due bytes corrispondenti alle 4 memorie mancanti. |
Secondo guasto | |
![]() |
Sistemata la chip ram,
passiamo alla fast ram. Sono montati 8M, ma il diagnostico ne vede solamente
due. La fast ram puo' essere al massimo da 16MB ed occupa lo spazio di memoria da 0x07000000 fino a 0x07FFFFFF. Nel nostro caso, i banchi montati corrispondono allo spazio da 0x07800000 fino a0x07FFFFFF. |
![]() |
Su questo Amiga 3000 ci
sono montati 16 chip di memoria Toshiba TC514402AZ, che sono memorie da
1Mx4bit. Qui il datasheet delle TC514402AZ In totale quindi dovremmo avere una memoria di 8MB. |
![]() |
Chip Ramsey estratto |
![]() |
Pulizia zoccolo RAMSEY con prima disossidante, poi alcool isopropilico, spazzolando con pennellino a pelo corto. |
![]() |
Visto che la pulizia non
da' nessun risultato, indaghiamo attorno al chip RAMSEY. C'e' un ponticello,
il J852, che determina il tipo di chip di ram che sono montati sulla
fas ram (devono ovviamente essere tutti uguali. A seconda della sua posizione possono essere montati chip da 1M (256K x 4 bit) oppure da 4M (1M x 4 bit). |
![]() |
Il jumper J852 era nella posizione errata. Evidentemente qualcuno lo aveva spostato per far prove e non lo aveva rimesso nella posizione corretta. Cosi' ho perso un po' di tempo inutilmente. |
![]() |
Rimesso il ponticello nella posizione corretta, ossia quella per i chip da 4M (1M x 4) il test funziona e vengono riconosciuti finalmente 8M di fast ram. |
![]() |
C'e' una cosa che non e'
chiara pero' : la memoria non viene vista come contigua, ma spezzata in
blocchi, cosa che non puo' essere perche' ad esempio nelle ultime locazioni
indicate dal diagnostico, non c'e' fisicamente ram. Suppongo sia un errore del diagnostico, che a quanto pare qualche problema ce l'ha. |
![]() |
Facendo eseguire il test
approfondito sulla parte di memoria che sembra avere problemi nel precedente
test diagnostico, viene invece riconosciuta come perfettamente funzionante. Quindi possiamo considerare riparata anche la fast ram. |