Molti anni fa ho lavorato nel reparto R&D di un’azienda che sviluppava e produceva prodotti di consumo specializzati. Uno dei nostri prodotti aveva un alimentatore separato che includeva un display LCD e controlli programmabili. Erano i tempi dei microcontrollori a 8 bit e dei display LCD monocromatici.
Mi è stato assegnato il compito di progettare una maschera di prova per la scheda principale dell’alimentatore. La configurazione del test che ho progettato era basata su un sistema di acquisizione dati National Instruments, con alcuni software di controllo specializzati in esecuzione su un PC e un programmatore in-circuit che programmava la scheda con la versione software finale al termine del ciclo di test. Il collegamento alla scheda avveniva con una maschera ICT (in circuito test) azionata manualmente con pin pogo che contattavano i punti di test sul fondo della scheda.
Il funzionamento della configurazione di prova è stato molto semplice. L’operatore posiziona la scheda sulla maschera, abbassa la piastra superiore, scansiona il numero di serie e preme “test”. Per una buona scheda apparirà sullo schermo il risultato “test superato”, altrimenti apparirà un messaggio con la natura dell’anomalia della scheda.
Hai un’esperienza memorabile nella risoluzione di un problema di ingegneria al lavoro o nel tempo libero? Raccontaci la tua favola.
La maschera è stata costruita da un appaltatore, ho costruito la scheda di interfaccia, ho scritto il software di prova e ho eseguito il debug. Tutto andò bene. Le schede sono state testate e programmate e il tester ha diagnosticato i guasti della scheda. Quindi, è andato al piano di produzione.
I guai sono iniziati immediatamente. Il tester stava contrassegnando le schede come buone, ma una volta assemblate negli alimentatori, gli schermi LCD mostravano caratteri casuali e incomprensioni generali. Alcuni degli alimentatori non funzionerebbero correttamente. Naturalmente, tutto è tornato direttamente alla mia scrivania con una richiesta di spiegazione.
Trovare la causa non è stato difficile, in realtà, e ha comportato l’esame del contenuto della memoria.
Durante il test del jig, ho lavorato al mio ritmo. Ma sul piano di produzione, i tecnici hanno lavorato molto più velocemente. Non appena sullo schermo lampeggiava il messaggio “pass”, sollevavano la tavola dal jig in pochi secondi. Questo ha rilasciato il pin di “reset” del microprocessore e i condensatori sulla scheda hanno ancora una carica sufficiente per alimentare il circuito, quindi il processore avrebbe immediatamente iniziato a eseguire il suo programma per la prima volta.
Il programma andrebbe nella memoria flash per recuperare i parametri di lavoro e, trovando la memoria vuota, inizierebbe a scrivere i parametri di default. A questo punto, i condensatori si esaurirebbero e il processore si spegnerebbe nel mezzo di un ciclo di scrittura della memoria flash, lasciando la memoria con contenuti indefiniti. Una volta acceso dopo l’assemblaggio, il processore trovava i parametri nella memoria, non si rendeva conto che erano danneggiati e li visualizzava sullo schermo.
La soluzione corretta sarebbe stata quella di riscrivere il software operativo per aggiungere più controlli di memoria, ma il tempo era breve e le persone che lavoravano al software erano oberate di lavoro e di cattivo umore, quindi ho semplicemente aggiunto un ritardo di 2 secondi tra lo spegnimento della maschera di prova e visualizzando il messaggio “test superato”. Dopo di che, è andato tutto liscio.
Benny Attar attualmente lavora come leader del team di ingegneri in un laboratorio di test e certificazione EMC.
Contenuto relativo