Перейти к содержанию

Сколько раз можно перепрошить микроконтроллер?

Обновлено Редакция GAW

Ресурс флеш-памяти считают в циклах стирания и записи: каждый раз, когда страницу стирают и пишут заново, ячейки немного изнашиваются. Производители указывают минимум, который гарантирован для всех экземпляров.

МикроконтроллерФлеш-память программEEPROM
ATmega328P (Arduino Uno, Nano)10 000 циклов100 000 циклов
STM32F103 (Blue Pill)10 000 цикловнет, только флеш

Хватит ли этого для отладки

Даже если прошивать плату 20 раз в день каждый день, ресурса хватит на

10 00020=500 дней,\frac{10\,000}{20} = 500\ \text{дней},

то есть почти полтора года непрерывной отладки одной платы. Для разработки ресурс флеш-памяти не ограничение.

Когда ресурс кончается быстро

Опасна не прошивка, а программа, которая сама пишет во флеш. Если сохранять во флеш-память STM32F103 показания раз в минуту в одну и ту же страницу, стирая её перед каждой записью, 10 000 циклов закончатся примерно через 10 000 минут — меньше чем за неделю. Ресурс тратит именно стирание: в ещё не записанные ячейки стёртой страницы можно дописывать без нового стирания. Поэтому данные пишут в разные страницы по кругу, копят в ОЗУ и сохраняют реже, а у AVR используют EEPROM с ресурсом в 10 раз больше.

Какие страницы и секторы у каждого STM32 и сколько времени занимает их стирание, показывает калькулятор секторов флеш-памяти STM32. Как устроены флеш-память и загрузчик STM32, разбирает статья «Flash и загрузчик STM32», а память ATmega328P описана на странице ATmega328P.

Похожие вопросы

Изнашивает ли флеш-память чтение?

Нет. Ресурс в даташитах указан в циклах стирания и записи. Программа выполняется из флеш-памяти миллиарды раз, и это ресурс не расходует.

Что будет, когда ресурс флеш-памяти закончится?

Гарантия производителя перестанет действовать: ячейки могут перестать надёжно стираться и хуже держать заряд, то есть данные начнут теряться раньше. Цифра в даташите — минимум для всех экземпляров, поэтому конкретный кристалл обычно выдерживает больше, но рассчитывать на это нельзя.

Сколько раз можно перезаписать EEPROM ATmega328P?

Не меньше 100 000 циклов стирания и записи — в 10 раз больше, чем у флеш-памяти программ того же микроконтроллера. Поэтому настройки, которые часто меняются, у AVR хранят в EEPROM.

Источники

  1. Microchip. ATmega48A/PA/88A/PA/168A/PA/328/P Data Sheet (DS40002061B), 2020 — особенности на первой странице: 10 000 циклов стирания и записи флеш-памяти и 100 000 у EEPROM; раздел 8 — флеш-память выдерживает не меньше 10 000 циклов, EEPROM — не меньше 100 000
  2. STMicroelectronics. DS5319 Rev 20. STM32F103x8, STM32F103xB datasheet — табл. 29 — ресурс NEND не менее 10 тыс. циклов при −40…+85 °C (суффикс 6) и −40…+105 °C (суффикс 7); табл. 28 — стирание страницы 1 КБ 20–40 мс, запись 16-битного слова 40–70 мкс
  3. STMicroelectronics. RM0008 Rev 21. Reference manual: STM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx and STM32F107xx — 3.3.3 — флеш-память программируется по 16 бит; у medium-density устройств основная память разбита на 128 страниц по 1 КБ

Нашли ошибку?