Wie oft kann ich ein Programm oder eine Skizze auf mein Arduino Uno Clone Board hochladen?


12

Ich bin dabei, an meinem allerersten Projekt mit Arduino zu arbeiten (ich bin gerade dabei, nächste Woche ein Projekt zu kaufen), und einer unserer Professoren sagt, dass wir ein Programm oder eine Skizze nur ungefähr acht Mal in ein Arduino Uno-Board hochladen können . Er fügte hinzu, dass wenn wir eine Klon-Version verwenden, es nur 2 Sketch-Uploads dauern kann. Ist das wahr oder blufft er? Danke im Voraus.


2
Während ich baue und teste, habe ich mehrmals pro Stunde Skizzen zu einem bestimmten Nano geflasht, und ich war in den letzten Tagen selbst neugierig darauf. Ich wusste, dass es mindestens in den Hunderten von Malen sein würde, war mir aber nicht sicher, wie viele. Danke für die Frage.
Raddevus

9
Zeit, die Glaubwürdigkeit dieses Professors in Frage zu stellen. Das Programm wird in den internen Flash-Speicher des ATMega328P geflasht, und der Flash-Speicher übersteht einige tausend Schreibzyklen. Noch mehr für EEPROM. STMicro zitiert "10K bis 100K Zyklen" ( st.com/resource/en/application_note/cd00165693.pdf )
Maximilian Gerhardt

Verwandte Themen: SPIFFS auf den 8266-Verschleißstufen. Wenn Sie also 3 KB mit 3 MB freiem Speicherplatz einsparen, können Sie vor dem ersten Überschreiben 1024X einsparen (theoretisch 512X im Durchschnitt ohne Blocküberlappung), was Millionen von Einsparungen bedeutet.
Dandavis

4
@jsotola, es sei denn, Google zeigt Ihnen, dass diese Frage bereits auf SE beantwortet wurde. Bitte teilen Sie den Nutzern nicht Google mit (Quelle: FAQ)
Kopffüßer,

1
Dies ist das ASE-Äquivalent zu gefälschten Nachrichten.
Kupfer.hat

Antworten:


24

Er redet komplett und völlig Kauderwelsch. So zitieren Sie aus dem ATMega328P-Datenblatt :

  • Nichtflüchtige Speichersegmente mit hoher Lebensdauer
    • 32 KByte selbstprogrammierbarer In-System-Flash-Programmspeicher
    • 1 KByte EEPROM
    • 2 KB interner SRAM
    • Schreib- / Löschzyklen: 10.000 Flash / 100.000 EEPROM
    • Vorratsdatenspeicherung: 20 Jahre bei 85 ° C / 100 Jahre bei 25 ° C (1)
    • Optionaler Bootcode-Abschnitt mit unabhängigen Sperrbits
      • In-System-Programmierung durch On-Chip-Boot-Programm
      • Echte Lese-Schreib-Operation
    • Programmiersperre für Software-Sicherheit

Sie haben also mindestens 10.000 Verwendungen, bevor es anfängt, flockig zu werden.


3
Ich würde sagen, er hat mindestens 10K verwendet.
Edgar Bonet

3
Die Funktionsweise des Flash-Speichers ist so, dass das Löschen einer Seite mit zunehmendem Alter länger dauert. Die 10.000 sind die minimale erwartete Anzahl von Löschvorgängen auf einer Seite, bevor die zum Löschen benötigte Zeit einen vordefinierten (vom Hersteller festgelegten) Schwellenwert überschreitet. Also ja, Sie würden erwarten, dass Sie mehr als diese Zahl erhalten (das ist das garantierte Minimum), oder es dauert nur ein bisschen länger, um Seiten zu löschen.
Majenko

2
In der Praxis habe ich ein Arduino Uno wiederverwendet und ständig kleine Änderungen am Code vorgenommen. Das erneute Hochladen dauert lange genug, sodass es sich nicht einmal lohnt, sich darüber Gedanken zu machen. Es ist weitaus wahrscheinlicher, dass Sie die Platine auf andere Weise verderben, wenn Sie Drähte löten oder biegen. Außerdem, wenn Sie Arduino machen ... sind die Boards so verrückt billig (besonders wenn Sie auf einen MiniPro 5V umsteigen können), dass Sie sich hauptsächlich darum kümmern müssen, nur vorsichtig zu sein, wenn Sie den Sensor / IO-Kram verlöten. Die Platine ist äußerst zuverlässig und kann nur dann billig ausgetauscht werden, wenn Sie irgendwelche Zweifel an der Platine haben.
Rob

1
Wenn Sie von "Abnutzung" des Speichers sprechen, denken Sie einfach daran, dass dies im Allgemeinen so ist: 1) Sie müssen ganze Bereiche mit Nullen "stressig" sprengen und dann die Einsen darüber schreiben. 2) Solid-State-Speicher verfügen normalerweise über komplexe Algorithmen zum Ausgleich des Verschleißes, um die Auswirkungen auf ein Minimum zu reduzieren. 3) Es ist ein billiger Arduino. 4) Die Sprache ist eine Teilmenge von C ++, sodass Sie ein Testframework nachahmen können, um es vollständig zu testen, bevor es auf die Hardware trifft. das unnötige Einschieben von nicht getestetem Code in die Hardware zu begrenzen.
Rob

1
Hier ist ein einfaches Beispiel für das Verspotten des Boards, damit Sie es nur lokal unter Linux (mit GCC kompiliert) testen können, anstatt ständig auf die zu testende Hardware zu drängen. Die Grundidee besteht darin, ein Framework zu erstellen, das so aussieht, wie Sie es mit Ihrem Code tatsächlich machen: github.com/rfielding/octaveRounder/tree/master/test
Rob
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.