Ile razy można ponownie flashować oprogramowanie Marlin na płycie RAMPS 1.4, zanim spowoduje to uszkodzenie pamięci ROM?

9

Przede wszystkim pracuję z zestawem Folger Tech Prusa i3, jeśli to robi różnicę. Uważam też, że Arduino to Mega 2560.

Wiem gdzieś z tyłu głowy, że elektrycznie programowalna pamięć ROM, taka jak to, co musi znajdować się na płycie Arduino przechowującej oprogramowanie, nieco się psuje, za każdym razem, gdy do niej piszesz. W tej chwili próbuję skalibrować kolejny problem z drukowaniem i myślę, że muszę jeszcze raz zmodyfikować oprogramowanie wewnętrzne, co już zrobiłem kilka razy. Zaczynam się więc martwić, ile razy mogę to zrobić.

Cóż, kiedy przypomniałem sobie akronim „EEPROM” i po małym googlowaniu natknąłem się na to, Arduino - EEPROM , który mówi, że może obsłużyć 100k cykli, więc myślę, że mam odpowiedź, ale problem polega na tym, że nie jestem pewien, czy cykl jest przesyłany cały plik? Czy nie byłby to pojedynczy fragment danych? A jeśli tak, ile cykli zużyłby przeciętny plik Marlin?

Znalazłem to również:

ale byłbym bardzo zaskoczony, jeśli przesłałem do niego więcej niż 2000 razy

na Mega2560 murowany? nie wykryto, awaria DFU , co wskazuje, że odpowiedź może być tak niska jak 2000.

Także to:

Tryby awaryjne

Istnieją dwa ograniczenia przechowywanych informacji; wytrzymałość i zatrzymywanie danych.

Podczas przepisywania tlenek bramki w tranzystorach pływających bramki stopniowo gromadzi uwięzione elektrony. Pole elektryczne uwięzionych elektronów dodaje się do elektronów w bramie pływającej, obniżając okno między napięciami progowymi dla zer i zer. Po wystarczającej liczbie cykli przepisywania różnica staje się zbyt mała, aby można ją było rozpoznać, komórka utknęła w zaprogramowanym stanie i następuje awaria wytrzymałości. Producenci zwykle określają maksymalną liczbę ponownych zapisów wynoszącą 1 milion lub więcej. [5]

Podczas przechowywania elektrony wstrzykiwane do pływającej bramki mogą dryfować przez izolator, szczególnie w podwyższonej temperaturze, i powodować utratę ładunku, powodując powrót komórki do stanu wymazanego. Producenci zazwyczaj gwarantują przechowywanie danych przez 10 lat lub dłużej. [6]

z Wikipedia: EEPROM - tryby awarii , wskazując, że odpowiedź może być w milionach.

W tym momencie zastanawiam się, czy ekspert może to zobaczyć i złagodzić mój niepokój ...

użytkownik273872
źródło
AT Mega2560 ma wewnętrzną pamięć flash, ale pomaga spojrzeć na zewnętrzne urządzenia flash w celu uzyskania informacji. Istnieje kilka różnych klas zewnętrznych urządzeń flash. Niektóre można sflashować bardzo niewiele razy, a z tych części może pochodzić liczba 2000. Inne, wyższej jakości części mogą być ponownie lakierowane milion razy. W mojej pracy zwykle widzimy oceny 10 000 dla części tańszych i 100 000 dla części droższych. W przypadku zintegrowanej pamięci flash może nie istnieć taki zakres ceny i żywotności, ponieważ komplikowałby to kanał testowania i dystrybucji producenta.
cmm

Odpowiedzi:

14

EEPROM nie jest miejscem, w którym przechowywany jest sam program, co jest istotne dla twojego pytania, to flash. Flash w ATmega2560 jest oceniany na 10 000 cykli (tzn. Możesz go przeprogramować co najmniej 10 000 razy).

Tom van der Zanden
źródło
„Cykl” dla pamięci flash nie polega na pisaniu, ale na wymazywaniu. Kiedy Flash jest zapisywany, należy go najpierw usunąć. Proces kasowania powoduje obciążenie urządzenia i przez wiele cykli prowadzi do kilku trybów awarii. Zapisywanie danych w skasowanej części jest łagodniejsze. Dlatego nie ma znaczenia, jak duży jest ten program. „Ponowne flashowanie” zaczyna się od cyklu kasowania, po którym następuje tyle cykli programowania, ile potrzeba.
cmm
1

AVR ma SRAM dla zmiennych (co zwykle nazywa się RAM), ma EEPROM dla zmiennych nieulotnych i ma flash dla kodu wykonywalnego. (Harvard Architecture!)

Do ponownego flashowania oprogramowania układowego nie są ważne szybkości zapisu SRAM ani EEPROM, ale prędkości flash są. Szybkość zapisu flash wynosi około 100 tysięcy do miliona, więc nie powinno to stanowić problemu.

Artykuł, który podłączyłeś, stwierdza również, że nie napisał więcej niż 2000 przepisów i dlatego powinien być w porządku. Mogę tylko się zgodzić. Kilka tysięcy powtórzeń nie stanowi problemu. Gdy zbliżysz się do 100 tysięcy, możesz zacząć się martwić.

Bity Flash można zapisać tylko od 1 do 0. Kasowanie flasha powoduje zapisanie wszystkich bitów do 1. Kasowanie można wykonać tylko na stronie flash (rozmiar zależy od urządzenia, ale zwykle wielokrotności 512).

Lars Pötter
źródło