Как прошить eeprom – ПЕРЕПРОШИВКА FLASH И EEPROM

ПЕРЕПРОШИВКА FLASH И EEPROM

В последнее время, снова как и раньше, мне пришлось частично вернуться к самозанятости по ремонтам электроники. Получив на основном месте работы избыток свободного времени, правда немного в ущерб стабильности дохода, получил взамен хорошую возможность развиваться как  мастер-ремонтник. Сотрудничаю параллельно с маленькой мастерской по ремонту электроники, находящейся в проходном месте, как совместитель, плюс выкупаю технику на Авито и Юле, привожу в норму и реализую там же. Через мои руки проходит много материнских плат, блоков питания АТХ, ЖК мониторов и ТВ, и другой электронной техники. 

Значительная часть современной техники является цифровой, а следовательно, содержит в своем составе микроконтроллер или процессор управляющий работой устройства. Но все эти устройства должны где-то хранить управляющую программу и настройки техники, выставленные пользователем в меню. Несмотря на то, что микроконтроллеры зачастую имеют встроенную EEPROM память, обычно для хранения настроек используется небольшая по объему отдельная микросхема памяти.

EEPROM память

На современной технике обычно эти микросхемы идут в планарном исполнении, типа поверхностный монтаж. Ремонт техники, помимо замены деталей на плате, а иногда и вместе с ними, включает в себя условно программную часть ремонта, перепрошивку данной микросхемы. 

Микросхема EEPROM SMD

Зачастую нам даже не приходится браться за паяльник для того чтобы совершить перепрошивку, достаточно просто использовать специальную клипсу для прошивания, подключающуюся к программатору. Но здесь есть один важный нюанс, который касается перепрошивки микросхем 24 и 25 серии, соответственно EEPROM и Flash памяти. 

Первая (моя) версия программатора

Flash память 25 серия, часто используется для хранения прошивки BIOS устройств, таких как материнские платы, видеокарты, цифровые приставки, недорогие ЖК ТВ и современные мониторы. Так вот, особенность прошивания микросхем без выпаивания заключается в том, что иногда прошиваемое устройство у нас запитывается по линии 3.3 вольта через клипсу для прошивания. И если материнские платы можно шить обычно без выпаивания микросхемы, за редким исключением, то роутеры, на которых кстати установлена точно такая же микросхема памяти, в большинстве случаев, по крайней мере на современных моделях, таким способом прошить уже проблематично. 

Микросхема BIOS

Но если будет очень нужно есть один способ про который я читал в интернете: он заключается в двойном запитывании микросхемы BIOS, то есть мы сначала включаем питание устройства и микросхема запитывается штатно от блока питания устройства, а затем подключаем клипсу программатора к прошиваемой микросхеме и подключаем программатор к порту USB. 

Способ этот опасен тем, что мы можем коротнуть что-нибудь на плате, не правильно, немного криво прицепив клипсу. Иначе говоря устроить короткое замыкание при подключении клипсы и сжечь как все устройство, так и прошиваемую микросхему, а в особо тяжелом случае может не поздоровиться даже и программатору. 

Вторая версия программатора

Про худшее, короткое замыкание в USB порту, с последующим возможным выходом подгоранием Южного моста, я стараюсь не думать. Которое все же очень маловероятно, так как в программаторе используется буферная микросхема и в случае форс-мажора, скорее всего все ограничится только ее сгоранием. Причем даже если вы захотите использовать этот способ, у вас не будет 100 процентной уверенности в правильности сохранения Бекапа прошивки перед перепрошивкой устройства, так как во включенном устройстве на выводах микросхемы в момент сохранения прошивки может быть какая-то активность. 

роутер микросхема с прошивкой

Предпочитаю пользоваться другим способом, тогда, когда это реально необходимо, перепрошивкой микросхемы с выпаиванием, то есть уже демонтированной микросхемы и последующим запаиванием обратно. На самом деле при наличии опыта все эти операции можно провести максимум за 30-40 минут. 

Но как быть если у вас в мастерской нет паяльного фена? В таком случае сплав Вуда или Розе нанесенный на все ножки, с целью снижения температуры плавления припоя, с обоих сторон микросхемы, и обычный паяльник типа ЭПСН 40 ватт, помогут вам. Микросхема буквально отлетает от платы в два касания паяльника, попеременно прогревая обе стороны микросхемы. 

После остается только пройтись оловоотсосом а затем оплеткой по выводам как микросхемы, так и контактных площадок на плате и мы можем спокойно шить микросхему программатором, а затем запаять обратно. Причем если вы занимаетесь ремонтом монитора и если подозрение на слетевшую прошивку — не торопитесь сразу начинать шить микросхему BIOS, для начала можно поискать на спец сайтах дамп EEPROM памяти микросхемы сохранения настроек. 

