Come faccio a capire se la mia tavola si sta avvicinando alla fine della vita?


12

Ho uno uno che uso da 3 anni. Lo userò di nuovo in un progetto piuttosto critico in cui il fallimento da parte della scheda potrebbe essere piuttosto costoso e pericoloso. Quindi, vorrei essere sicuro che il consiglio non si avvicini alla fine della vita o non fallirà presto. Esiste un modo affidabile per capire per quanto tempo la scheda funzionerà senza guasti o riduzione delle prestazioni?


"il fallimento da parte del consiglio di amministrazione potrebbe essere piuttosto costoso e pericoloso". Definisci costoso e definisci pericoloso. Forse un Arduino non è la soluzione migliore per la tua applicazione, forse devi progettare in un meccanismo sicuro.
jippie,

@jippie Pensa a piccoli UAV e / o altri robot medio-piccoli.
asheeshr,

Risposte:


8

Sfortunatamente, non c'è molto modo di determinare realmente l '"usura" nel contesto dell'elettronica a stato solido.

Probabilmente le cose che hanno maggiori probabilità di guastarsi sono i condensatori elettrolitici e i connettori.


Innanzitutto, se stai usando una CPU ATmega per qualcosa che potrebbe danneggiare qualcuno CONTATTA ATMEL E PARLA DELLE PRECAUZIONI DI SICUREZZA . La CPU ATmega utilizzata nella maggior parte dei modelli Arduino non è classificata per l'uso in tali situazioni.

In OGNI scheda tecnica:

I prodotti Atmel non sono destinati, autorizzati o garantiti per l'uso come componenti in applicazioni destinate a sostenere o sostenere la vita.

Ora, realisticamente, questo è probabilmente repellente per lo più avvocato, ma dovresti comunque prendere le precauzioni appropriate.

Davvero, mentre non c'è nulla su una comune scheda Arduino che si consuma davvero tranne i connettori, perché stai cercando di risparmiare $ 30 a un potenziale costo enorme? Basta acquistare una nuova scheda.

Consiglio vivamente anche di aver scelto una scheda con un SMm ATmega328P, poiché ciò rimuove i contatti della presa IC dall'elenco dei problemi. Se possibile, rimuovere anche le intestazioni dei pin e i fili di saldatura direttamente sulla scheda. Cerca di ridurre al minimo i connettori, poiché sono frequenti punti di errore.


4

Una delle sezioni dell'Arduino che rischia di diventare inaffidabile nel tempo è la sua memoria. Esistono tre pool di memoria nel microcontrollore utilizzato sulle schede Arduino basate su avr:

  • Memoria flash (spazio del programma), in cui è archiviato lo schizzo di Arduino.
  • SRAM (memoria ad accesso casuale statico) è dove lo schizzo crea e manipola le variabili quando viene eseguito.
  • EEPROM è lo spazio di memoria che i programmatori possono utilizzare per memorizzare informazioni a lungo termine.

La memoria è una parte della scheda che può essere verificata e verificata, e quindi valutata per affidabilità / integrità. Un modo molto semplice per controllare la memoria sarebbe quello di scrivere un certo schema a 8 bit (carattere byte) su ogni indirizzo in memoria e quindi leggere il valore presente da ogni indirizzo. Se il valore che è stato scritto corrisponde al valore letto, quel blocco specifico a 8 bit in memoria funziona correttamente al momento attuale.

L'usura nella memoria ROM di solito si verifica in uno schema a blocchi, ovvero i blocchi di n * 8 bit si degradano nel tempo. Pertanto, per un chip ROM da 2 KB byte, è possibile stimare l'integrità del chip scrivendo e leggendo da ogni byte sul chip e calcolando la percentuale di blocchi correttamente funzionanti. Se la percentuale di blocchi non riusciti è significativa (15% -20%), ciò significa che la memoria probabilmente fallirà presto.

Il codice di test può essere scritto usando metodi separati per ciascuna delle sezioni di memoria.

SRAM

Qualsiasi variabile dichiarata staticamente o dinamicamente viene allocata sulla SRAM. Quindi, potremmo dichiarare un array di caratteri di grandi dimensioni (~ 2000) e riempire ogni elemento con 255 (tutti i bit 1). Quindi, potremmo provare a leggere ciascuno di quegli elementi e vedere se il valore letto è effettivamente 255.

EEPROM

La EEPROM può essere manipolata usando la libreria EEPROM . La libreria fornisce funzioni per leggere e scrivere da posizioni specifiche nella EEPROM. Pertanto, tutti gli indirizzi di memoria possono essere testati semplicemente eseguendo il loop sull'intero spazio di memoria. Questa operazione richiederà 500 scritture e letture.

A seconda dell'utilizzo della scheda, è più probabile che la EEPROM fallisca per prima, ma non è fondamentale per il funzionamento della scheda.

Veloce

