Possibili guasti del microcontrollore: Perché accadono e come prevenirli

“Anything that can go wrong will go wrong” written on a whiteboard

Devo molto del mio successo nella progettazione al mio college. Non per gli esperimenti di laboratorio dove abbiamo imparato cosa potrebbe accidentalmente far saltare un condensatore, ma perché abbiamo imparato che la legge di Murphy può colpire quando meno te lo aspetti. Dato che ho passato molto tempo giocando a Warcraft, lottando per terminare missioni senza fine, mi sono sempre affidato al mio computer perché tutto funzionasse al meglio.

All'epoca, i computer erano piuttosto limitati e non era raro vedere il famigerato popup "Blue Screen Of Death" di Windows. Era frustrante essere interrotti durante il gioco di Warcraft, e perdere ore di missioni non salvate a causa di un blocco di sistema del computer mi faceva venire un grosso attacco di panico. Come progettista, potresti aver provato lo stesso panico quando il tuo microcontrollore si guasta durante il funzionamento effettivo.

Come i possibili guasti del microcontrollore influiscono su un sistema

In un sistema integrato, i guasti dei microcontrollori (MCU) potrebbero avere ripercussioni peggiori rispetto al mancato rispetto della scadenza del tuo incarico. Le MCU sono spesso il cuore di applicazioni come dispositivi di pagamento, apparecchiature mediche e sistemi di sicurezza. Questi sistemi richiedono un'elevata stabilità e spesso hanno basse tolleranze per i guasti di sistema.

Un'unità MCU danneggiata può causare un arresto completo delle operazioni. Ciò può causare inconvenienti agli utenti o comportare rischi per la sicurezza in applicazioni critiche. Per i clienti, sistemi inaffidabili influiscono sulla capacità operativa e possono causare perdite di ricavi. Per noi progettisti, avere centinaia di prodotti in costante guasto durante il funzionamento effettivo è un duro colpo per l'orgoglio e può influenzare la nostra reputazione.

Businesspeople blaming frustrated colleague

Puntare il dito non risolve il problema di un microcontrollore difettoso.

Perché un microcontrollore si guasta e chi dovrebbe esserne responsabile

Un sistema integrato affidabile richiede uno sforzo congiunto del progettista hardware e del programmatore del firmware. Alcuni difetti di progettazione possono passare inosservati durante la fase di sviluppo e solo dopo il loro impiego effettivo è possibile valutarne la gravità. In questo caso, chi dovrebbe assumersi la maggior parte delle responsabilità? 

Prima di iniziare a puntare il dito, diamo un'occhiata ai motivi più comuni per cui i microcontrollori si danneggiano.

1. Sovraccarico della Memory Stack

La Memory Stack di un microcontrollore è un'area designata della sua RAM interna che viene utilizzata per un uso temporaneo. La dimensione di una Memory Stack è limitata e varia a seconda delle diverse MCU. Quando il programmatore del firmware alloca una variabile maggiore rispetto alla dimensione dello stack, può verificarsi un sovraccarico durante il tempo di esecuzione e causare il malfunzionamento del firmware.

2. Puntatori illegali

Nella programmazione del firmware dell'MCU, un puntatore è comunemente usato per indicare l'indirizzo di una variabile o delle funzioni del programma. La dichiarazione e l'utilizzo di puntatori richiedono che il programmatore di firmware rispetti la rigorosa sintassi definita dal linguaggio di programmazione, spesso in C. L'introduzione per errore di un puntatore illegale può indurre l'MCU a tentare di elaborare variabili o funzioni in indirizzi che sono al di fuori del suo campo di validità. Questo potrebbe causare il blocco dell'MCU.

3. Fonte di tensione instabile

Un fattore spesso trascurato è che un'unità MCU ha bisogno di una rete elettrica stabile per funzionare in modo affidabile. Una MCU potrebbe danneggiarsi quando la sua fonte di alimentazione è costantemente interrotta da interferenze esterne. Un calo della tensione di esercizio può causare un errato funzionamento di un'unità MCU o il suo blocco completo.

4. Interferenza elettrica

Se non si riescono a gestire le interferenze elettriche, in particolare quelle indotte da relè e motori, queste potrebbero causare il blocco della tua MCU. Durante uno dei miei precedenti progetti, che pilotava un semplice motore a corrente continua, la mia MCU si guastava ogni volta che cercava di azionare il motore in retromarcia. Questo problema è stato risolto aumentando l'isolamento elettrico, utilizzando un amplificatore operazionale.

5. Processi di assemblaggio inadeguati

A volte, il guasto di un microcontrollore non può avere nulla a che vedere con il tecnico hardware o firmware. I giunti di saldatura di bassa qualità sui pin dell'MCU possono causare un comportamento imprevedibile della stessa MCU. Se alcuni dei tuoi sistemi integrati non funzionano, potresti iniziare con il verificare il processo di qualità del tuo fornitore.

Microchip production factory

La tua progettazione è efficiente come il tuo assemblatore di PCB.

Invece di addossarsi le colpe, gli ingegneri hardware e firmware dovrebbero fare la loro parte nella progettazione di un sistema integrato affidabile. La pratica di una buona etica di programmazione e la pianificazione in anticipo dell'allocazione di memoria sono i migliori esercizi da seguire. Per i programmatori, semplificare le cose può essere una scelta saggia, per ridurre al minimo i bug dei codici.

I progettisti hardware devono considerare l'ambiente in cui l'hardware sarà utilizzato e prepararsi a tutte le possibilità. Questo significa utilizzare tutte le migliori pratiche di progettazione di base e gestire appieno gli strumenti del tuo software PCB per testare il progetto. CircuitStudio di Altium, progettato con la tecnologia Altium Designer, ti fornisce gli strumenti per progettare circuiti stampati professionali.

Contatta un esperto Altium per capire perché il tuo microcontrollore sia difettoso.

Informazioni sull'autore

Altium Designer

PCB Design Tools for Electronics Design and DFM. Information for EDA Leaders.

Visita il sito Altri Contenuti da Altium Designer
Articolo precedente
Batteria al litio-ferro-fosfato o ioni di litio per sistemi embedded
Batteria al litio-ferro-fosfato o ioni di litio per sistemi embedded

Può essere difficile scegliere la batteria perfetta per un PCB. Questo blog può aiutarti a scegliere tra ba...

Articolo successivo
Uso dei Templates di progetto per lo sviluppo di progetti PCB
Uso dei Templates di progetto per lo sviluppo di progetti PCB

Utilizzando i template per lo sviluppo di progetti PCB in Altium Designer potrai aumentare l'efficienza e s...