Интерфейс программы

Если же по каким-то причинам сохраненный ранее кем-то дамп найти не удалось, встречал в интернете на специализированных сайтах по ремонту электроники рекомендацию сохранить родной дамп EEPROM памяти, очистить микросхему и затем залить снова родной дамп. Не совсем понятно в чем смысл этой процедуры, но видимо раз люди пишут, это все таки имеет смысл. 

Цифровая приставка — микросхема с прошивкой

В самом крайнем случае можно попробовать включить монитор или другую технику просто очистив EEPROM память от старых данных, при включении устройства, в нее, если это было запланировано производителем сохранятся текущие настройки. Если же вы пытаетесь сохранить родной дамп и оболочка для прошивания выдает ошибку, либо при верификации, мы получаем каждый раз несоответствие залитого или сохраненного дампа с дампом прошивки, который загружен в буфер программы оболочки для прошивания, и такая микросхема однозначно требует замены на новую или как минимум проверенную с донора. 

Стоимость микросхем EEPROM памяти

Это касается как микросхем Flash, так и EEPROM памяти. Причем микросхемы EEPROM памяти, так как имеют очень небольшой объем, стоят новые в радиомагазине копейки. Большинство микросхем как 24, так и 25 серии, имеющие одинаковые объем и напряжение питания, являются взаимозаменяемыми. То есть теоретически вы можете демонтировать микросхему Flash 25 серии объемом 4 МБ с нерабочего роутера и восстановить с ее помощью цифровую DVB-T2 приставку с микросхемой, например, погоревшей из-за грозы. 

Как минимум слет прошивки после грозы на подобных приставках, имеющих внешние ДМВ антенны, которые часто устанавливают в частных домах за городом, там, где прием сигнала не уверенный, очень частое явление.

Подведём итог

В данной статье все нюансы восстановления прошивки устройств разобрать просто не возможно, но могу сказать, что перепрошивка программатором это один из самых легких видов ремонта, не требует вложений в ЗИП, по крайней мере дорогостоящий. 

Прошивки мониторов на сайте

И если дамп прошивки есть в открытом доступе на специализированных сайтах, проблема с восстановлением устройства часто бывает решена уже в первый час выполнения ремонта. Причем для выполнения данного вида ремонта не требуется быть опытным мастером — любой человек выполнивший данную операцию хотя бы три-четыре раза будет совершать его в дальнейшем уже машинально, на автоматизме. Всем удачных ремонтов — AKV.

   Ремонт электроники

elwo.ru

EEPROM. Avrdude. Снова про работу с контроллерами

В прошлый раз, когда я писал свой ‘развёрнутый ответ на вопрос’ о том, как забэкапить прошивку с ‘Меги’ меня упрекнули, что я не упомянул про бэкап EEPROM. В тот раз я не сделал этого сознательно, т.к. справедливо рассудил, что не стоит всё усложнять на этапе первоначального ‘подхода к снаряду’. Дело в том, что не для всех очевиден тот факт, что EEPROM не прошивается при компиляции и заливки прошивки из Arduino IDE. То есть, это означает, что абсолютно ничего в EEPROM не заливается, когда прошивка заливается из IDE. А манипуляции с EEPROM (если его использование вообще включено в прошивке) производятся абсолютно на другом уровне. И следовательно, для бэкапа голой прошивки без тонких настроек, которые ВОЗМОЖНО (только возможно) могут храниться в EEPROM, вполне было достаточно сохранить только голую прошивку. Но раз уж возник вопрос, то почему бы его не ‘разжевать’. Давайте пройдёмся по порядку.
Что такое EEPROM и зачем вести о нём речь?

EEPROM — (Electrically Erasable Programmable Read-Only Memory) область энергонезависимой памяти микроконтроллера, в которую можно записать и прочитать информацию. Зачастую его используют для того, чтобы хранить настройки программы, которые могут меняться в процессе эксплуатации, и которые необходимо хранить при отключенном питании.

Как 3D принтер использует EEPROM?

Рассмотрим на примере Marlin’а. В Marlin Firmware ‘из коробки’ EEPROM не используется. Параметры конфигуратора (Configuration.h), которые включают возможность его использования, по умолчанию, закомментированы.

#define EEPROM_SETTINGS

#define EEPROM_CHITCHAT

