Сколько раз я могу загрузить программу или скетч на мою Arduino Uno Clone Board?

12

Я собираюсь работать над моим самым первым проектом с использованием Arduino (я собираюсь купить его на следующей неделе), и один из наших преподавателей говорит, что мы можем загрузить программу или скетч в Arduino Uno Board только примерно 8 раз. , Он также добавил, что если мы используем клонированную версию, она продлится только 2 загрузки эскиза. Это правда или он блефует? Заранее спасибо.

А. Раймундо
источник
2
Я собирал эскизы для одного конкретного Nano несколько раз в час, когда строил и тестировал, и мне самому было интересно это за последние несколько дней. Я знал, что это будет по крайней мере в сотнях раз, но не был уверен, сколько. Спасибо за вопрос.
Раддевус
9
Время поставить под сомнение авторитет этого профессора. Программа будет перенесена во внутреннюю флэш-память ATMega328P, и она выдержит несколько тысяч циклов записи. Еще больше для EEPROM. STMicro цитирует слова « 10–100 тыс. Циклов » ( st.com/resource/en/application_note/cd00165693.pdf )
Максимилиан Герхардт,
Связано: SPIFFS на уровнях износа 8266, поэтому, если вы экономите 3 КБ с 3 МБ свободного места, вы можете сохранить 1024X перед первой перезаписью (теоретически 512X в среднем без перекрытия блоков), что означает миллионы сохранений.
Дандавис
4
@jsotola, если Google не покажет вам, что на SE этот вопрос уже получен, пожалуйста, не говорите пользователям Google (источник: FAQ)
Cephalopod
1
Это ASE эквивалент поддельных новостей.
медь. Что

Ответы:

24

Он говорит полный и полный бред. Цитировать из таблицы данных ATMega328P :

  • Высоконадежные энергонезависимые сегменты памяти
    • 32 Кбайт внутрисистемной самопрограммируемой флэш-памяти программ
    • 1KBytes EEPROM
    • 2KBytes Внутренняя SRAM
    • Циклы записи / стирания: 10000 Flash / 100000 EEPROM
    • Хранение данных: 20 лет при 85 ° C / 100 лет при 25 ° C (1)
    • Дополнительный раздел кода загрузки с независимыми битами блокировки
      • Внутрисистемное программирование с помощью встроенной программы загрузки
      • Истинная операция чтения во время записи
    • Блокировка программирования для безопасности программного обеспечения

Таким образом, у вас есть по крайней мере 10000 использований, прежде чем он начнет выходить из строя.

Маженко
источник
3
Я бы сказал, что он использует как минимум 10К.
Эдгар Бонет
3
Способ работы флэш-памяти: с возрастом требуется больше времени для удаления страницы. 10000 - это минимальное ожидаемое количество операций стирания на странице, прежде чем время, необходимое для стирания, может начать превышать предварительно определенный (указанный производителем) порог. Так что да, вы ожидаете получить больше, чем это число (это минимальный гарантированный), или это займет немного больше времени, чтобы стереть страницы.
Majenko
2
На практике я повторно использовал Arduino Uno и постоянно вносил небольшие изменения в код. Повторная загрузка занимает достаточно много времени, поэтому об этом даже не стоит беспокоиться. У вас гораздо больше шансов обмануть плату другим способом, если вы паяете или сгибаете провода. Кроме того, при выполнении Arduino ... платы настолько безумно дешевы (особенно если вы можете перейти на MiniPro 5V), что главное, о чем вам нужно беспокоиться, - это просто быть осторожным при пайке сенсора / ввода / вывода. Плата очень надежна, и вы можете просто ее заменить, если у вас возникнут сомнения по поводу платы.
Роб
1
всякий раз, когда вы говорите о «изнашивании» хранилища, просто имейте в виду, что это обычно так: 1) Вы должны «напряженно» взорвать целые области, полные нулей, а затем записать их поверх этого. 2) Твердотельное хранилище обычно имеет сложные алгоритмы выравнивания износа, чтобы минимизировать влияние этого. 3) Это дешевый Arduino. 4) Язык является подмножеством C ++, поэтому вы можете смоделировать среду тестирования, чтобы полностью протестировать ее до того, как она достигнет аппаратного обеспечения; ограничить ненужное проталкивание непроверенного кода в аппаратное обеспечение.
Роб
1
Вот простой пример макетирования платы, так что вы можете просто тестировать ее локально под Linux (скомпилировано с GCC), вместо того, чтобы постоянно настаивать на тестировании оборудования. Основная идея состоит в том, чтобы создать фреймворк, который будет выглядеть так же часто, как и вызовы Arduino из вашего кода: github.com/rfielding/octaveRounder/tree/master/test
Rob