16Мб SPI flash WINBOND W25Q128 — расширяем память роутеру TL-MR3020

Опубликовал | 31.12.2017

Добрый день,
Предлагаю Вашему вниманию мини обзор последовательной SPI флеш-памяти в корпусе SOIC8 от производителя Winbond размером 16Мбайт. В этом обзоре я опишу как с минимальными затратами усилий сделать апгрейд постоянной памяти роутера TP-Link TL-MR3020.

Зачем?

Мне понадобился компактный роутер на базе Atheros с большим объемом ROM, чем предлагают производители. В частности, мне нужно было место для нескольких пакетов, чтобы организовать APRS шлюз. Обычно в таких случаях используют внешнюю USB флеш память, но мне этот вариант не подходил, так как создавал проблемы с надежностью и занимал единственный USB-порт роутера.

Теоретические изыскания

Я провел поиски в Сети и нашел несколько вариантов расширения памяти роутера. Все они задействуют альтернативный загрузчик UBoot, требуют работы в HEX редакторе с пониманием происходящего и пайки консольного вывода к USB-TTL переходнику и работы в консоли.

Моя реализация

Мною был найден UBoot, которому не нужна последовательная консоль.
Мною была написана программа, которая позволяет собрать прошивку без использования HEX-редактора.

Герой обзора

Пришла в отрезке ленты:

Она же без упаковки:

Идентификаторы:

Необходимые инструменты и материалы

Паяльник, флешка, роутер и программатор CH341A.

Процесс замены

1.Выпаиваем родную флешку, считываем программатором и сохраняем в файл с именем 4mb.bin. Должен получится файл размером 4194304 байта.
2.Качаем программу и помещаем файл 4mb.bin в одну папку с MR3020FW.exe
3.Запускаем MR3020FW.exe:

Жмем «Собрать прошивку с ART». Программа вытащит калибровки ART из оригинального дампа и соберет файл final_16mb_with_ART.bin
4.Прошиваем файл final_16mb_with_ART.bin в новую флешку, проверяем записанное и впаиваем новую флешку в роутер.

Я убил исходную флешку! Что делать?

Если содержимое исходной флешки недоступно — программа соберет прошивку без калибровочных данных. Роутер будет полностью работоспособен за исключением wifi-интерфейса.

Программная часть

1.Подключаем роутер к сетевой плате компьютера патч-кордом.
2.Назначаем сетевой плате компьютера IP: 192.168.1.2, маску:255.255.255.0.
3.Зажимаем кнопку WPS на выключенном роутере и подключаем питание.
4.Считаем вспышки светодиодов. После пятой(!) вспышки отпускаем кнопку WPS.
5.Заходим браузером на 192.168.1.1:

6.Качаем подходящую сборку OpenWRT и обновляем основную прошивку:

PS:
Вот так выглядел тестовый стенд

С наступающим Новым Годом!

Планирую купить +1 Добавить в избранное +10 +16

(c) 2017 Источник материала

Рекламные ссылки