Когда роутер, телевизор или автомагнитола «умирает» после неудачной прошивки и перестаёт подавать признаки жизни, в большинстве случаев виновата повреждённая NAND-память, а восстановить устройство можно только через внешний программатор. Загрузчик, хранящийся в первых блоках микросхемы, стирается или искажается, и процессор просто не находит код для старта.

Работа с NAND отличается от прошивки обычных SPI-флешек: параллельный интерфейс, сложная адресация, механизмы коррекции ошибок и области bad-блоков требуют специальных программаторов и вдумчивого подхода. В этой статье разберём, как выбрать подходящий прибор, правильно подключить микросхему и избежать типичных ошибок при чтении и записи дампов.

Что такое NAND-память и почему нужен специальный программатор

NAND Flash — энергонезависимая память, которая массово применяется в роутерах, телевизорах, планшетах, SSD-накопителях и автомобильной электронике. В отличие от SPI Flash, где данные передаются последовательно по нескольким линиям, NAND использует параллельную шину данных шириной 8 или 16 бит и мультиплексированную адресацию. Из-за этого обычный копеечный программатор типа CH341A с ней физически не совместим.

Вторая особенность — ECC (Error Correction Code). NAND-ячейки со временем деградируют, поэтому контроллеры хранят контрольные данные в служебной области (OOB/Spare Area) и исправляют одиночные битовые ошибки «на лету». Программатор должен уметь корректно работать с этой областью, иначе записанный дамп окажется нечитаемым для устройства.

Третий нюанс — заводские bad-блоки, которые присутствуют даже в новых микросхемах и не считаются браком. Производитель маркирует их ещё на заводе, а прошивка устройства умеет их обходить. При перезаписи дампа важно сохранить карту bad-блоков, иначе устройство после прошивки будет работать нестабильно или не стартует вовсе.

💡

NAND требует специализированного программатора из-за параллельного интерфейса, ECC-коррекции и заводских bad-блоков — обычный SPI-программатор здесь бесполезен.