Problema di lavoro: cercasi aiuto

6 Anni 5 Mesi fa #1 da Blu
Problema di lavoro: cercasi aiuto è stato creato da Blu
Ciao a tutti,
ho scoperto questo sito di Mauro Laurenti alcuni anni fa, grazie alla sezione dedicata ai microcontrollori MSP430, che mi ha permesso (con successo) di imparare a programmare questi piccoli gioiellini.
Sono passati alcuni anni, durante i quali ho sospeso il mio studio al riguardo; non per mancanza di interesse, ma di tempo.
Conto di riprendere quanto prima, ma ad oggi mi trovo a dover far fronte ad un problema che non riesco a risolvere, e spero di riuscire a venirne a capo grazie al vostro aiuto.

Come lavoro, sono un gestore di distributori automatici; al loro interno, si trova di tutto: motoriduttori, pompe dell'acqua, sensori di vario tipo e, ovviamente, una bella scheda elettrica che li comanda.
Quando un distributore automatico viene aperto, si interrompe momentaneamente l'alimentazione alla scheda elettrica; inserendo un'apposita chiavetta, si può ridare tensione, anche con distributore aperto.
Negli ultimi tempi, uno di questi distributori mi sta dando un problema: quando viene ridata tensione, sullo schermo compare la scritta "INIT" (Inizializzazione).
Sulla scheda elettrica di questo distributore è presente un solo pulsante (pulsante "test"), e per programmarlo ci si avvale per lo più della tastiera esterna al distributore, la stessa con cui si scelgono i prodotti.
Sono quasi certo che l'alimentazione che arriva a questa scheda sia 24V, corrente alternata (devo verificare).
Nell'immagine "scheda main", si può vedere la scheda; ho cerchiato e numerato alcuni componenti, e qui di seguito ne riporto il nome:
1 - ULN2003 - Matrice di sette transistor Darlington NPN capaci di 500 mA, uscita da 50 V, con diodi di flyback a catodo comune per la commutazione di carichi induttivi.
2 - non lo so, è coperto da un'etichetta.
3 - M48Z02-150PCI - Memoria RAM statica non-volatile dotata di una batteria interna non ricaricabile al litio.
4 - LM358 - Amplificatore operazionale.
5 - TL7705A - Rivelatore di tensione.
6 - HD63C03YP - Microprocessore CMOS a 8 bit.
7 - non lo so, è coperto da un'etichetta.
8 - L4962A - Regolatore a commutazione di tensione di tipo Step Down, 1,5 Ampere, da 5 a 40V.
9 - LM311 - Comparatore di tensione.
10 - MN74HC14 - Hex Inverting Schmitt Trigger.
11 - TMP82C55AP-10 - Interfaccia periferica programmabile.





Come si può leggere nel manuale:

All'accensione del distributore sul display compare la scritta 'INIT' seguita dalla scritta 'memory cleared' se la memoria non contiene dati oppure quelli contenuti non sono attendibili. La stessa condizione si raggiunge quando viene eseguito il comando 'cancella memoria' oppure qualora la memoria dovesse guastarsi. Premendo il pulsante “test” situato sulla scheda all’interno del box gettoniera, si ripristina il funzionamento del distributore automatico.

Premendo il pulsante della scheda (pulsante "test"), mi compare la scritta: DATA CORRUPTED; quindi, effettuo la procedura di cancellazione della memoria.
Come si può leggere nel manuale:

L’attivazione di questo comando fa sì che tutti i dati impostati dall’utilizzatore siano cancellati e che automaticamente si impostino i parametri di default stabiliti dal costruttore. In risposta a questo comando (...) si cancellano tutti i dati presenti nella memoria del distributore. Questa funzione va usata con molta cautela perché vengono persi tutti i dati disponibili; la macchina dal punto di vista "elettronico" si presenta come nuova. Sul display compare la scritta "memory cleared".

A questo punto, provvedo a reimpostare tutti i dati (lingua italiana, prezzi, ...) ed il gioco è fatto; ma chiaramente qualcosa non va. La mia maggiore preoccupazione è che, se per un qualunque motivo, va via la corrente (sappiamo tutti che purtroppo a volte succede) il distributore non funziona, fino a quando non vado a resettarlo.
Ho contattato la ditta che costruisce il distributore, ed in sintesi mi ha detto che "di sicuro c'è la eprom da aggiornare, ed inoltre il problema potrebbe riguardare anche la RAM che però non è fornibile".

