Quante volte posso caricare un programma o uno sketch sulla mia Arduino Uno Clone Board?


12

Sto per lavorare al mio primo progetto usando Arduino (sto per comprarne uno la prossima settimana), e uno dei nostri professori dice che possiamo caricare un programma o uno schizzo in una scheda Arduino Uno per circa 8 volte . Ha anche aggiunto che se stiamo usando una versione clone, può durare solo per 2 caricamenti di schizzi. È vero o sta bluffando? Grazie in anticipo.


2
Ho fatto flashing di schizzi su un particolare Nano più volte all'ora mentre costruivo e testavo e sono stato curioso di questo negli ultimi giorni. Sapevo che sarebbe stato almeno tra le centinaia di volte, ma non ero sicuro di quante. Grazie per avermelo chiesto.
Raddevus,

9
È ora di mettere in discussione la credibilità di quel professore. Il programma verrà trasferito nella memoria flash interna di ATMega328P e il flash sopravviverà a qualche migliaio di cicli di scrittura. Ancora di più per EEPROM. STMicro cita "cicli da 10K a 100K" ( st.com/resource/en/application_note/cd00165693.pdf )
Maximilian Gerhardt,

Correlati: SPIFFS sui livelli di usura 8266, quindi se stai risparmiando 3 KB con 3 MB gratuiti, puoi salvare 1024X prima della prima sovrascrittura (in teoria, 512X in media senza sovrapposizione di blocchi), il che significa milioni di salvataggi.
dandavis,

4
@jsotola a meno che Google non ti mostri che questa domanda ha già avuto una risposta su SE, per favore non dire agli utenti di Google (fonte: FAQ)
Cefalopode

1
Questo è l'equivalente ASE di notizie false.
Copper.hat il

Risposte:


24

Sta parlando in modo completo e assolutamente incomprensibile. Per citare dal foglio dati ATMega328P :

  • Segmenti di memoria non volatile ad alta resistenza
    • 32 KB di memoria del programma Flash autoprogrammabile nel sistema
    • EEPROM da 1 KBBytes
    • SRAM interna da 2 KB
    • Cicli di scrittura / cancellazione: 10.000 Flash / 100.000 EEPROM
    • Conservazione dei dati: 20 anni a 85 ° C / 100 anni a 25 ° C (1)
    • Sezione del codice di avvio opzionale con bit di blocco indipendenti
      • Programmazione nel sistema tramite il programma di avvio su chip
      • Vera operazione di lettura-scrittura-scrittura
    • Blocco della programmazione per la sicurezza del software

Quindi hai almeno 10.000 usi fuori da esso prima che inizi a diventare flakey.


3
Direi che ha almeno 10K usi.
Edgar Bonet,

3
Il modo in cui funziona la memoria Flash, poiché invecchiando ci vuole più tempo per cancellare una pagina. Il 10.000 è il numero minimo previsto di operazioni di cancellazione su una pagina prima che il tempo impiegato per la cancellazione possa iniziare a superare una soglia predefinita (specificata dal produttore). Quindi sì, ti aspetteresti di ottenere più di quel numero (è il minimo garantito), o ci vorrà solo un po 'più di tempo per cancellare le pagine.
Majenko

2
In pratica, stavo riutilizzando un Arduino Uno e apportando costantemente piccole modifiche al codice. Il caricamento di nuovo richiede abbastanza tempo che non vale nemmeno la pena preoccuparsene. È molto più probabile che tu inghiotti la scheda in qualche altro modo se stai saldando o piegando i fili. Inoltre, quando fai Arduino ... le schede sono così pazzesche a buon mercato (in particolare se puoi passare a una MiniPro 5V) che la cosa principale di cui devi preoccuparti è fare attenzione quando si salda il sensore / roba IO. La scheda è estremamente affidabile e puoi semplicemente sostituirla a buon mercato se hai dei dubbi sulla scheda.
Rob,

1
ogni volta che si parla di "logoramento" dello spazio di archiviazione, tenere presente che in genere è questo: 1) È necessario "stressare" esplodere intere aree piene di zero e quindi scrivere quelle sopra. 2) Lo stoccaggio a stato solido di solito ha algoritmi di livellamento dell'usura complessi per ridurre al minimo l'impatto di questo. 3) È un Arduino economico. 4) Il linguaggio è un sottoinsieme di C ++, quindi puoi deridere un framework di test per testarlo completamente prima che colpisca l'hardware; limitare l'invio non necessario di codice non testato nell'hardware.
Rob,

1
ecco un semplice esempio di derisione della scheda in modo da poter semplicemente testare l'unità localmente su Linux (compilata con GCC), piuttosto che spingere costantemente verso l'hardware per testare. L'idea di base è quella di creare un framework che assomigli a tutte le chiamate di Arduino che effettivamente fai dal tuo codice: github.com/rfielding/octaveRounder/tree/master/test
Rob
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.