domenica 12 luglio 2009

Batteria portatile - CMB001B (approfondimento)

Chi la dura la vince. Dopo un infinità di tempo passato a "googlare" a causa della mia testardaggine che mi "impedisce" a volte di scegliere le domeniche per un più sano giro in bici, sono riuscito a decodificare i segnali della batteria in corso di analisi. Premetto che ora, sono molto più "preparato" in merito al funzionamento delle batterie al litio. Se vengono caricate con una corrente troppo alta che porta le celle ad un valore superiore a 4,8 volts, si produce ossigeno che essendo infiammabile può provocare esplosioni ed incendi. Se la tensione di cella scende sotto i 2,6 volts, si ha un degrado fisico dell'anodo, per cui la batteria si distrugge irreparabilmente. Il metodo di carica è multi-step. In una prima fase deve essere caricata con corrente regolata sino ad una certa soglia di tensione. Successivamente la carica è in tensione, sopra una soglia predefinita, con conseguente diminuzione della corrente assorbita. Il tutto va controllato con la temperatura, che deve rimanere entro limiti ben precisi in base al valore di resistenza del termistore che in questi casi è obbligatorio ed indispensabile. Si spiega così come mai le batterie al litio necessitano di uno specifico processore e di una memoria che memorizza i valori di soglia (specifici per le celle utilizzate). E' necessario inoltre memorizzare lo stato di carica totale e residua per poter riprendere in fase di ricarica il giusto step. Si spiega inoltre come mai a volte alcune batterie, di cellulari o portatili, esplodono o si incendiano. Una causa potrebbe essere la presenza di valori incongruenti o fuori specifica. La colpa viene quasi sempre addossata alle batterie "cinesi", comunque non originali cui segue sempre la raccomandazione di acquistare batterie originali. Ecco spiegato perchè quando accade, la casa madre richiede sempre il pezzo bruciato od esploso... controllano i dati. Ma se ai primi sintomi di decadimento provo a variare i parametri e far "esplodere" una batteria originale, è probabile che mi venga sostituita in garanzia con tanto di rimborso dei danni conseguenti. Basta solo distruggere l'eeprom e nessuno sarà mai in grado di dimostrare nulla.
Può però accadere che i valori memorizzati normalmente, calcolati a volte per approssimazione in base al firmware implementato e dipendenti dalla temperatura, presentino dei valori incongruenti con l'effettivo stato delle celle. Accade infatti che il portatile (quasi improvvisamente o nel giro di pochissimi giorni) si rifiuti di caricare le celle in quanto la lettura dei parametri suggerisce il contrario. Le celle a mio avviso non sono "guaste", forse presentano una piccola diminuzione di efficienza, ma possono ancora continuare a lavorare per un pò di tempo. Leggendo infatti la documentazione sulla chimica delle batterie al litio, non esiste in letteratura alcuna segnalazione che indichi o spieghi un progressivo e rapido degrado come quello che si riscontra nell'uso quotidiano delle batterie dei computer portatili. Forse c'è un "problema di firmware" e pertanto vorrei provare a modificare i valori di carica - scarica memorizzati nell'eeprom per sperimentare la "resuscitazione" di una batteria dichiarata prematuramente defunta.
Per procedere con la lettura e scrittura dei valori che mi interessano, avrei prima la necessità di decodificarli. Ho trovato nella schedina di controllo, un integrato prodotto dall'azienda Power Smart (purtroppo il sito non risponde), un PS331S il cui funzionamento di principio è visibile in figura, così come la sua piedinatura. E' un processore che controlla lo stato di 4 celle e regola la comunicazione con l'esterno e con l'eeprom. Ecco la descrizione dei pin, in inglese.
PIN # NAME DESCRIPTION
1 SWITCH (Input) Edge triggered input pin typically used for LED activation. May also be used for ‘Sleep Mode’ wake-up comparator input.
2 EE-SCK (Output) External serial EEPROM Clock. Connect to SCK pin on external serial EEPROM. 3 EE-CS (Output) External serial EEPROM Chip Select . Connect to CS pin on external serial EEPROM.
4 VREFT (Output) Reference voltage output for use with temperature measuring A/D circuit . This 150 mV output is the top leg of a voltage divider thermistor circuit.
5 VNTC (Input) Temperature measurement A/D input for use with temperature circuit. This is the mid-point connection of a voltage divider where the upper leg is a thermistor (103ETB-type) and the lower leg is a 3.65K ohm resistor . This input should not go above 150 mV.
6 VCELL1 (Input) Lowest level input for A/D measurement of cell voltages.
7 VASS1 Analog ground reference point.
8 VCELL2 (Input) Second to lowest level input for A/D measurement of cell voltages.
9 VCELL3 (Input) Second to highest level input for A/D measurement of cell voltages.
10 VCELL4 (Input) Highest level input for A/D measurement of cell voltages.
11 VADD (Input) Analog supply voltage input.
12 VSHP (Input) Current measurement A/D input from positive side of the current sense resistor.
13 VSHM (Input) Current measurement A/D input from negative side of the current sense resistor.
14 VASS2 Analog ground reference point.
15 VREG (Output) Used to control an external small signal MOSFET to provide a regulated voltage to the IC . Only required for battery packs with voltages greater than 3.6V.
16 OSCOUT (Output) Oscillator connection for an external low-power 32.768 kHz crystal which provides accurate timing for self-discharge and capacity calculations.
17 OSCIN (Input) Other oscillator connection . (See OSCOUT description.)
18 EE-SO (Output) External SPI serial EEPROM data input. Connect to the SO pin on external SPI serial EEPROM. 19 EE-SI (Input) External serial EEPROM data input. Connected to the SO pin on external serial EEPROM
20 VDDD (Input) Digital supply voltage input.
21 SAFEOUT (Output) Programmable over-voltage and/or over-temperature output. Default non-active output is low (0V)
22 LED4 (Output) Relative or Absolute State-Of-Charge visual display
23 LED3 (Output) Same as LED4 pin
24 LED2 (Output) Same as LED4 pin
25 LED1 (Output) Same as LED4 pin
26 SMB-DTA SMBus Data pin connection.
27 SMB-CLK SMBus Clock pin connection.
28 VDSS Digital ground reference point.
I pin che ci permettono il "dialogo" con la batteria, dall'esterno senza necessità di aprirla, sono il 26 ed il 27, collegati al pettine di connessione esterno assieme al positivo (P+), negativo (P-) e termistore (T), come mostrato nella foto. I pin 2, 18 e 19 invece offrono la possibilità di interfacciarsi via SPI all'eeprom, per operazioni di lettura e scrittura. Occorre programmare un micro o utilizzare un interfaccia compatibile con i protocolli previsti. Il bus-pirate che ho ordinato deve ancora arrivare, altrimenti sarebbe stato un gioco da ragazzi farlo immediatamente.
Per leggere i valori nell'eeprom, non ci sono grandi difficoltà, se non riuscire a saldare dei fili sottili (che non ho per ora) con un operazione chirurgica. Verso l'esterno, il connettore della batteria presenta i soliti segnali che abbiamo già visto con il primo post sulla batteria alla quale è stata fatta la radiografia. Oltre ai poli positivo e negativo, il terminale del termistore (per la misura e monitoraggio della temperatura, ed il segnale SMBUS (vedi foto). Per complicare la vita ai tecnici "faidate" (DIY do it yourself) il produttore ha sdoppiato il piedino di massa, mentre gli altri sono sempre i soliti (T,D,C). Nella prossima batteria che andrò ad analizzare, i punti di contatto sono 11 ma ho il sospetto che molti di essi siano sdoppiati solo per confondere (inutilmente) gli hackers. Bene. Ora manca solo l'organizzazione dei dati nell'eeprom per verificare se la mia teoria è esatta. Mi sa che avrò bisogno di tuffarmi in qualche forum specializzato per cercare qualche dritta utile. Alla prossima.

P.S. Piove dove serve. Ripeto: Piove dove serve.

sabato 11 luglio 2009

Batteria portatile - CMB001B

Questo post è in corso di aggiornamento. Potrebbe contenere informazioni non corrette. Stay tuned for further updates.
Stavolta ho aperto una batteria di un computer portatile Compaq P700, per proseguire le indagini, approfondimenti e ricerche in merito all'elettronica di controllo delle celle. Il modello della batteria è CMB001B, un elemento da 14.8V e 3.6Ah (Compaq part number 246437-001) con celle coreane assemblate a Taiwan e compatibili con i Compaq modelli CM2090 e CM2130. Il contenitore plastico non è particolarmente critico da aprire, a anche se occorre inevitabilmente romperlo un pò. Le due parti sono agganciate con due clips su ciascun lato lungo ed una per ciascun lato corto in posizione centrale. I bordi sono saldati non tanto tenacemente ad ultrasuoni e le celle all'interno sono tenute al loro posto con del bi-adesivo sottile. Otto celle, LG Chem made in Korea sono collegate in una serie di 4 coppie in parallelo fra loro, ciascuna da 3,7 volts. Per ogni coppia di celle in parallelo, è collegato un filo che entra nella scheda di controllo, probabilmente per misurare i valori di carica - scarica o per poterle caricare coppia per coppia. Potrò essere più preciso solo dopo l'analisi approfondita del circuito. Al polo positivo è collegato un fusibile mentre il termistore di controllo temperatura è incollato in prossimità dell'elemento intermedio alla serie. Su ogni cella è stampigliato un numero diverso in calce ad un codice a barre. Due codici, sono impressi a punti di inchiostro direttamente sull'involucro di ogni cella ma, a causa della bassa risoluzione, risulta difficile individuare le differenze fra una C una D o uno zero, mentre a volte il 2 sembra un 8. Confrontando le varie sigle, dovrebbero essere CCD0011102 e CAD0C30302 e si può supporre che rappresentino il codice della cella per un eventuale ricerca e riordino dei ricambi.
elettronica batteria compaqIl pettine di connessione presenta 6 contatti, ma sfortunatamente non esiste alcuna indicazione in merito al loro significato. L'elettronica risiede su un unica scheda che alloggia anche il pulsante di visualizzazione dello stato di carica ed i 4 led corrispondenti.
Cobra Ver.G2 sembra essere l'unica sigla dello stampato che alloggia due integrati interessanti siglati 1511414C e 25LC040. Il primo è sconosciuto, non si riesce di trovare il datasheet, mentre il secondo è un SPI bus serial (Simple Serial Peripheral Interface ) eeprom (electrically erasable PROM) da 4Kbyte con SCK (clock) ed uscite separate SI ed SO. E' sicuramente lì dentro che sono memorizzati i valori che vorrei leggere, solo che in mancanza dei dati del processore, è particolarmente difficile comprenderne il significato. Proverò ad approfondire la ricerca e controllare il logo del produttore stampigliato per verificare se nel suo sito è possibile reperire qualcosa... la ricerca continua, alla prossima.

P.S. Il riso è cotto. Ripeto: Il riso è cotto.

venerdì 10 luglio 2009

Batteria portatile - BTP-331

Dal mucchio di hardware in attesa di essere analizzato, stavolta ho pescato una batteria di un computer portatile. Un Extensa 335 ormai pensionato, ma che presto tornerà in attività grazie ad alcuni "magheggi" in corso di studio. Ha in dotazione una batteria al Nikel Metal Hydride modello BTP-331 da 8.4 volts e 3500mA. La batteria sembra defunta, si carica in due minuti e si scarica in due secondi...così almeno sembra. Dico così perchè mi risulta che le soglie di carica e scarica, oltre ad altri dati, sono scritte in una eprom al suo interno. I dati contenuti, sono scritti dal PC, attraverso un collegamento SMB (simile all'I2C) presente nel pettine di innesto nel suo alloggiamento. Il PC conta le accensioni e stima lo stato di carica della batteria. Con il tempo e con l'utilizzo frequente i dati vengono stimati ed aggiornati continuamente. Il problema è che a furia di stime successive, l'errore relativo si somma ad ogni calcolo, producendo alla fine la presenza di dati che a mio avviso sono errati. E più o meno lo stesso problema del PC che segnala una cartuccia vuota quando si sa che è piena. Ho il sospetto che si tratti di un errore del firmware progettato per la soddisfazione del produttore quando riceve la richiesta di acquisto di un nuovo pacco. Credo, ho il sospetto, che la batteria sia in grado di essere utilizzata per un tempo più lungo di quanto stimato dal produttore e pertanto vorrei provare a leggere il contenuto dell'eprom e provare a scriverci dentro. Questa è l'intenzione. Per procedere, ho la necessità di capire il tipo di chip contenuto all'interno della batteria e quindi ho la necessità di aprirla. Spesso gli involucri plastici delle batterie sono saldati ad ultrasuoni (non incollati come spesso si crede, a meno che non siano fatte in "cina"). Per aprirli occorre munirsi di pazienza, un dremel con disco diamantato (+ preciso) e lo schema interno della batteria. Dato che quest'ultimo non è mai disponibile, dato che vorrei evitare di danneggiare i circuiti interni ed anche le celle, dato che comunque se ho torto devo sostituire le celle, ho bisogno, prima di aprire il tutto, di capire com'è fatto l'interno. L'unico modo che conosco è fare una radiografia. Una rapida googlata ed il centro radiologico più vicino riceve una mia richiesta di appuntamento. Lasciamo perdere lo stupore dell'infermiera e del dottore quando ho presentato "...l'inusuale oggetto inanimato da sottoporre ad analisi...". Sono comunque stati disponibilissimi a ricevermi fuori orario di ricevimento del pubblico e sperimentare un metodo mai tracciato in precedenza. Dopo vari studi e prove, metodi di fissaggio degli oggetti (biadesivo, polistirolo e nastro da pacchi) abbiamo optato di utilizzare il macchinario per la radiografia degli arti superiori, calibrato alla potenza di 60Kv per 0.32 secondi (il minimo disponibile) su una lastra 24X30cm
L'analisi dei risultati (ad oggi non completi ed a cui seguiranno altri esperimenti) ha rivelato alcuni particolari interessanti. La batteria in questione contiene 7 elementi ciascuno da 1,2 volts, collegati come si può notare chiaramente, in serie. La radiografia conferma quello che già si sapeva dall'etichetta, ovvero il polo positivo e negativo del pettine di collegamento. Esistono in questo modello altri tre punti di connessione contraddistinti dalle lette T, D, C. La lettera T indica il termistore, l'elemento grazie al quale si può misurare la temperatura della batteria ed intervenire in caso di innalzamento della stessa. In breve è una resistenza il cui valore varia al variare della temperatura. Il PC "dialoga" con questo terminale e prende i necessari provvedimenti atti ad evitare disastri. Le notizie di batterie che esplodono o prendono fuoco sono probabilmente elementi che all'interno riportano dati di ricarica eccessivi e fuori specifica, per cui c'è da aspettarsi la presenza di valori di soglia anche per il sensore di temperatura. Dalla radiografia, sembra che il termistore non sia previsto all'interno, sembra che manchi il filo e per scoprirlo, si potrebbe tentare di misurare la resistenza verso massa. Se non si misura nulla, allora il termistore non c'è. I terminali C e D fanno parte del protocollo I2C (Clock SCK e Data SDA), trasmissione seriale su un filo. La scheda dati sembra nascosta sotto l'ultima batteria verso massa. Per scoprirlo, sarebbe necessaria una radiografia tomografica assiale... con troppe complicazioni per calcolare la distanza dell'asse che si vuole individuare (e lievitazione dei costi connessi).
Il pettine che si vede a destra fa parte di un altra batteria (prossimo post con altra analisi) e non c'entra nulla per ora, se non il fatto che conta più terminali di quelli previsti in questo modello. In queste condizioni e con queste informazioni, potrebbe essere possibile collegare i terminali C e D ad un micro e leggere i dati memorizzati utilizzando il protocollo standard. Per capire il significato dei dati letti e scrivere eventualmente i nuovi, occorre comunque smontare la batteria, trovare il datasheet dei componenti elettronici all'interno e decodificare il valore di ogni singolo byte, dato che con molta probabilità esiste un circuito dedicato. Con un pò di "fortuna"... Dato che di batterie ne ho, posso sacrificarne una per la scienza e riportare a nuova vita le altre. Dalla foto si vede poco (scannerizzazione artigianale del post precedente) ma si possono individuare i bordi plastici dell'involucro e scoprire che non c'è molto spazio per affondare il disco di taglio...occorrerà un taglio moooooolto preciso... La ricerca prosegue. Alla prossima.

P.S. Più e meno poi collegare il polo. Ripeto: Più e meno poi collegare il polo.