I dati possono essere memorizzati nella memoria flash usando la PROGMEMdirettiva. Simile a SRAM, un array di grandi dimensioni può essere dichiarato e inizializzato qui. Quindi, i valori possono essere letti e controllati.


Questo si concentra solo sul microcontrollore, che è altamente improbabile che sia il bit meno affidabile sulla scheda. Il flash è valutato a 10k cicli - questo è molto difficile da ottenere. Inoltre, il test dimostrerebbe che ora funziona, non quando viene inserito nell'applicazione. È sicuramente molto più semplice convalidare la memoria del programma una volta programmata o la EEPROM?
Cybergibbons,

Metterei in dubbio la frase "Una delle sezioni dell'Arduino che probabilmente diventerà inaffidabile nel tempo è la sua memoria". - il flash può eseguire 10k cicli, la EEPROM 100k cicli. Questo è molto scritto.
Cybergibbons,

@Cybergibbons Le applicazioni ad alta intensità di memoria possono finire per fare oltre 100 scritture al minuto. Non comune, ma possibile quando si utilizza un numero elevato di sensori. Il test ci darebbe una percentuale della memoria che funziona correttamente. Non ho una conoscenza specifica dei chip ROM su Arduino, ma molte ROM hanno la capacità di diffondere cicli di lettura e scrittura su tutto il chip. L'effetto di ciò è che quando anche alcune posizioni della memoria si degradano, è un segno che l'intero chip si degraderà presto. Anche se i cicli R / W non sono distribuiti, anche allora, se alcune aree iniziano a fallire, allora è un segno che ...
asheeshr,

almeno una parte del chip ha subito una notevole usura, rendendo il chip parzialmente inaffidabile. In entrambi i casi, la valutazione dell'intero intervallo di memoria disponibile è un metodo abbastanza affidabile per capire lo stato corrente del chip, che può fornire un'indicazione di errore nel prossimo futuro . Sì, questo non mi dirà se il chip fallirà nel prossimo progetto, ma nel caso di un'applicazione pericolosa o costosa, certamente non farei funzionare un chip con una maggiore probabilità di guasto.
asheeshr,

Se stai scrivendo su EEPROM o lampeggi centinaia di volte al minuto, stai comunque aspettando una vita di meno di un giorno. Questo è solo un uso inappropriato. Non c'è alcun livello di usura in un ATmega.
Cybergibbons,

-4

Modifica: le persone che hanno votato verso il basso la mia risposta, Ohh comune non essere troppo sciocco! per questo devi essere un elettrone e passare attraverso il circuito stesso per verificare che tutto sia ok o no :)

Collegare la scheda a una porta USB del computer e verificare che l'indicatore di alimentazione LED verde sulla scheda si illumini. Le schede Arduino standard (Uno, Duemilanove e Mega) hanno un indicatore di alimentazione a LED verde situato vicino all'interruttore di ripristino.

Un LED arancione vicino al centro della scheda (etichettato "LED 13 Pin" nell'immagine seguente) dovrebbe accendersi e spegnersi quando la scheda è accesa (le schede provengono dalla fabbrica precaricate con il software per far lampeggiare il LED come un semplice controllo che la scheda funziona).

inserisci qui la descrizione dell'immagine

Se il LED di alimentazione non si illumina quando la scheda è collegata al computer, è probabile che la scheda non sia alimentata.

Il LED lampeggiante (collegato al pin di uscita digitale 13) è controllato dal codice in esecuzione sulla scheda (le nuove schede sono precaricate con lo schizzo di esempio Blink). Se il LED del pin 13 lampeggia, lo schizzo funziona correttamente, il che significa che il chip sulla scheda funziona. Se il LED di alimentazione verde è acceso ma il LED del pin 13 non lampeggia, è possibile che il codice di fabbrica non si trovi sul chip. Se non si utilizza una scheda standard, potrebbe non essere presente un LED incorporato sul pin 13, quindi controllare la documentazione per i dettagli della scheda.

Le guide online per iniziare con Arduino sono disponibili su Windows , Mac OS X e Linux .


2
La domanda è come verificare se la scheda si sta avvicinando al fallimento , non se è già fallita .
asheeshr,

@AsheeshR: Ohh comune, non essere troppo sciocco! per questo devi essere un elettrone e passare attraverso il circuito stesso per verificare che tutto sia ok o no :)
Hardik Thaker,

2
@HardikThaker Perché non lo metti invece in una risposta? Sarebbe stato meglio, suppongo. Inoltre, se non vuoi buttare via la tua risposta (è utile), puoi sempre porre la domanda giusta e rispondere tu stesso. Di solito viene fatto dagli esperti per rispondere alle domande più frequenti, in questo modo .
Ricardo,

@Ricardo: Roger quello! grazie compagno ! Lo terrò a mente: P migliore fortuna la prossima volta per me;) -4 e contando: P
Hardik Thaker,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.