Non so bene quale sia la eprom; forse, è uno dei 2 componenti con sopra l'etichetta. Non le ho rimosse perché anche se non le ho mai trattate so che le eprom venivano cancellate grazie ala luce UV, ed ho avuto il timore che le etichette poste su questi 2 integrati potessero avere anche la funzione di proteggerle da un'eventuale esposizione ai raggi UV. Credo di aver peccato di eccesso di prudenza, ma volevo evitare di correre rischi inutili.
Ad ogni modo, il fatto che "di sicuro c'è la eprom da aggiornare" non credo rappresenti il vero problema (ma chiedo il vostro parere): credo che il vero problema sia la RAM (componente n°3 in figura).
Nella mail, mi scrivevano che si tratta di un componente non più fornibile; in realtà, l'ho trovato in vendita sui normali negozi on-line di componenti elettronici.
Ho anche provveduto a scaricarne il datasheet, che riporto qui sotto, insieme ad un altro documento della ST che analizza la batteria al litio montata sull'integrato.


This browser does not support PDFs. Please download the PDF to view it: Download PDF



This browser does not support PDFs. Please download the PDF to view it: Download PDF





Fermo restando che la cosa migliore è leggere questi 2 documenti, vorrei riportarne alcune parti; le ho tradotte alla buona in italiano.

Datasheet dell' M48Z02.
Al capitolo 1 (Description) si può leggere che l' M48Z02 è dotato di una batteria al litio con sufficiente capacità da riuscire a mantenere i dati anche per 10 anni senza alimentazione esterna.
Al capitolo 2 (Operation modes) viene descritto il principio di funzionamento: "L' M48Z02 ha anche un proprio circuito di rilevazione di alimentazione. Il circuito di controllo controlla continuamente l'alimentazione da 5V per verificare un'eventuale condizione al di fuori del campo di tolleranza. Quando la VCC è al di fuori di tale campo di tolleranza, il circuito scrive i dati nella SRAM, fornendo un elevato grado di sicurezza dei dati nel caso di un imprevedibile funzionamento del sistema al di sotto della VCC. Non appena la VCC scende al di sotto di circa 3V, il circuito di controllo collega la batteria che mantiene il funzionamento dei dati fintanto che non ritorna l'alimentazione.".
La figura 3 di pagina 6 mostra il diagramma dell'integrato, che contiene una batteria non ricaricabile al litio, un circuito di controllo, e la memoria SRAM.





Il documento: "AN1012 APPLICATION NOTE Predicting the Battery Life and Data Retention Period of NVRAMs" riporta le seguenti informazioni importanti:
Il packaging dell' M48Z02 ha al suo interno il circuito integrato (600 mil DIP) con sopra montata una batteria non ricaricabile al litio, a bottone; potrebbe essere o la BR1225 o la BR1632. In figura 1, pagina 1, si vede tale soluzione; nella figura viene mostrato anche un oscillatore al quarzo, non presente tuttavia nell' M48Z02.





La batteria interna al litio può esaurirsi o per aver fornito tutta l'energia che aveva a disposizione (quindi, è mancaa l'alimentazione per un lungo tempo) oppure per invecchiamento (la così detta "vita di scaffale"). Considerato che si tratta di un distributore automatico di 20 anni, credo sia molto probabile che la batteria al litio sia invecchiata.

Al capitolo 2.3 (Data retention mode, pagina 10) si può leggere: "The power switching circuit connects external VCC to the RAM and disconnects the battery when VCC rises above VSO. As VCC rises, the battery voltage is checked. If the voltage is too low, an internal Battery Not OK (BOK) flag will be set. The BOK flag can be checked after power up. If the BOK flag is set, the first WRITE attempted will be blocked. The flag is automatically cleared after the first WRITE, and normal RAM operation resumes. Figure 7 on page 11 illustrates how a BOK check routine could be structured.".