Если включено использование EEPROM, то принтер может хранить и использовать следующие настройки (подсмотрено у буржуев):

  • Количество шагов на миллиметр
  • Максимальная/минимальная скорость подачи [мм/с]
  • Максимальное ускорение [мм/с^2]
  • Ускорение
  • Ускорение при ретракте
  • Настройки PID
  • Отступ домашней позиции
  • Минимальная скорость подачи во время перемещения [мм/с]
  • Минимальное время участка [мс]
  • Максимальный скачок скорости по осям X-Y [мм/с]
  • Максимальный скачок скорости по оси Z [мм/с]
Редактировать эти настройки можно, используя экран принтера и органы управления. При включенном использовании EEPROM, в меню должны отображаться пункты:
  • Store memory
  • Load memory
  • Restore Failsafe
Так же, можно использовать GCode для работы напрямую (через Pronterface).
  • M500 Сохраняет текущие настройки в EEPROM до следующего запуска или выполнения команды M501.
  • M501 Читает настройки из EEPROM.
  • M502 Сбрасывает настройки на значения по-умолчанию, прописанные в Configurations.h. Если выполнить после неё M500, в EEPROM будут занесены значения по-умолчанию.
  • M503 Выводит текущие настройки – »Те, что записаны в EEPROM.»
О EEPROM в Repitier firmware можно почитать здесь.

Как считать и записать данные в EEPROM?

Аналогично, описанному в статье про бэкап, методу бэкапа прошивки, используя ключ -U. Только в данном случае после него будет указатель на то, что считывать нужно EEPROM.

avrdude.exe -p atmega2560 -c wiring -PCOM5 -b115200 -Ueeprom:r:’printer_eeprom’.eep:i
Этой командой производится чтение данных EEPROM’а в файл ‘printer_eeprom.eep’. В случае успеха, на экране вы увидите примерно следующее. Запись тоже не представляет из себя ничего сложного и выполняется аналогичной командой, которая отличается только тем, что в ключе -U стоит не ‘r’, а ‘w’.

avrdude.exe -p atmega2560 -c wiring -PCOM5 -b115200 -Ueeprom:w:’printer_eeprom’.eep:i

В случае успеха, на экране вы увидите примерно следующее сообщение. Как и зачем стирать EEPROM?

Для начала,- ‘зачем это делать?’. Стирать EEPROM нужно в том случае, если предыдущая прошивка тоже его использовала, и в памяти мог остаться мусор. Где-то я уже натыкался на людей с проблемами, что после перехода с одной прошивки на другую (с Marlin на Repitier ЕМНИП), у них принтер начинал вести себя, скажем так, ‘творчески’. Это связанно с тем, что разные прошивки хранят свои данные под разными адресами. И при попытке читать данные из неверного адреса начинается свистопляска.

Затереть EEPROM можно только программно из прошивки, но для этого придётся — на время залить в контроллер специальный скетч. Подробно об этом можно прочитать в официальной документации по Arduino.

Если же стирается EEPROM не в Arduino плате, а в каком-то абстрактном контроллере, то код скетча нужно будет изменить с учётом размера EEPROM в конкретном контроллере на плате. Для этого нужно будет поменять условие окончания в цикле ‘For’. Например, для ATmega328, у которой 1kb памяти EEPROM, цикл будет выглядеть так:

