venerdì 1 aprile 2011

CCD sensore di scansione a linee (parte 1)

Allora, che cosa posso fare con le parti di un vecchio scanner? Non ho ancora deciso ma dicono che l'ispirazione può venire dalle idee più strane. La cosa certa è che devo trovare una scusa per non fare quello che dovrei ma non vorrei fare e che devo consegnare tra un pò. Così, dato che tempo fa ho sezionato delle stampanti multifunzione (HP mod V40 credo di ricordare), mi salta l'ideona di riprendere i sensori per la scansione delle immagini e capire come sono fatti all'interno. Le stampanti multifunzione sono una piccola miniera di componenti che si possono recuperare e riutilizzare...motori, sensori ottici, lampade CCFL con inverter (per le più datate) e una moltitudine di parti che con un pò di fantasia possono ancora svolgere i loro compiti senza subire l'ingloriosa sorte della rottamazione, che tanto ingrassa i profeti dell'usa e getta.  Nelle stampanti che ho sezionato, la lampada a CCFL è sostituita da una striscia luminosa apparentemente bianca ma in realtà illuminata da tre micro led rosso, blu e verde (RGB). Il tutto racchiuso dentro un contenitore a parallelepipedo che contiene anche il sensore CCD lineare vero e proprio (questo modulo è chiamato Contact Image Sensor o CIS module.). E' come una fotocamera dove però il chip invece che rettangolare è lineare. La messa a fuoco è già regolata meccanicamente all'interno, così si evitano pesanti ottiche, specchi, regolazioni e altri componenti costosi e delicati. Quello che analizzo qui è anche a colori, il che mi complicherà la vita non poco,  anche se trovo la sfida interessante e molto stimolante. La parte più dura è capire la piedinatura del connettore esterno...urge un autopsia completa, aiutata dalla disponibilità di una decina di sensori. Qualcuno lo posso anche rompere.
Credo di aver capito, leggendo alcune info sommarie usando "gògol" che un sensore a linea CCD  agisce come un registro a scorrimento analogico. 
Si alza un pin (SP) per dire al CCD di 'prendere  l'immagine', poi si avanza di un clock su un altro pin (CP). Ogni volta che il successivo impulso di clock arriva, il CCD invierà un valore analogico (Vout) che rappresenta il livello di luce che colpisce il pixel successivo. Poiché il CCD è un elemento dinamico, non è possibile abbassare il segnale di clock troppo presto e se si smette di leggere il frame, il dispositivo riparte da capo a leggere dall'inizio. Dovrebbe esserci anche un pin per regolare, con una tensione DC variabile, la sensibilità. Wow....devo assolutamente hackarlo.
Non ho mai interfacciato un microcontrollore con sensori di luce e sto pensando che sarebbe una buona scusa per rimandare di ottemperare ai miei doveri. La parte più dura è capire la corrispondenza dei pin nel pettine dove va infilato il cavo piatto flessibile. Sono 12 contatti. sicuramente avremo 2 per l'alimentazione generale, forse 4 di alimentazione per i led di illuminazione (una massa led ed uno per ogni colore RGB)... ne restano 6. Posso desumere quindi gli altri segnali presenti nella maggioranza di CIS analizzati:
  • SP - Start pulse
  • CP - clock pulse
  • Vout - Segnale analogico in uscita
Ne restano tre (forse Vout è diviso per 4 sezioni del sensore fotosensibile come in certi CIS), per cui dovrò testare se c'è qualche massa in comune o sdoppiata. L'ideale, in questi casi e per le misure, sarebbe testare con un analizzatore logico di stati il sensore durante il suo funzionamento, ma purtroppo non posso rimettere assieme l'hardware originale, per cui le cose si complicano ancora di più. Forse, potrei avere un idea seguendo le piste del sensore messo a nudo (vedi foto). All'interno si nota un chip scoperchiato (nudo, probabilmente  lo shift register / video amplificatore del fotosensore o un convertitore AD, impossibile saperlo) da cui partono dei fili d'oro ed una linea iridescente su cui sono collegati, a gruppi intervallati, sei microscopici collegamenti (sempre in oro).  Un altra difficoltà è sapere quanti impulsi di clock per leggere una linea? a quale frequenza deve lavorare il clock? la lettura si deve intendere per singolo colore per tre passaggi o viene inviata la lettura RGB intervallata per ogni punto? Ed a che risoluzione lavora il sensore????? Probabilmente occorre fare tre letture per linea illuminata alternativamente con un led alla volta e far decidere al firmware la sequenza dei colori. Il software di post processing farà il resto componendo l'immagine a colori sovrapponendone tre.
Visto che ne ho un pò, potrei tentare anche di procedere con il metodo "o la va o si spacca". 
Fornisco alcuni dati tecnici, giusto per documentazione, riportando qui le sigle sul circuito:  nella parte esterna CS600B e meno visibile Toshiba 218CS600B 3291193 Taiwan. Sempre nella parte esterna verniciata di nero ci sono in prossimità del connettore 12 piazzole dorate, sicuramente usate come test point nei macchinari che testano il prodotto finito. Nella parte interna accessibile solo dopo lo smontaggio completo: CIPS218-CS600B REV:A1 2-10-44R-041-A1
All'estremità, 4 punti di contatto, 3 per i led RGB e 1 per l'alimentazione positiva (configurazione ad anodo comune) che dovrebbe attestarsi sui  3.3 - 5 volts. Per ora basta così, che provo a documentarmi meglio ed aggiornare periodicamente questo post. Quasi dimenticavo. Se hai il pinout di questo componente o il datasheet completo...pubblicalo, per cortesia, l'ambiente e l'umanità te ne sarà grata. Grazie.  Alla prossima. 

P.S. I coleotteri neri sono in volo. Ripeto: I coleotteri neri sono in volo.

12 commenti:

Anonimo ha detto...

Complimenti per il blog, ti seguo da tempo, ed è sepre fonte di ispirazione.
Per quanto riguarda il CIS in effetti il sito della toshiba (http://www.semicon.toshiba.co.jp/eng/product/sensor/selection/imagesensor/ccd/1185240_6952.html) non aiuta molto.
Bisognerebbe conoscere il nome del sensore, perchè dal nome del modulo è molto difficile ricavare dati.
Secondo me puoi provare consultando i dati dello scanner di partenza quale è la risoluzione in larghezza (risoluzione effettiva massima e non interpolata) che sarà anche il n° di pixel del sensore. Con una lente potresti vedere se la matrice di pixel è di una o più righe (4-6). Poi da questi dati cercare di capire quale sensore è e quindi recuperare il suo datasheet. Spero di essere stato d'aiuto, Ciao gabriele. http://cptzpk.wordpress.com/

Anonimo ha detto...

Ciao, complimenti per il blog, lo seguo sempre volentieri!
Per il CIS io cercherei sulle specifiche dello scannel la risoluzione orizzontale massima non interpolata, ipotizzando che sia quella del sensore, poi con una lente potente conterei quante righe di pixel riesci a distinguere (1;2;4;6 etc). Stabilito il n° di pixel cercherei sul sito della toshiba (http://www.semicon.toshiba.co.jp/eng/product/sensor/selection/imagesensor/ccd/1185240_6952.html) il chip corrispondente e il relativo datasheet. Spero di esserti stato di qualche aiuto e spero di vedere il risultato dei tuoi sforzi. A presto Gabriele.

unamico ha detto...

Grazie. il DS... me lo sono procurato alla fine...nn è stato per niente facile ma ce l'ho. segue post dedicato. ciao

Anonimo ha detto...

Ciao... scusate se mi intrometto, ma ho un problema con lo scanner, e voi mi sembrate esperti e simpatici (lec lec), potete aiutarmi?
Il problema è questo: appena acceso funziona benissimo, dopo qualche scansione andata a buon fine mi mette l'avviso "lampada in riscaldamento attendere", quindi a volte parte anche dopo 2 minuti, a volte non ce la fa proprio.... va in time-out e mi da errore. Allora se la spengo e la lascio raffreddare bene dopo mi concede qualche altra scansione.
Ora ..... lo so che posso buttarla e comprarlo nuovo con poco ma mi sono incaponito e siccome mi piace riparare le cose (come a Voi mi sembra), allora forse col Vs aiuto potrei farcela: Intanto non capisco se questa benedetta lampada deve essere molto calda per far partire la scansione, o no! perchè secondo me come detto prima inizia a funzionare male proprio quando scalda troppo. E allora mi chiedo: ci dovrebbe essere un sensore di temperatura da qualche parte vicino alla lampada?..... sarà di massima o di minima? ..... o di tutti e due?..... ma dov'è?..... é lui la causa delle attese o sarà la lampada ormai invecchiata (ha quasi 6 anni)?
Fatemi sapere se sapete voi che ne avete già smontato..... io intanto comincio ad aprirlo e a curiosare.
L'idraulico
P.S. L'elettricismo è un bene ripeto l'elettricismo è un bene

unamico ha detto...

Ciao....ma di mettere magari il modello dello scanner no? così proprio non ti posso aiutare, e poi... perchè il "voi"?, perchè nemmeno il tuo nome? perchè ti firmi "l'idraulico"?.... si sa che quando vi si chiama non venite mai...sono tre settimane che ne aspetto uno..."chiamo io..." mi ha detto....seeeeee...verrebbe voglia di trattarvi allo stesso modo.
cmq...qui stiamo parlando di CIS che non hanno lampade ma 3 led smd microscopici. il messaggio che vedi non si riferisce proprio alla temperatura ma probabilmente alla lampada CCFL al neon, probabilmente esaurita (forse è solo sporca) che fa meno luce del previsto.... è da cambiare.
P.S. leggere tutto. ripeto: leggere tutto.

Anonimo ha detto...

Ciao... Grazie per l'attenzione, intanto ti chiedo scusa per tutti gli errori che ho fatto ma è la prima volta che entro e non sono molto pratico di blog. Mi chiamo Claudio e faccio l'idraulico, mi sono registrato come anonimo perchè non avevo voglia di seguire tutta la prassi di registrazione su Google (non amo molto la burocrazia), comunque ripeto faccio l'idraulico e se ti posso essere utile per i tuoi problemi di idraulica sono a tua disposizione per consigli o ciò che ti serve. Il voi era riferito a tutti quelli che leggono e che potrebbero aiutarmi....
Tornando al problema scanner, si tratta di una multifunzione HP Officejet 6110, che per quanto riguarda fotocopie, fax, e stampe funziona perfettamente e non mette mai in attesa, mentre se si richiede la scansione, come già spiegato, appena accesa funziona benissimo, successivamente alle prime due o tre scansioni, va in attesa. Proprio questo non capisco.... Se come dici tu è colpa della lampada, è plausibile che faccia meno luce dopo un certo tempo? ..... e potresti dirmi quale sarebbe il componente che stabilisce se la luce e sufficiente per avviare la scansione?
Grazie Claudio (l'draulico :)

unamico ha detto...

ok Claudio...scusami tu ma i blogger non perdonano :-)
Domanda: è plausibile che faccia meno luce dopo un certo tempo?
R: Si. per quel modello si usa una lampada ccfl, un sottile tubo al neon per intenderci, che come i normali tubi fluorescenti da soffitto col tempo si esaurisce. Si trovano anche in alcuni vecchi portatili per retroilluminare l'LCD
Domanda: quale sarebbe il componente che stabilisce se la luce e sufficiente per avviare la scansione?
R: è il componente che cattura la luce riflessa dal documento che è illuminato dal CCFL.
RIMEDIO: (possibile?) prova a pulire con un panno in microfibra (niente liquidi) gli specchi accessibili nel gruppo ottico, la parte inferiore del vetro nella parte iniziale, dove dovrebbe esserci la strip di calibrazione (una striscia di plastica sottile rettangolare per tutta la larghezza con un rettangolo bianco su supporto nero). Togli la patina che usualmente si forma su lampada, strip, specchi e vetro....usa guanti in lattice. Se ti piace rischiare ed hai manualità ed esperienza puoi anche provare ad aprire il gruppo ottico per pulire gli specchi inaccessibili ma se non hai esperienza c'è il concreto rischio che danneggi il tutto. In ogni caso NON pulire con liquidi, NON spostare gli specchi, NON smontare il sensore ottico che è fissato con la lacca, NON soffiare con l'aria compressa. Dentro il gruppo ottico dovrebbe esserci una lente tipo obiettivo da fotocamera...occhio che le lenti sono trattate con l'antiriflesso e vanno passate a straccio solo in casi estremi.
Come ultima soluzione...cerca su "ebai" il gruppo ottico completo di CCFL e specchi, oppure rivolgiti ad un informatico e pagalo, che dio solo sa quanto ci sia bisogno di far girare un pò di spiccioli :-)
Ciao ed in bocca al lupo.

Anonimo ha detto...

Ok... fatto tutto.... identificato il gruppo ottico... aperto!!... puliti gli specchi "delicatamente" e pulito anche l'obbiettivo!! Si si ne aveva proprio bisogno era tutto opaco e anche gli specchi... mamma mia! dev'essere tutta la nicotina che c'è nel mio ufficio. Richiuso tutto. E' tornata come nuova, pronta e veloce. Ho provato una ventina di scansioni ed è tutto ok. Speriamo che duri.
Un Grazie di cuore da parte mia e da parte dello scanner che ha rischiato di essere scannato e quindi ti deve la vita.
Continuerò a seguirti perchè il tuo blog è geniale
A presto
Claudio

giancarlo ha detto...

Un aiutino per decifrare i pin del connettore.
I primi quattro, partendo da destra sono quelli del led di illuminazione:
Negativo, B, G, R.
Giancarlo

unamico ha detto...

Giancarlo, fore potrebbe aiutarti la parte 2 del post http://sfogobenefico.blogspot.it/2011/04/ccd-sensore-di-scansione-linee-parte-2.html se stiamo parlando dello stesso ccd.
Al limite prova col tester (funzione prova diodi) e vedrai che alla fine ne verrai a capo.
Ciao

giancarlo ha detto...

Grazie a unamico, mi è sfuggita la seconda parte del post. Ma, mi sono espresso male, non chiedevo un aiuto ma suggerivo un aiuto indicando la funzione degli ultimi 4 pin. Provati da me con il tester.
Giancarlo

unamico ha detto...

Si Giancarlo... ed il successivo (il 5° da destra) dovrebbe essere l'anodo comune.
Grazie per la precisazione