In condizioni di funzionamento normali, nel momento in cui viene tolta tensione al distributore automatico, il circuito di controllo dell' M48Z02 sconnette la memoria SRAM dalla linea dell'alimentazione esterna e la connette alla batteria al litio, per poi fare il contrario quando si rende conto che è tornata l'alimentazione esterna.
Ovviamente, nel caso in cui la batteria interna sia esaurita, il giochetto non riesce.
Tralasciando il discorso che "di sicuro c'è la eprom da aggiornare", vorrei vedere se si può fare qualcosa alla SRAM, che per inciso non è neanche saldata alla scheda, ma inserita in uno zoccolo (almeno, così mi sembra). Mi vengono in mente due soluzioni diverse, ve le espongo qui di seguito.
1) Sostituire questa SRAM con un'altra identica, comprata on-line. Questo tentativo però parte dal presupposto che quando riscontro il problema, e resetto la memoria del distributore, ciò che faccio è cancellare TUTTA la memoria della SRAM, la quale non contiene permanentemente nessun dato utile, quindi posso tranquillamente sostituirla con un'altra con la batteria buona. Ma non è che corro il rischio di far danni, perchè in realtà vi restano dei dati necessari al microcontrollore (e magari, se non li trova, si danneggia qualcosa)?.
2) Togliere dalla SRAM il coperchio che cela al suo interno la batteria montata sull'integrato (come si può vedere nell'immagine più sopra), dissaldare la vecchia batteria e saldarne una nuova. Se scegliessi questa strada, potrebbe valer la pena di eseguire questa operazione lasciando la SRAM sotto tensione (montata quindi sulla scheda elettrica, collegata all'alimentazione) o sarebbe un inutile rischio?
Queste sono le soluzioni che sono venute in mente a me; non sono esattamente un esperto di elettronica, ed è per questo motivo che ho pensato di chiedere aiuto su questo sito.

Grazie in anticipo a chiunque mi darà i suoi suggerimenti.

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Blu
  • Junior Member
  • Junior Member
Di più
6 Anni 5 Mesi fa #2 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Problema di lavoro: cercasi aiuto
Salve Blu,
devo dire che la memoria RAM con batteria è piuttosto sospetta.

Se fossi stato il progettista personalmente non avrei caricato alcun programma nella memoria, ma solo dati di configurazione utente. Per cui mi aspetto che la soluzione più facile sia cambiarla (tutta la memoria).

Se il sistema ha 20 anni la probabilità che la batteria sia scarica è elevata.
Anche se una batteria non si usa tende a scaricarsi per i processi chimici interni.
Per questo batterie vecchie, comprate nuove, possono durare poco.
Sicuramente la batteria è di buona qualità se parla di 10 anni di durata, ma i consumi della memoria quando non c'è corrente sono probabilmente paragonabili con la corrente di auto scarica e leackage.

Se hai trovato la memoria sul mercato potrebbe essere la cosa più semplice ma considera che se il prodotto è fuori commercio anche la sua batteria potrebbe essere quasi scarica.

In schede vecchie anche i condensatori elettrolitici possono invecchiare e aumentare il ripple sulla tensione di alimentazione. Se hai una breve caduta di tensione sulla rete durante un temporale, se la batteria è scarica e i condensatori sono vecchi, puoi facilmente perdere dati.

IC 1 è probabilmente la memoria UV ROM.

Saluti,

Mauro

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
6 Anni 5 Mesi fa #3 da Blu
Risposta da Blu al topic Problema di lavoro: cercasi aiuto
Ciao Mauro,

grazie mille per la risposta; concordo al 100% sulla stranezza di una RAM con batteria interna; non è per cattiveria, ma sembra essere un componente messo lì apposta per poter creare problemi una volta passato un certo numero di anni.
Sono stato sul sito della STMicroelectronics (che produce la RAM con la batteria interna), e tale componente risulta essere ancora in produzione; sempre nel suo sito, ho potuto vedere l'elenco dei distributori, e vi si trovano tutti i soliti nomi (Mouser, Farnell, Digikey e via dicendo). Quindi credo di poter andare tranquillo, anche se la ram che comprerò non sarà appena uscita di fabbrica, non credo neanche che sarà troppo vecchia.
A dirla tutta, credo che potrei anche azzardare a comprarne un paio ed aprirne una per vedere se è possibile dissaldare la batteria a bottone che monta di serie, per poterla sostituire in futuro con un'altra (anche se dubito che l'apparecchio mi durerà altri 20 anni).
Riguardo al discorso che facevi sul fatto di caricare un programma nella memoria (eventualità certamente improbabile, ma mi sembra di capire comunque possibile): se nella memoria RAM fosse stato caricato un programma, sostituendo tale memoria potrei arrecare danni al microcontrollore principale, oppure semplicemente non funzionerebbe?

Grazie ancora,

Blu

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Blu
  • Junior Member
  • Junior Member
Di più
6 Anni 5 Mesi fa #4 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Problema di lavoro: cercasi aiuto
Visto che è presente una memoria UV ROM la probabilità che sia stato caricato un programma in una RAM con batteria è bassa.
Non avere una memoria genera in generale degli errori di esecuzioni o semplici NOP eseguiti all'infinito...
Se devi eseguire qualcosa subito dopo un reset si potrebbe danneggiare qualcosa, ma ci sono bassissime probabilità.
Se quando accendi senza RAM compaiono le scritte...vuol dire che il programma è in esecuzione e non è in RAM.

Comunque 20 anni fa non esisteva la memoria flash e le EEPROM...
Sono comparse negli anni 90 ed erano costose, quindi la RAM con batteria era una soluzione al posto della EEPROM al fine di memorizzare dati degli utenti e mantenerli anche senza alimentazione.

Saluti,

Mauro

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
6 Anni 5 Mesi fa #5 da Blu
Risposta da Blu al topic Problema di lavoro: cercasi aiuto
Ciao Mauro,

grazie per la precisazione sulla situazione delle memorie negli anni 90: non la conoscevo.

Considerato ciò che hai scritto, farò il tentativo, sostituendo la RAM con un'altra nuova, che comprerò tra qualche giorno insieme a qualche altro componente.

Grazie ancora per il tuo aiuto,

Blu

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Blu
  • Junior Member
  • Junior Member
Di più
Moderatori: Mauro Laurenti

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.

Login