Сколько раз можно перепрошить микроконтроллер?
Обновлено Редакция GAW
Ресурс флеш-памяти считают в циклах стирания и записи: каждый раз, когда страницу стирают и пишут заново, ячейки немного изнашиваются. Производители указывают минимум, который гарантирован для всех экземпляров.
| Микроконтроллер | Флеш-память программ | EEPROM |
|---|---|---|
| ATmega328P (Arduino Uno, Nano) | 10 000 циклов | 100 000 циклов |
| STM32F103 (Blue Pill) | 10 000 циклов | нет, только флеш |
Хватит ли этого для отладки
Даже если прошивать плату 20 раз в день каждый день, ресурса хватит на
то есть почти полтора года непрерывной отладки одной платы. Для разработки ресурс флеш-памяти не ограничение.
Когда ресурс кончается быстро
Опасна не прошивка, а программа, которая сама пишет во флеш. Если сохранять во флеш-память STM32F103 показания раз в минуту в одну и ту же страницу, стирая её перед каждой записью, 10 000 циклов закончатся примерно через 10 000 минут — меньше чем за неделю. Ресурс тратит именно стирание: в ещё не записанные ячейки стёртой страницы можно дописывать без нового стирания. Поэтому данные пишут в разные страницы по кругу, копят в ОЗУ и сохраняют реже, а у AVR используют EEPROM с ресурсом в 10 раз больше.
Какие страницы и секторы у каждого STM32 и сколько времени занимает их стирание, показывает калькулятор секторов флеш-памяти STM32. Как устроены флеш-память и загрузчик STM32, разбирает статья «Flash и загрузчик STM32», а память ATmega328P описана на странице ATmega328P.
Похожие вопросы
Изнашивает ли флеш-память чтение?
Нет. Ресурс в даташитах указан в циклах стирания и записи. Программа выполняется из флеш-памяти миллиарды раз, и это ресурс не расходует.
Что будет, когда ресурс флеш-памяти закончится?
Гарантия производителя перестанет действовать: ячейки могут перестать надёжно стираться и хуже держать заряд, то есть данные начнут теряться раньше. Цифра в даташите — минимум для всех экземпляров, поэтому конкретный кристалл обычно выдерживает больше, но рассчитывать на это нельзя.
Сколько раз можно перезаписать EEPROM ATmega328P?
Не меньше 100 000 циклов стирания и записи — в 10 раз больше, чем у флеш-памяти программ того же микроконтроллера. Поэтому настройки, которые часто меняются, у AVR хранят в EEPROM.
Источники
- Microchip. ATmega48A/PA/88A/PA/168A/PA/328/P Data Sheet (DS40002061B), 2020 — особенности на первой странице: 10 000 циклов стирания и записи флеш-памяти и 100 000 у EEPROM; раздел 8 — флеш-память выдерживает не меньше 10 000 циклов, EEPROM — не меньше 100 000
- 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 мкс
- STMicroelectronics. RM0008 Rev 21. Reference manual: STM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx and STM32F107xx — 3.3.3 — флеш-память программируется по 16 бит; у medium-density устройств основная память разбита на 128 страниц по 1 КБ
Нашли ошибку?
Смотрите также
- ATmega328PРаспиновка, фьюзы, Optiboot, периферия, питание, схема и код на C
- Flash и загрузчик STM32Страницы и секторы, BOOT0, системный загрузчик, AN3155, IAP, option bytes, RDP
- EEPROMЭнергонезависимая память для настроек и калибровки
- Карта флеш-памяти STM32Секторы и страницы, адрес → сектор, что стирать, CubeProgrammer и HAL