for (int i = 0 ; i Вывод.

Я довольно долго распинался, а всё для чего? Для того, чтобы подвести к заключению о том, что при бэкапе прошивки, EEPROM тоже можно сохранить, но только в том случае если вам нужны сохранённые в нём настройки. Если же вы готовы ими пожертвовать, то забейте на это. Так же, если вы меняете одну прошивку на другую, или переходите с версии не версию, не поленитесь очистить EEPROM перед заливкой новой прошивки. Ну и заодно мы узнали много нового.

3dtoday.ru

Как проще всего прошить/перепрошить микросхему памяти. USB программатор Ch441A: инструкция для «чайников»

Вообще не знаете, как пользоваться программатором?
Эта подробная инструкция о том, как прошить микросхему памяти программатором для «чайников». Она поможет даже тем, кто абсолютно не разбирается в электронике и видел программатор только на картинках или фото.

Итак, для начала несколько распространенных заблуждений:
1. Перепрошивать микросхемы памяти умеют только профессионалы, потому что программатор — это сложное устройство.
Большинство современных программаторов действительно собраны из множества радиокомпонентов и/или построены на базе микроконтроллеров. Однако вовсе не обязательно собирать программатор самостоятельно — можно купить готовый.
2. Программатор — дорогостоящее устройство. Если вы решили купить профессиональный универсальный программатор, цена его может оказаться не оправданной даже при заказе напрямую из Китая. Хотя в большистве случаев продвинутый универсальный программатор вам не понадобится, достаточно купить простой и дешевый Ch441A

Обязательно ли выпаивать микросхему памяти, чтобы её «прошить»? Это зависит от устройства, в котором она расположена. Во многих случаях микросхема памяти не припаяна к плате напрямую, а находятся в специальной панельке.
Таким образом, чтобы запрограммировать микросхему памяти вам понадобиться всего лишь:

1. Посмотреть внимательно на то, где расположен ключ микросхемы памяти — это своего рода метка показывающая, как (какой стороной) установить чип.
Обычно ключ микросхемы памяти — это точка или выемка на её корпусе. По ней и определяется расположение первого вывода.
На печатной плате обычно также есть соответствующая метка — перед тем как доставать/выпаивать микросхему убедитесь, что ключи (метки) совпадают!

2. В большинстве программаторов также есть ключ-метка, показывающая, как правильно вставить микросхему в его панель! Причем для разных типов микросхем этот ключ может быть разным!
Например обратите внимание на ключи метки первого вывода микросхем программатора Ch441A.

Итак, если у вас возник вопрос, как правильно вставить микросхему в программатор Ch441A, посмотрите прежде всего на то, какой серии она соответствует — что написано на её корпусе!
Ключ метка микросхемы должна соответствовать ключу метки программатора (см. фото).

Обратите внимание, что в зависимости от версии/модификации программатора Ch441A расположение микросхемы в панели может отличаться и быть не таким как в софте (программе) для Ch441A.
Ориентируйтесь прежде всего по ключам-меткам на корпусе программатора и микросхемы!

3. Важно знать, что Ch441A может работать в двух режимах, поэтому обязательно убедитесь, что перемычка (джампер) программатора Ch441A стоит в положении (1-2) — режим программатора, а не (2-3)- режим USB-UART конвертера!

4. После фиксации микросхемы в панельке программатора вставить его в USB порт — напрямую или через USB удлинитель.

5. Запустить программу (софт) для Ch441A. Проверить правильно ли опознан программатор и «видит» ли его программа. Если да, то в строке вы можете увидеть надпись «Device state: connected», то есть «Состояние устройства: подключено»!

6. Если программа запущена не в режиме администратора, может появится сообщение, что драйвер не найден или установлен некорректно!

Хотя в большинстве случаев программатор работает нормально и так, то есть запускать его софт с правами администратора нет необходимости!
Внимание: файл запущенный от имени администратора может сделать с вашим компьютером всё, что угодно! Никогда не запускайте программы, которым не доверяете, от имени администратора!

7. Выбор микросхемы через интерфейс программатора. Удобнее и быстрее найти её через поиск, нажав на кнопку «Chip Search».

Микросхема найдена в списке(см. рис.).

Проверить, записаны ли в неё данные, или микросхема пустая можно через пункт меню: «Operate» -> «Blank Check».

Сообщение «Chip Main Memory are Blank» буквально «главная память чипа пустая», означает, что никаких полезных данных в микросхеме не содержится!

Работу с программатором микросхем памяти можно разделить на несколько видов:
— так называемый бекап (backup) — это создание и сохранение резервной копии данных. Считать и сохранить содержимое большинсва микросхем памяти программатором элементарно просто.

Для программатора Ch441A в меню его программы есть пункт «Read chip» — прочитать чип (микросхему).

После того, как содержимое микросхемы памяти считано, его легко сохранить в файл, выбрав пункт «File» -> «Save» или просто нажав одновременно две клавиши Ctrl+S.

При сохранении выбрать для файла любое осмысленное имя (лучше латиницей)! Расширение дописывать не нужно!

Программа для программатора Ch441A добавит его сама!

— очистка (стирание) памяти микросхемы. В меню программы Ch441A выбрать пункт «Erase Сhip» — стереть чип!

— запись файла «прошивки» в микросхему памяти состоит из нескольких действий:
1. Выбор файла с «прошивкой» через пункт меню «File» -> «Open» (открыть файл).

Выбрать файл с подходящим расширением, например сохраненный ранее backup файл «прошивки» 
 

2. Запись данных кнопкой «Write Chip».

Проверка правильности записи файла «прошивки» выполняется нажатием кнопки «Verify Chip».

Если «прошивка» загружена правильно — содержимое данных из файла и микросхемы будут одинаковые! После успешной проверки появится сообщение «Chip Main Memory and buffer same», то есть в буквальном переводе «главная память чипа и буффера совпадают»!

Как видите, «прошить» микросхему памяти программатором совсем не сложно. Купить заказать программатор Ch441A можно здесь.

new-tech.in.ua

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *