Как найти флеш память на плате

Форум РадиоКот :: Просмотр темы — как на схеме и плате найти флешку


Автор:  mr.malder [ Пт окт 04, 2013 10:40:02 ]
Заголовок сообщения:  как на схеме и плате найти флешку

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


Автор:  Engineer_Keen [ Пт окт 04, 2013 12:15:20 ]
Заголовок сообщения:  Re: как на схеме и плате найти флешку

mr.malder писал(а):

как искать эти самые флешки на плате и схеме не знаю. как выпаять именно ту микросхему в которой лежит допустим прошивка телевизора?

а) Найти и разобраться в схеме телевизора
б) по внешнему виду и маркировке (выписать все маркировки и искать по ним данные в интернете)

mr.malder писал(а):

возможно ли прошивать телевизоры не выпаивая флешку

На сколько я понял Тритон — параллельный программатор и внутрисхемно пришивать не может. Возможно есть соответствующие переходники, но это при условии:

mr.malder писал(а):

диагностический разьем есть на телевизорах?

Ремонтом не занимаюсь, так что тут я не отвечу.


Автор:  kalobyte [ Пт окт 04, 2013 12:25:26 ]
Заголовок сообщения:  Re: как на схеме и плате найти флешку

есть пзу для настроек, обычно они начинаются на 93с или 24с и имеют 8 выводов
есть пзу для прошивок размером в несколько мегабайт и начинаются с 25ххх, которые тоже имеют 8 выводов
стоят на матплатах и современных роутерах
они прошиваются без выпайки, но не всегда

а есть пзу с прошивкой и настройками в виде параллельной мс с кучей выводов с 4х или 2х сторон
причем с 2х сторон выводы тонкие совсем и сам корпус тонкий
маркировка 29ххх


Автор:  mr.malder [ Сб окт 05, 2013 17:58:11 ]
Заголовок сообщения:  Re: как на схеме и плате найти флешку

А как флешка может обозначаться на схеме? У меня есть еще postal3. На всех ли телевизорах есть сервисный разьем для прошивки? Спасибо


Автор:  Николай_С [ Сб окт 05, 2013 19:43:22 ]
Заголовок сообщения:  Re: как на схеме и плате найти флешку

На большинстве современных телевизоров процессор прошьет флешку сам, как только обнаружит что она чистая . Ваша задача сводится только к поиску и её очистке (все байты д.б. 0хFF). Как правило, это флешки 24-й серии.


Автор:  otest [ Сб окт 05, 2013 19:58:20 ]
Заголовок сообщения:  Re: как на схеме и плате найти флешку

Цитата:

На большинстве современных телевизоров процессор прошьет флешку сам

Ни чего он не прошъёт. Во флеш находится управляющая программа для процессора.

Цитата:

Как правило, это флешки 24-й серии.

Это EEPROM в нём хранятся настройки.


Автор:  YS [ Вт окт 08, 2013 13:41:32 ]
Заголовок сообщения:  Re: как на схеме и плате найти флешку

Цитата:

А как флешка может обозначаться на схеме?

Как любая другая микросхема.


Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/


Где На Этой Плате Микросхема Пзу А Где Флэшпамяти ?


Ники

  • Ответить

  • Создать новую тему

Рекомендуемые сообщения

Ники

Новобранец

Kotofot

Экспериментатор

Ники

Новобранец

  • Автор
    • Поделиться

Спасибо!

Там в этой компьютерной плате прошит её ID номер и S/N. То есть во всей партии плат каждая с уникальным номером. Я так понимаю он хранится в ПЗУ, а не в ОЗУ и не во Флэше. Во Флеше я знаю сменяется операционка платы, значит не в ней. В ОЗУ оперативке то же не может ничего хранится при отключении карты. Вот эта инфа есть идеи в какой микросхеме прошиты?

  • Цитата

Ссылка на комментарий
Поделиться на другие сайты

ИБП MEAN WELL серии DRC-180 на DIN-рейку – новое решение для пожарно-охранных систем

Компания MEAN WELL расширила семейство DRC-40/60/100 – недорогих ИБП (UPS) 2-в-1 (ИП и контроллер заряда/разряда АКБ в одном корпусе) с креплением на DIN-рейку. Теперь доступны модели мощностью 180 Вт новой серии DRC-180.

Источник питания DRC-180 предназначен для создания систем бесперебойного питания с внешней АКБ и может использоваться в охранно-пожарных системах, системах аварийной сигнализации, контроля доступа и в других приложениях, где требуется простая, недорогая и в то же время качественная система бесперебойного питания соответствующей мощности. Подробнее>>

Ники

Новобранец

  • Автор
    • Поделиться

и ещё вопрос , а зачем на плате две микросхемы флэш памяти FL064PIF ? почему не одна?

  • Цитата

Ссылка на комментарий
Поделиться на другие сайты

минздрав

Мастер

    • Поделиться

:lol2: А почему не половина не интересует?

  • Цитата

Хорошо зафиксированный пациент в анестезии не нуждается

Ссылка на комментарий
Поделиться на другие сайты

Kotofot

Экспериментатор

    • Поделиться

Спасибо!

Там в этой компьютерной плате прошит её ID номер и S/N. То есть во всей партии плат каждая с уникальным номером. Я так понимаю он хранится в ПЗУ, а не в ОЗУ и не во Флэше. Во Флеше я знаю сменяется операционка платы, значит не в ней. В ОЗУ оперативке то же не может ничего хранится при отключении карты. Вот эта инфа есть идеи в какой микросхеме прошиты?

Чем вам флеш не пзу? А что там где зашито думаю вам расскажет только производитель, но вряд ли расскажет)))

  • Цитата

Ссылка на комментарий
Поделиться на другие сайты

Вебинар «Мощные модульные системы питания MEAN WELL 3+N. Новинки и хиты» (22.06.2023)
Приглашаем 22 июня на вебинар, посвященный подходу компании MEAN WELL к созданию мощных управляемых систем низковольтного и высоковольтного питания и зарядных установок для промышленного, технологического, телекоммуникационного, медицинского, радиопередающего и другого оборудования, а также для систем альтернативной энергетики.
На вебинаре мы рассмотрим новинки и серийную продукцию в концепции «3+N», расскажем об этой концепции и о том, как создать из готовых модулей систему питания мощностью до 360 кВт с напряжением до 380…400 В (постоянного тока). Будут представлены ИП с рециркуляцией энергии для тестового оборудования и модули управления питанием. Подробнее>>

Ники

Новобранец

Kotofot

Экспериментатор

    • Поделиться

оперативка под ядрами, U3 — флеш

  • Цитата

Ссылка на комментарий
Поделиться на другие сайты

Ники

Новобранец

  • Автор
    • Поделиться

а U8 и U22 что?

и почему считаете что U3 флэш? что-то мне кажется вы тут ошибаетесь.

  • Цитата

Ссылка на комментарий
Поделиться на другие сайты

минздрав

Мастер

    • Поделиться

Это не 74LV244?

  • Цитата

Хорошо зафиксированный пациент в анестезии не нуждается

Ссылка на комментарий
Поделиться на другие сайты

Ники

Новобранец

  • Автор
    • Поделиться

:D

оперативка под ядрами, U3 — флеш

а U8 и U22 что?

и почему считаете что U3 флэш? что-то мне кажется вы тут ошибаетесь.

  • Цитата

Ссылка на комментарий
Поделиться на другие сайты

Kotofot

Экспериментатор

Ники

Новобранец

  • Автор
    • Поделиться

а U8 флэшка? в ней памяти как в U22 ? или много больше или меньше?

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

  • Цитата

Ссылка на комментарий
Поделиться на другие сайты

Kotofot

Экспериментатор

    • Поделиться

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

откройте новую тему, укажите микросхемы и спросите про программатор

  • Цитата

Ссылка на комментарий
Поделиться на другие сайты

Ники

Новобранец

  • Автор
    • Поделиться

Тут же жаловались что я много тем наплодил. Так что лучше здесь подскажите:

Вот на этой плате http://audioshop.com…bigoriginal.jpg

U8 флэшка? в ней памяти как во флэки U22 ? или больше или меньше? намного?

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


Изменено 23 июня, 2014 пользователем marinovsoft

II.9

  • Цитата

Ссылка на комментарий
Поделиться на другие сайты

zim-babwe

Энтузиаст

    • Поделиться

Прошу прощения, но что это вообще за девайс?

  • Цитата

Спасибо инженерам Volvo за грузовики с вечно разваливающей проводкой.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже.

Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

  • Последние посетители

      0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

Введение

Я только начинаю путешествие в сферу обратного проектирования интегральных схем (ICRE), но меня уже совершенно обуяла страсть к данной отрасли. Кроме компьютерных и электротехнических аспектов ICRE, для работы в этой сфере нужны обширные знания по физике и химии. Поначалу химическая составляющая меня пугала, поскольку химию я почти не знал. Не говоря уже о том, как опасна работа с продуктами, необходимыми для вскрытия (декапсуляции) и послойного препарирования чипов.

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

Подготовка

Первым делом мне требовалось разобраться в целой совокупности весьма дорогих вещей и растворителей, которые требовалось купить. Вот список оборудования и расходников, которые я купил.

Почему мне понадобился именно металлургический микроскоп, а не стереомикроскоп или не составной микроскоп? Потому что у большинства микроскопов подсветка снизу, и свет отражается от двухкоординатной пластины, а с ИС так работать нельзя, поскольку они не двусторонние. Рассматриваемые слои кристалла нужно правильно освещать, чтобы свет как следует отражался в направлении сверху вниз. В металлургических микроскопах используется так называемое «наблюдение в отраженном свете» (EPI illumination), уникальный тип освещения, также именуемого «эпифлуоресцентным». Решение позволяет не только освещать объект ИС/образец; более того, объектив микроскопа собирает свет, отражающийся от поверхности образца.

Остальное вполне понятно без объяснения. Чтобы как следует извлечь ИС из ее эпоксидной упаковки, мало обработать упаковку кислотой при комнатной температуре – так всю смолу удалить не удастся. Некоторые другие закупленные мной материалы, перечисленные в списке – это вполне стандартные лабораторные исходники, которые понадобятся вам для работы с химикатами. Что касается химикатов как таковых, я расскажу обо всех используемых кислотах, основаниях и окислителях, по мере того, как буду описывать ход экспериментов.

Выбор лабораторного образца

Забавно, что когда я впервые вскрыл CH340G из платы Arduino Nano v3, я даже не подозревал, что наткнусь на целую секцию ПЗУ, прежде, чем приступлю к послойному препарированию. Как правило, берясь за проект с ПЗУ, нужно весьма хорошо понимать выбранный образец, в частности, познакомиться с его архитектурой и процессором, почитав даташиты. К счастью, у меня все вышло иначе, почему к счастью – расскажу дальше, читайте.

Я взялся за распайку интегральных схем с платы Arduino прежде всего потому, что это была первая разработочная плата, которую я освоил в ходе моих упражнений по части безопасности встраиваемых систем. Следовательно, заключил я, можно будет знатно поностальгировать, бросив пару столь любимых мною чипов в жаркую дымящую серную кислоту. Честно говоря, я очень надеялся, что в ATmega328P, с которой я проводил мои первые эксперименты, найдется какое-нибудь ПЗУ, но, после многократных попыток разобрать ее по слоям при помощи плавиковой кислоты, я нашел только ЭСППЗУ, статическую память с произвольным доступом и флэш-память.

Разобранная на слои Atmega328P

Разобранная на слои Atmega328P

Добравшись еще ниже, до поликремниевого слоя этого чипа (SiO₂ / оксид кремния), действительно начинаешь обнаруживать весьма интересные секции чипа, но ни из одной из них не представлялось возможным извлечь прошивку теми инструментами, что были у меня в распоряжении.

Примечание: если вы хотите посмотреть эту картинку в высоком разрешении, перейдите по следующей ссылке на личную страницу автора: siliconpr0n.

Сравнение флэш-памяти и ПЗУ. Как они выглядят под микроскопом

Возможно, вас интересует, а почему нельзя попросту считывать данные из сегментов флэш-памяти при помощи металлургического микроскопа, как это делалось бы с ПЗУ? Для начала давайте обсудим разницу. Масочное ПЗУ (MROM) содержит код прошивки, записываемый в кремниевую основу чипа на этапе конструирования в процессе производства полупроводника. МПЗУ производится путем расстановки транзисторов еще до начала процесса фотолитографии. Под микроскопом они могут весьма отличаться друг от друга:

ПЗУ TI TMS5200NL в сравнении с ПЗУ CBM 65CE02 от SiliconPr0n

ПЗУ TI TMS5200NL в сравнении с ПЗУ CBM 65CE02 от SiliconPr0n

Это просто два отдельных примера, позволяющих оценить, как может выглядеть транзистор МПЗУ на уровне подложки. В таких транзисторах может применяться либо материал n-типа с высокой концентрацией электронов, допированный атомом фосфора, либо материал p-типа, допированный атомом бора и отличающийся более низкой концентрацией электронов.

С другой стороны, флэш-память устроена сложнее. 1 транзистор != 1 бит. Причина, по которой сканирующий электронный микроскоп требуется для вытягивания бит из памяти типа ЭСППЗУ в том, что во флэш-памяти используется система «карманов», в которых можно запасать остаточные электроны от пропускаемого тока, независимо от того, идет ли ток через схему в настоящий момент. Соответственно, такая память считается энергонезависимой. Во флэш-транзисторе четыре основные части: исток, сток и два затвора, которые называются «плавающим» и «управляющим»[1] [2] , а также изолирующий материал, отделяющий три остальные части друг от друга. По форме вся структура напоминает перевернутую букву «Т», причем, в нижней части транзистора располагаются исток и сток, а в верхней части – затворы, причем, управляющий затвор находится выше плавающего. Затворы заключены в оксидные слои, через которые ток, как правило, не проникает.

Модель транзистора в NAND Flash

Модель транзистора в NAND Flash

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

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

Ячейки транзистора в энергонезависимой памяти

Ячейки транзистора в энергонезависимой памяти

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

Как считываются биты

Причина, по которой под металлургическим микроскопом различимы отдельные биты (единицы и нули) в том, что биты физически закодированы в кристалле. Как показано в статье Кена Шириффа Extracting ROM Constants, биты программируются в МПЗУ путем изменения паттерна допирования кремния, создания транзисторов или оставления изолирующих участков. В примере Кена, если в строке присутствует транзистор, то можно предположить, что это транзистор в 1 бит. Как правило, строка в МПЗУ NOR (чтение быстрее, запись медленнее) будет содержать два транзистора, уложенных друг на друга, верхний и нижний, как показано на следующем рисунке.

Изображение ПЗУ из TMS320C52

Изображение ПЗУ из TMS320C52

В ПЗУ обычно используются мультиплексоры для выбора бит по столбцу и по строке. При использовании 16-битного MUX будет 4 линии выбора, которые можно активировать. Для ПЗУ, которое я собираюсь показать, каждая линия выбора может перевести транзисторы в состояние напряжения HIGH, если будет активирована. Если в заданной позиции (столбец и строка) транзистор отсутствует, то выходная линия окажется в состоянии напряжения LOW.

Примечание: В нашем случае с CH340G МПЗУ будет выглядеть совершенно иначе, нежели на картинках, показанных выше.

Подготовка образца

В случае Arduino Nano, CH340G всегда находится снизу печатной платы. Я вооружился тепловым пистолетом для отпайки и под температурой около 200°C обработал пины интересовавшего меня чипа микросхемы. Таким образом припой снимается с узлов и расплавляется, что позволяет безопасно снять чип с платы.

CH340, припаянная к Arduino Nano (чипы не размечены)

CH340, припаянная к Arduino Nano (чипы не размечены)

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

Химические реакции при вскрытии

Теперь требуется проявлять исключительную осторожность, поскольку крайне опасно работать с очень едкими кислотами. Возьмем стеклянную пипетку (поскольку стекло не реагирует с H₂SO₄) и наберем в нее около 20 мл 98% концентрированной серной кислоты из контейнера и нальем ее в 100-мл химический стакан. Можно бросить наш образец в кислоту, взяв его щипчиками, а потом поставить стакан на нагревательную плитку.

Вскрытие оболочки в вытяжном шкафу

Вскрытие оболочки в вытяжном шкафу

Рекомендую температуру не менее 170°C, а не 150°C, как показано выше, поскольку плитка никогда не показывает температуру абсолютно точно. Такой сильный жар нужен, поскольку при комнатной температуре H₂SO₄ окисляет эпоксидную смолу очень медленно. Нагревая образец, можно ускорить эту реакцию. На крайней справа картинке видно, как жидкость начинает приобретать желтоватый цвет, и это просто отлично. Это означает, что реакция пошла, и эпоксидная смола начинает плавиться.

Если вам интересно, зачем стакан прикрыт стеклянной крышкой – объясню, на то есть две причины:

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

2.      Потенциально крышка может поспособствовать частичной рециркуляции паров диоксида серы (SO₂), что, в свою очередь, будет поддерживать высокую концентрацию кислоты. Если концентрация кислоты чрезмерно снизится, то возрастет вероятность коррозии. Я не вполне в этом уверен, поэтому смело пингуйте меня, если я не прав. Знаю, что такой подход хорош при работе с азотной кислотой (HNO₃), поскольку пары диоксида азота (NO₂) при рециркуляции могут превращаться обратно в HNO₃ в присутствии воды.

Большой вопрос – как долго это должно продолжаться? Зависит от толщины чипа; в данном конкретном случае, согласно даташиту, мы имеем дело с корпусом кристалла SOP-16, толщина которого составляет около 1,50 мм. При приблизительно такой толщине и температуре весь процесс должен занять около часа.

Чип обрабатывается в кислотной бане

Чип обрабатывается в кислотной бане

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

Примечание: как только вы снимете крышку со стакана, оттуда сильно попрут пары SO₂, поэтому убедитесь, что дымовые заслонки как следует закрыты, надежно удалите все эти токсичные пары через вакуумный отсос. Хороший пример, позволяющий оценить, как идет эта реакция – повторить подобный опыт с полиэтиленом ((C₂H₄)ₙ), который обычно входит в состав эпоксидного пластика. По мере того, как серная кислота разогревает эпоксидную смолу, H₂SO₄ разлагается на SO₂, CO₂ и H₂O. Вот химическое уравнение с коэффициентами: 6H₂SO₄ + (C₂H₄)ₙ → 6SO₂ + 2CO₂ + 8H₂O. Точка кипения такой кислоты составляет около 337°C, именно в таких условиях обычно и получают азеотропную серную кислоту. Если взять серу (S), кислород (O) и воду (H₂O), а затем сжечь серу для получения диоксида серы (SO₂); S + O₂ → SO₂, то в дальнейшем диоксид серы можно окислить до триоксида серы (SO₃), воспользовавшись кислородом и взяв в качестве катализатора оксид ванадия (V₂O₅), имеем 2SO₂ + O₂ + V₂O₅ ⇌ 2SO₃. Вода служит для гидратации триоксида серы в серную кислоты, SO₃ + H₂O → H₂SO₄. Могут использоваться и иные методы, например, с добавлением электролизованных растворов, таких, как раствор сульфата меди (II) (CuSO₄) или бромводородной кислоты (HBr) для реакции с серой.

С учетом вышесказанного, мы ни в коем случае не хотим доводить H₂SO₄ до точки кипения, поскольку в таком случае кислота быстро разложится и перейдет в полностью газообразное состояние.

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

Кремниевый кристалл, извлеченный из эпоксидной оболочки

Кремниевый кристалл, извлеченный из эпоксидной оболочки

Как только найдем кремниевый кристалл, подхватим его и поместим в стакан поменьше, наполненный ацетоном (C₃H₆O). После того, как чип утонет в этой жидкости, поставим стакан в ультразвуковую баню, чтобы очистить кремний от пригоревших частиц эпоксидной смолы, если таковые остались. Почему ацетон? Потому что это сильный промышленный растворитель, которым щадяще обрабатываются металлические поверхности кристалла.

Исследуем первый образец

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

CH340G, снятый через объектив с линзой, дающей пятикратное увеличение

CH340G, снятый через объектив с линзой, дающей пятикратное увеличение

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

Картинка в более высоком разрешении предлагается здесь: https://siliconpr0n.org/map/wch/ch340/mz_20x/

Картинка в более высоком разрешении предлагается здесь: https://siliconpr0n.org/map/wch/ch340/mz_20x/

Присмотревшись к логическим вентилям через объектив с 50-кратным увеличением, постепенно начинаем понимать, что здесь происходит. Первым делом интересно отметить, что на этом ПЗУ 14 мультиплексоров, то есть, 14 групп столбцов. Каждый мультиплексор имеет разрядность 16:1. Таким образом, он позволяет проложить 16 различных путей данных на месте единственного.

14 групп столбцов – значит, мы имеем дело с 14-битной архитектурой, и это странно. Как правило, встречаются микропроцессоры в диапазоне 4 бит, 8 бит, 16 бит или даже 32 бит. Ситуация значительно усложнится позже, после извлечения бит из этих изображений, так как мы, вероятно, имеем дело с нетипичной архитектурой.

Также нужно отметить следующие наблюдения. Во-первых, верхние слои в этом чипе представляют собой адресные строки. В вертикальном столбце видим 10 металлических линий, которые в итоге транслируются в 6 адресных разрядов, а 6 металлических линий по горизонтали транслируются в 4 адресных разряда. Суть этого будет объяснена ниже, когда мы займемся послойным препарированием чипа, 4 адресных разряда дадут нам 2⁴ = 16 для мультиплексоров, описанных выше. Теперь 6 адресных строк будут использоваться, чтобы выбрать одну из 64 строк в пространстве ПЗУ, что даст 16 бит x 14 столбцов по горизонтали. Вот почему нам требуется суммарно 10 адресных разрядов по вертикали.

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

Реакции послойного препарирования

Существует множество способов послойно препарировать чип, но мы рассмотрим лишь пару из них. Первым делом нам понадобятся тефлоновые химические стаканы, которые я упоминал выше в этой статье. Ни соляная (HCl), ни плавиковая (HF) кислота не реагируют с веществом такого типа, и такой материал можно спокойно разогревать на плитке. Хорошо, если быть точным, для работы с HCl стеклянные стаканы подойдут, но для работы с HF – нет.

Примечание: Существует некоторое сходство между двумя этими неорганическими кислотами. И HCl, и HF являются ионными соединениями, то есть, они должны полностью диссоциировать в ионном растворе, например, в воде. С HCl так и происходит, и поэтому она считается сильной кислотой, а с HF нет. Дело в том, что фтор и хлор отличаются по силе. У фтора сильная связь с водородом, поэтому диссоциация у фтора выражена не очень ярко. Электроотрицательность у иона фтора настолько велика, что даже мощный ионный эффект воды не позволяет полноценно оторвать его от атома водорода… в сущности, именно поэтому HF так опасна. Она прореагирует со всем, к чему сможет прикрепить свой электрон, в особенности с ионами кальция из ваших костей. Определенный процент молекул HF не диссоциирует, поэтому HF считается слабой кислотой. В нашем случае важно отметить, что как соляная, так и плавиковая кислота бурно реагируют с металлами, но их использование при послойном препарировании металлов может весьма отличаться.

Итак, как же определить, какую кислоту использовать? Как правило, в процессе производства полупроводников используется два типа металлов: алюминиевый (Al) сплав 6061 и/или медь (Cu). В чипах, подобным рассматриваемому, обычно встречается Al, но изредка может быть Cu. Дело в том, что у меди ниже сопротивление, и это положительно сказывается на включаемости металлов.

Если работать с Cu, то приходится использовать HCl, поскольку HF не вытравливает Cu и, фактически, спровоцирует сильную коррозию, вызываемую атмосферным кислородом. Любой окислительный агент плохо подойдет вам для послойного препарирования Cu с использованием HF. Помните, что HCl сама по себе также не будет вытравливать Cu, к ней нужен окислительный агент, например, пероксид водорода (H₂O₂), который позволит кислоте съесть всю Cu (восстановительный агент), поднимая pKa (константу диссоциации) кислотного раствора. Значение pkA характеризует силу кислоты. Две эти реакции вместе в соотношении 1:1 позволяют получить хлорноватистую кислоту (HOCl) и воду (H₂O). Как только в реакцию входит Cu из кристалла, медь прореагирует с HOCl, и получится хлорид меди (II), который и станет нашим травящим агентом. Таким образом, мы послойно препарируем медную область кристалла при комнатной температуре до получения зеленоватого раствора хлорида меди (CuCl₂).

H₂O₂ (aq.) + HCl  (aq.) → H₂O + HOCl (aq.)
2HOCl + Cu → Cu(HOCl)₂

Примечание: Будьте крайне осторожны, поскольку при комнатной температуре раствор HCl, в отличие от большинства кислот, быстро разогревается и, скорее всего, будет выделять газообразный хлороводород.  Это нужно делать[1] [2]  в вытяжном шкафу.

В нашем случае, при работе с CH340, нам придется протравить лишь очень тонкий слой Al, а диоксида кремния (SiO₂) там почти нет. Вот почему при послойном препарировании мы будем использовать HF. Влажная HF очень быстро накидывается на алюминиевые связи и контактные площадки при температуре выше 40°C, но также можно вытравливать при комнатной температуре и очень низкой концентрации, используя Whink. Этот удалитель ржавчины содержит плавиковую кислоту в концентрации 3%, но не обманывайтесь, поскольку и это может быть более чем фатально. Рекомендую класть чип в тефлоновый химический стакан и держать его там при комнатной температуре с интервалами примерно в 15 минут, в зависимости от того, какой именно чип мы тестируем. Так будет вытравливаться не только Al, но и SiO₂.

SiO₂ + 4HF → SiF₄ + 2H₂O

Эта реакция достаточно медленно протекает при низких концентрациях и без нагревания, но так безопаснее, если приходится иметь дело с парами. В результате должно получиться нечто подобное:

Послойно препарированная CH340

Послойно препарированная CH340

Итак, мы успешно протравили себе путь до самой подложки или уровня транзисторов в чипе. Изображение в более высоком разрешении предлагается на siliconpr0n. Присмотревшись к правому верхнему углу, найдем наше драгоценное МПЗУ.

Справа вверху: МПЗУ в CH340

Справа вверху: МПЗУ в CH340

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

Автоматическое извлечение битов ПЗУ

Знакомьтесь с rompar, интерактивным инструментом для извлечения двоичных данных из изображений МПЗУ при помощи методов компьютерного зрения. На первых порах может быть немного страшновато, так как кривая обучения у него крутая, но после нескольких прогонов все будет уже не так плохо. Первым делом давайте подготовим наше изображение, либо в Gimp, либо в вашем любимом редакторе фотографий. Суть в следующем: нам нужно выделить и расширить область с МПЗУ на изображении, обрезать ее и увеличить ее резкость.

Перед запуском инструмента нужно узнать, с каким объемом ПЗУ нам придется работать. Смотрим на картинку и видим 14 групп столбцов, в каждом по 16 бит в строку, то есть, мы имеем дело с 224 бит в каждой строке. Строки – следующая важная тема, которую мы обсудим, по-видимому, тут просматривается 64 строки. Таким образом, размер ПЗУ, с которым нам предстоит работать, составляет 1,7 Кб.

При запуске rompar ожидает получить 3 аргумента; файл изображения, количество столбцов и количество строк.

➜ python3 rompar.py image1-50x-ROM.jpg 16 1
Changing edit mode to GRID
Changing edit mode to GRID
Image is 11694x4318; 3 channels
process_image time 0.18801593780517578
read_data: computing
grid line redraw time: 6.4373016357421875e-06
grid circle redraw time: 1.1920928955078125e-05
render_image time: 0.22574210166931152

А почему тут конфигурация 16×1? – могли бы спросить вы. Потому, что, если взглянуть на картинку, заметен большой промежуток между 14 группами столбцов, поэтому мы и делим их на две части. То же касается и строк, по-видимому, между ними есть какой-то разделитель, поэтому мы не можем жестко закодировать строки.

Экран Rompar в инфракрасном спектре.

Экран Rompar в инфракрасном спектре.

Первый экран графического интерфейса (GUI), который мы рассмотрим, дан в инфракрасном спектре, чтобы по ярким и темным пятнам мы уяснили, чем допированный транзистор отличается от пустого места. Можно скорректировать порог, перейдя в CV Options -> Pixel Threshold. Корректируем, пока у нас не получится нечто подобное:

Увеличенное изображение бит в инфракрасном спектре

Увеличенное изображение бит в инфракрасном спектре

Нужно, чтобы программа поняла, что первая строка будет возвращать 0000001, а второй 01110101. Помните, что более яркие области принято обозначать через 1, а более темные через 0. При постобработке это правило по необходимости может инвертироваться, если нужно получить на выходе готовый двоичный файл. Теперь давайте перейдем к Display -> Base Image -> Original. Далее мы хотим сделать сетку из столбцов и строк, поэтому щелкнем ctrl+click по столбцу 1, перейдем к столбцу 16 и сделаем то же самое. Продолжаем, пока не обработаем все столбцы. В конечном итоге у нас должна получиться примерно такая сетка:

Голубая сетка для столбцов ПЗУ

Голубая сетка для столбцов ПЗУ

Голубые линии немного бледные, но при увеличении видны гораздо лучше. Теперь давайте подсветим отдельные биты. Нажимаем cmd+click в каждой строке, получаем следующее:

Двоичные разряды обведены кружочками

Двоичные разряды обведены кружочками

Как видите, тут есть несколько ошибок, но мы можем откорректировать отдельные разряды, перейдя в Edit -> Mode -> Data Edit Mode. Далее щелкнем ctrl+click по каждому отдельному биту, чтобы превратить голубые кружочки в зеленые или наоборот. Программа трактует зеленые маркеры как ‘1’, а голубые как ‘0’. К сожалению, с этим изображением ПЗУ мне пришлось многое редактировать вручную, но, как только результат нас устроит, можно экспортировать его в матрицу двоичных разрядов, перейдя в Data -> Export Data as Text. В итоге у вас получится файл со всеми вашими двоичными данными, такой, как выложен у меня на Github.

Декодируем биты

Теперь, когда у нас готов файл битовой матрицы, время превратить его в удобочитаемый и дизассемблированный файл прошивки. Этого можно добиться при помощи одного из двух инструментов, zorrom или bitviewer. В принципе, если уже знаем архитектуру, то используем zorrom, утилиту, преобразующую данные из физического представления в логическое и обратно при работе с топологией памяти чипа. Как написано в README от  Zorrom, “например, фотография загрузочного ПЗУ, преобразованная в двумерный битовый массив (.txt) может быть преобразована в машинно-читаемый двоичный формат. Затем этот .bin можно эмулировать, дизассемблировать и т.д., делать с ним все, что вы бы делали с обычным файлом прошивки ”. У программы есть отличный API, чтобы писать и настраивать, как именно должно считываться ПЗУ; то есть, здесь указывается топология, порядок следования байтов, требуется или нет инвертирование битов, а также порядки битов на выходе.

Причина, по которой мы не можем сразу начать работать с zorrom – в том, что мы не знаем тип процессора. Потратив дни и недели на изыскания в головной корпорации,  WCH, я не нашел ничего и близко напоминающего 14-битную архитектуру. Размышляя, с чем же мы имеем дело, мы, возможно, найдем ответ только «тупо присмотревшись», а для этого нужен такой инструмент как bitviewer. С этим инструментом единственная корректировка, которая нам потребуется – подогнать файл двоичной матрицы под 16-битную архитектуру. По-видимому, эта программа не слишком хороша для работы с 14-столбцовыми группами, но это как раз нормально, поскольку, когда мы извлечем bin-файл, эти заполняющие байты не повлияют на информативные байты прошивки.

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

Металлический слой (слева), Слой подложки (справа)

Металлический слой (слева), Слой подложки (справа)

Вот что мы можем узнать из этой картинки. В ПЗУ 64 бит по вертикали и 16 x 14 по горизонтали; как я уже говорил, объем этого ПЗУ – почти 2k. Выяснил, что для него нужно всего 10 адресных разрядов. В первом столбце транзисторов в вертикальных адресных разрядов за адресным битом  0 идет неадресный бит 0. В следующем столбце переключение происходит каждые два бита, и так далее. Я считаю, что здесь видно 4 бита по горизонтали и 6 битов по вертикали. У каждой строки должна быть дополнительная, чтобы по возможности упростить декодирование мультиплексорами 16:1. Если сделать очень сильное увеличение, то видно, что, благодаря мультиплексору экономится место, в которое можно добавить 14 инверторов, а не прокладывать дополнительную сигнальную строку по горизонтали.

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

Экран, которым открывается Bitviewer

Экран, которым открывается Bitviewer

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

Bitview 16-битные столбцы

Bitview 16-битные столбцы

Далее по списку нам нужно взглянуть на шестнадцатеричный дамп и посмотреть, есть ли там какие-то признаки, что мы правильно задали порядок. Для этого щелкнем по кнопке Byte view (hex). Прокручивая биты, ничего узнаваемого мы не увидим, так как 1) мы не знаем, как должны выглядеть коды операций, поскольку не знаем архитектуру и 2) мы пока не видим ни одной жестко закодированной последовательности символов. Так что мы полагаемся на то, что все-таки увидим здесь некие последовательности символов, по которым сможем судить, правильно ли выполнили декодирование.

Давайте кое-что откорректируем, нажав кнопку Export Options. Как видите, здесь мы можем откорректировать топологию ПЗУ, порядок следования байтов, а также внести еще некоторые изменения, например, инвертировать порядок бит. Большинство опций мы оставим без изменения, в том числе, порядок следования битов, который будет иметь вид: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15. Иногда приходится немного поэкспериментировать, чтобы получить правильный порядок на выходе, но я после нескольких попыток обнаружил, что полезно расставить галочки вот здесь: Reverse output bit order и Address run right-to-left. Теперь можем снова прокрутить шестнадцатеричное представление.

05C0: FE 73 FF DB EF ...  .s...t...t.b.|.j
05D0: FE 50 C6 5F D6 ...  .P._._.Q...P....
05E0: DD 74 DF F8 ED ...  .t...&.m...S.p..
05F0: FF 6D ED 00 FF ...  .m...y...|.....>
0600: FF 7A FF 6A ED ... .z.j.<.g.Z.X.s..
0610: D9 74 CE 65 ED ...  .t.e...W.p...[..
0620: E6 F0 F5 5B F0 ...  ...[.W.W.W.W....

По-прежнему никаких подвижек. Есть еще один вариант, который мы не проверили… возможно, наши биты нужно инвертировать/перевернуть. То есть, единицы должны стать нулями и наоборот. К счастью, в bitviewer это сделать можно; щелкаем кнопку Select all, и программа подсветит все биты во всех строках и столбцах. Когда они будут подсвечены, нажмите Invert Sel.

Инвертированные биты из Bitview

Инвертированные биты из Bitview

Все удалось успешно инвертировать, и теперь можно открыть вкладку с просмотрщиком байт, чтобы посмотреть, что у нас получилось.

0770: 10 03 10 09 ...  .............U..
0780: 10 53 10 00 ...  .S...B...2......
0790: 10 30 10 00 ...  .0...-..3...3...
07A0: 33 F3 10 00 ...  3...3...3...3...
07B0: 2F A4 10 00 ...  /.....(.....+...
07C0: 10 23 29 08 ...  .#)...../.. .'/.
07D0: 10 02 10 03 ...  ..../.....+..P.S
07E0: 2F A4 10 72 ...  /..r.e/..i.r/..n
07F0: 10 6D 2F A4 ...  .i/..t.a+.. .l..

Я этого на первый взгляд не заметил, но теперь же у нас есть полноценный файл прошивки, и мы можем его изучить! Посмотрев на отступы 0x0770 и 0x0780, можно выделить последовательность символов USB 2.0. Что еще? Следующую последовательность заметить не так легко, поскольку между первой и второй – большой скачок. Последовательности символов Print и Serial находятся на отступах 0x07D0–0x07F0. Другие интересующие нас подсказки будут в верхней части файла прошивки, например, та или иная таблица переходов и /или таблица векторов исполнения. Из этого сделаем вывод о наличии повторяющихся инструкций или, в нашем случае, байт.

Таблица переходов

Таблица переходов

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

Примечание: Возвращаясь к использованию zorrom, теперь мы знаем, какие опции нужны, чтобы получился правильный файл прошивки. Значит, мы можем автоматизировать этот процесс, написав подходящий алгоритм. Воспользовавшись API zorrom, пользователю всего-то останется скормить программе двоичный текстовый файл, а в ответ она выдаст файл прошивки. Здесь можете посмотреть код, который я написал для CH340. Этот инструмент можно запустить вот так:

➜ python3 txt2bin.py --arch ch340t ch340_binary.txt ch340_fw.bin

Также отметим, что при работе с zorrom не приходится заботиться о заполнении разрядов в двоичном текстовом файле, чтобы получилось 16 групп столбцов, нам вполне хватит наших исходных 14. Не забывайте, что иногда можно получить неверную ориентацию, извлекая биты с изображений. Расположение может случайно получиться зеркальным, либо придется определить, как правильно повернуть чип. Если дампировать двоичный текстовый файл, подобный тому, ссылка на который дана выше, то можно воспользоваться инструментом вроде rotate, чтобы просто перевернуть текст в файле вверх тормашками.

Дизассемблирование неизвестного

Самый большой вопрос – как дизассемблировать информацию, об архитектуре которой мы не имеем представления? Если бы не было найденных нами жестко закодированных последовательностей символов, откуда бы мы знали, что расставили байты в правильном порядке? Ответ на этот вопрос не так прост и очевиден. Придется воспользоваться IDA Pro в качестве основного инструмента дизассемблирования, но при этом нам придется написать наш собственный специальный плагин.

Имея дело с незнакомой архитектурой, необходимо как следует разобраться с изображениями, чтобы понять, как используется ПЗУ. Ситуация примерно такова, как если бы врач выполнил КТ всего тела пациента, и изучил бы томограмму каждого органа в отдельности, чтобы найти подсказки.

Итак, в данном случае мы рассматриваем весь чип, а не только ПЗУ:

Послойно препарированный CH340 с аннотациями

Послойно препарированный CH340 с аннотациями

Аннотации – важный аспект обратного проектирования интегральных схем, а в нашем случае придется пояснить очень многое. Прочитав даташит, мы знаем, что этот чип поддерживает возможности USB, поскольку служит мостом от USB к USART. Мы также знаем, что этому чипу требуется внешний источник колебаний для отсчета тактов. Некоторые допущения, которые мы можем сделать относительно чипа: здесь должен быть блок статической памяти с произвольным доступом для энергозависимого хранения данных, область регистров, которые будут использоваться для приема, хранения и переноса данных, а также команды, которые будут использоваться непосредственно ПЗУ при работе с ядром процессора. Поскольку, согласно даташиту, на этом чипе отсутствует ЭСППЗУ, мы отметили на большом участке слева, как данные принимаются и передаются  USB-портом.

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

Частично дизассемблированное представление кода ch340

Частично дизассемблированное представление кода ch340

Как понятно из кода на python, нам также удалось в точности выяснить, как именно передавались жестко закодированные последовательности символов. Подобно кодам операций в таблице переходов, CALL-ы покажутся вам весьма знакомыми, когда будете просматривать шестнадцатеричный дамп прошивки неизвестного типа. Увидите байт инструкции, а за ним еще два байта, выделенных под адрес.

Предстоит сделать еще немало. Даже при допущении, что отношение между инструкцией и регистром – в формате «начиная со старшего», нам придется перейти на формат «начиная с младшего», поскольку по какой-то причине IDA не преобразует или не дизассемблирует как следует двухбайтовые фрагменты WORD, когда работает в формате «начиная со старшего». По-видимому, к этой статье придется написать вторую часть, в которой я наконец смогу объяснить, как все работает в этом чипе. А эту статью я завершу рассказом о том, как прибрать тот беспорядок, который мы учинили в лаборатории, работая со всеми этими неорганическими кислотами.

Убираем за собой. Кислотно-основная нейтрализация

Серную кислоту (H₂SO₄) можно нейтрализовать при помощи исключительно сильной щелочи, гидроксида натрия (NaOH). Эта кислота реагирует с NaOH, продуктами реакции являются сульфат натрия (Na₂SO₄) и вода. Это реакция кислотно-основной нейтрализации. После расстановки коэффициентов в уравнении видим, что нужное нам соотношение между щелочным раствором и кислотой – 2:1.

2NaOH (aq) + H₂SO₄ (aq) → 2H₂O (l) + Na₂SO₄ (aq)

В нашем случае мы воспользуемся гораздо более высоким соотношением, поскольку, как помните, мы задействовали всего 20 мл H₂SO₄ для декапсуляции чипа. NaOH существует в форме кристаллов, напоминающих соль, и всего 15 грамм NaOH на 150 мл воды (раствор 10%) хватит для приготовления раствора. NaOH + H₂O дадут раствор с катионами Na+ и анионами OH-, дополнительно выделится некоторое количество тепла. Уравнение реакции выглядит так:

NaOH + 2H₂O → Na+ + OH- + H₂O (delta H < 0)

Медленно наливаем кислоту в свежеприготовленный щелочной раствор. При этом вы можете заметить, что смесь немного нагревается. Это происходит потому, что процесс экзотермический, то есть, кислотно-основная реакция происходит с выделением избыточной теплоты. Эта теплота – «сухой остаток» процессов разрыва и образования химических связей. Проще говоря, конечные продукты этой реакции находятся в более низком энергетическом состоянии, чем реагенты. Энергетическая разница между двумя этими состояниями равна той энергии, что выделяется в виде теплоты. Остаток раствора можно разбавить, долив в полученную кислотно-основную смесь еще 150 мл воды. Медленно помешиваем в течение около 2 минут, затем проверяем нейтральность раствора при помощи лакмусовой бумажки.

Проверка уровня pH нейтрализованной серной кислоты

Проверка уровня pH нейтрализованной серной кислоты

Примечание: чтобы проверить нейтрализацию, можно воспользоваться бытовой химией, например, бикарбонатом натрия (NaHCO₃), бросив его в стакан и посмотрев, пойдут ли пузырьки. Если разбавленный кислотно-водный раствор начинает пузыриться, это означает, что кислотность его по-прежнему немного повышена из-за связанного диоксида углерода (CO₂), который рвется наружу из раствора угольной кислоты. После того, как в растворе все успокоится, складываем все химикаты в специальный контейнер для химических отходов и относим в компанию, которая за нас их как следует утилизирует.

Спасибо, что дочитали! Надеюсь, вам понравилось не меньше, чем мне. Если у вас остались вопросы по этой статье, пишите мне пожалуйста в Instagram: @hackersclub или в Twitter: @ringoware

Доброй охоты :)

Ссылки и благодарности

●        Ken Shirriff — http://www.righto.com/2020/05/extracting-rom-constants-from-8087-math.html, за то, что лично уделил время и рассказал мне, как биты считываются из ПЗУ.

●        John McMaster — https://siliconpr0n.org/archive/doku.php за то, что провел со мной многие часы и, в частности, рассказал, как автоматизировать извлечение ПЗУ, как делается декапсуляция и послойное препарирование.

●        Chris Gerlinsky — этот товарищ сильно мне помог, когда понадобилось выяснить, что делать с файлом двоичной матрицы, составленным из данных, извлеченных с изображений кремниевых кристаллов. Никогда не довел бы этот проект так далеко, если бы не его всемерная помощь в понимании архитектуры.

●        Elijah Hawk — Всегда был великодушно готов потратить на меня пару часов, вычитывая грамматику и структуру предложений во всех моих статьях.

●        О нейтрализации — https://chem.libretexts.org/Bookshelves/Physical_and_Theoretical_Chemistry_Textbook_Maps/Supplemental_Modules_(Physical_and_Theoretical_Chemistry)/Acids_and_Bases/Acid_Base_Reactions/Neutralization

●        Получение серной кислоты — https://www.cs.mcgill.ca/~rwest/wikispeedia/wpcd/wp/s/Sulfuric_acid.htm

●        Конструирование сверхбольших интегральных схем (VLSI)  — https://www.tutorialspoint.com/vlsi_design/vlsi_design_digital_system.htm

Понятие о NAND Flash — https://www.simms.co.uk/nand-flash-basics/understanding-nand

EEPROM — Энергонезависимая память, тут хранятся все пользовательские настройки (громкость, яркость, контрастность и т.д.). Также EEPROM хранит опции процессора и сервисные опции.

EEPROM — (англ. Electrically Erasable Programmable Read-Only Memory) — электрически стираемое перепрограммируемое ПЗУ.

Микросхема используется во многих современных электронных приборах для сохранения каких либо настроек.

Содержание

  • Питание
  • Расположение на плате
  • Проблемы EEPROM
  • Прошивка
  • Производители EEPROM
  • Диагностика и выявление неисправности

Питание

Микросхема работает по шине I2C

Питается микросхема от 1.8 до 5 — 6V. В телевизорах питание микросхемы связано с питанием ЦП и равняется 3.3В.

Диагностика Main Board не редко начинается с проверки этого напряжения.

Расположение на плате

Микросхема располагается рядом с процессором. EEPROM так же располагается радом с подключаемыми разъемами: HDMI, DVI и пр. Питается микросхема, расположенная таким образом от того устройства, к которому подключается. Хранит данные и передает подключаемому устройству (название, возможные разрешения и т.д.)

http://master-tv.net/forum/sekrety-remonta-televizorov/3174-problemy-eeprom.html

Прошивка

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

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

Производители EEPROM

  • Mikron Sitronics
  • Aplus Flash Technology
  • Mitsubishi Electric
  • Atmel
  • Hitachi
  • Infineon
  • Maxwell Technologies
  • Microchip Technology
  • NXP Semiconductors
  • Renesas Technology
  • ROHM Electronics
  • Samsung Electronics
  • SmarfTech
  • STMicroelectronics
  • Seiko Instruments
  • Winbond
  • Интеграл
  • Catalyst Semiconductor Inc
  • Микрон

Диагностика и выявление неисправности

EEPROM работает на шине I2C. Линии SDA и SCL этой шины подтянуты резисторами на +. Процессор запускается и считывает данные с EEPROM. На линиях SDA и SCL напряжение составляет примерно 3В. Во время запуска телевизора сигналы обмена процессора с EEPROM на линиях SDA и SCL по шине I2C возможно увидеть используя осциллограф.

Если же обмена данными не происходит, стоит проверить:

  • Flash память
  • ПО, хранящееся во Flash памяти (Прошивка)
  • Тактирование ЦП (Кварцевый резонатор)
  • Питание процессора


Как прошить телевизор, если он не включается?

Перепрошиваем spi-flash память, если слетела прошивка

Одной из распространённых неисправностей современных ЖК-телевизоров является «слёт» прошивки.

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

Перечислю основные признаки «слёта» прошивки:

  • Телевизор не включается, хотя индикация дежурного режима имеется. Индикатор светится. Отмечу, что телевизор перестаёт включаться вовсе. Если он, раз от разу реагирует на команды и включается, то, скорее всего неисправность связана с блоком питания;

  • ЖК-телевизор не переходит в рабочий режим ни по команде с кнопочной панели, ни по команде с пульта. В некоторых случаях реакция на нажатие кнопки “Power” имеется – индикатор меняет цвет, но включение телевизора так и не происходит.

Что необходимо для прошивки микросхемы памяти?

  • Первое, это конечно, компьютер или ноутбук.

    Ноутбук для работы

  • Второе, это программатор, который способен работать с данной серией микросхем памяти. Нам нужна 25 серия SPI-Flash.

  • Третье, это специальный софт – программа, которая нужна для работы с программатором.

  • Четвёртое, что нам потребуется, это файл рабочей прошивки под данный аппарат.

  • Пятым пунктом идёт новая или заведомо исправная микросхема SPI-Flash с необходимым объёмом памяти.

    Микросхема spi-flash памяти серии 25Qxx

USB-программатор микросхем SPI-Flash 25 серии.

В качестве программатора для прошивки микросхем памяти я уже давно использую USB-программатор Postal 3. Он же Postal AVR. Покупал набор для самостоятельной сборки. Вместе с рассыпухой, которой нет в наборе, программатор обошёлся мне в сумму около 500 руб. Покупал его специально для прошивки микросхем SPI-Flash от LCD-телевизоров.

Ссылка на сайт, где можно заказать Postal 3 (USB). Там же найдёте инструкцию по установке и настройке софта.

Вот так программатор выглядит в сборе.

Программатор POSTAL 3 (USB)

Разумеется, сейчас в продаже можно найти и другие программаторы (например, CH341A).

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

Если руки прямые и есть время, то можно собрать программатор самому.

Для работы с USB-программатором Postal 3 используется программа с аналогичным названием (Postal 2/3).

Актуальную информацию по программатору Postal 3 (рисунок печатки, прошивка для микроконтроллера, софт, вопросы/ответы и пр.) можно найти в профильных темах на форумах Монитора и Ремонта бытовой техники и электроники.

Также можете скачать подробный мануал по прошивке микросхем памяти разных серий от Фёдора (fsem) по ссылке (формат PDF).

Что такое прошивка и где её взять?

Прошивка представляет собой файл в формате .bin, который иногда ещё называют дампом памяти или просто дампом. Она является микропрограммой, которая управляет работой ЖК-телевизора.

Файл прошивки

Где взять рабочую прошивку?

Самый простой способ найти годную прошивку – это вбить в строку поиска Гугла фразу типа: «модель вашего аппарата прошивка (скачать)». Например, «mystery mtv-3223lt2 прошивка» или «mystery mtv-3223lt2 скачать прошивку». Но такой способ выручает не всегда.

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

  • Монитор.нет;
  • Ремонт бытовой техники и электроники.

Как найти то, что нужно в огромном океане информации – это отдельная тема. Но, чтобы ваш поиск был удачным, дам ещё несколько советов.

Найти нужную прошивку можно по номеру материнской платы (main board’а или майна). Он же номер шасси. Вбиваем в поиск его и слово прошивка. Иногда достаточно просто указать номер шасси и изучить первую страницу выдачи поисковика.

Номер шасси обычно указывается на самой печатной плате. Далее на фото показана основная плата телевизора Rolsen RL-28D1307. Как видим, на ней указан номер шасси – TP.VST59S.P89.

Номер шасси (Main Board'а)

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

Это перечень с маркировкой основных микросхем или блоков: процессора (он же скалер), flash-памяти, ЖК-панели (LCD panel), платы T-CON, модуля тюнера и пр. По этому списку можно точно определить, что прошивка подходит именно под ваш аппарат. Это бывает необходимо, когда одна и та же модель телевизора имеет разные версии, в которых могут быть установлены другие компоненты и блоки.

Особое внимание нужно уделять номеру ЖК-панели (LCD panel). Обычно она указывается на её корпусе. Если в списке всё совпадает, но номер ЖК-панели другой, то, возможно, с данной прошивкой ваш телевизор будет работать некорректно.

Маркировка LCD панели

В довольно редких случаях найти прошивку на нужный аппарат не удаётся. Например, мне не удалось найти прошивку для ЖК-телевизора Hyundai H-LED19V15. Но, когда я стал искать её по номеру шасси (main board’а), то обнаружил, что точно такой же майн установлен в телевизоре Liberton LED 1910 ABHDR. Взял прошивку от него.

Как оказалось, эти две модели телевизоров полные клоны. Разница лишь в бренде. Было забавно, когда при включении Hyundai H-LED19V15 на его экране появлялась заставка с надписью Liberton.

Подбор spi-flash памяти для замены.

Флэш-память (SPI-Flash память) применяется в современных ЖК-телевизорах, автомобильных MP3-ресиверах, видеорегистраторах всех мастей, материнских платах персональных компьютеров, телевизионных приставках и даже в говорящих игрушках и фоторамках.

Как правило, в них используются микросхемы SPI-Flash памяти 25 серии (MX25L1633E, MX25L1605A, MX25Q32B-104HIP, W25Q32FVSSIG, G25Q16-15G, GD25Q32, HG25Q32BVSIG и т.п.). Питание у данной серии микросхем 3-ёх вольтовое (2,7…3,6V), в отличие от 24 серии у которой номинальное напряжение питания составляет 5 вольт, да и тип памяти другой.

Зачастую на корпусе микросхемы указывается неполная маркировка что-то вроде 25Q64BSIG, но обязательно присутствует надпись 25Qxx, 25Lxx или что в этом духе. Вместо xx – кодовая маркировка объёма памяти микросхемы.

Микросхемы имеют корпус SOIC-8 под планарный монтаж.

Внешний вид и цоколёвка 25Qxx в корпусе SOIC-8 (208 mil)

Также могут применяться и другие типы корпусов, например, SOIC-16 (300 mil).

Внешний вид и цоколёвка W25Qxx в корпусе SOIC-16 (300 mil)

Не исключено, что на практике встретите не только микросхемы spi-flash с выводами (pin), но и в корпусах под BGA-монтаж (на шарах) или с выводами в виде контакта (pad), например, WSON-8 (DFN-8). К счастью, такие в ЖК-телевизорах встречаются довольно редко. Но это пока…

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

Родную микросхему SPI-Flash лучше не выкидывать или считать и сохранить с неё родную, заводскую прошивку. Это страховка на случай, если новая прошивка не подойдёт.

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

По моему мнению, большинство «слётов» прошивки происходит из-за брака в микросхемах памяти, криво написанного софта (микропрограммы) или же после проблем с питанием, которые приводят к некорректной работе микросхемы. Порой приходится перепрошивать микросхемы памяти в телевизорах, которые пришли в ремонт по причине выхода из строя элементов блока питания (из-за грозы или скачков напряжения в электросети).

Наиболее часто в ЖК-телевизорах можно обнаружить микросхемы 25Q32 на 32 Мбит (4 Мбайт или 4194304 байт) и 25Q64 на 64 Мбит (8 Мбайт или 8388608 байт).

Почему 8388608 байт, а не 8000000? Кому не понятна эта путаница с килобайтами и мегабайтами, и, почему надо умножать не на 1000, а на 1024, советую погуглить «Кибибайт». Возможно, развеете для себя очередной миф, наподобие того, что ток течёт не от плюса «+» к минусу «-«, а наоборот.

Итак, с теорией более-менее разобрались, теперь займёмся практикой.

Ещё раз напомню о важном. При ремонте ЖК-телевизора первым делом стоит убедиться в том, что причина его некорректной работы кроется именно в «слетевшей» прошивке. Аналогичным образом проявляются неисправности блока питания (дежурного или основного).

Перепрошивать память будем на примере ЖК-телевизора Mystery MTV-3223LT2. На фото он уже исправно работает.

ЖК-телевизор Mystery MTV-3223LT2

Неисправность проявлялась следующим образом. Телевизор не включался, но при нажатии кнопки «Power» на пульте ДУ или кнопочной панели светодиодный индикатор менял свой цвет.

Демонтаж микросхемы памяти.

Вскрываем заднюю крышку телевизора. При этом его лучше положить на диван или кровать, чтобы исключить повреждение ЖК-матрицы.

Вскрываем задную крышку телевизора Mystery MTV-3223LT2

Откручиваем болты по периметру задней крышки. Не удивляйтесь тому, что LED-подсветка включена. Фото я делал уже на рабочем телевизоре.

Снимаем заднюю крышку ЖК-телевизора

Почти вся электронная начинка сосредоточена на одной печатной плате.

Плата Main Board ЖК-телевизора Mystery MTV-3223LT2

Здесь и блок питания, и инвертор DC/DC для питания LED-подсветки, и скалер (центральный процессор), а также блок тюнера и усилитель. Всё на одной плате.

Main board телевизора Mystery MTV-3223

Кстати, номер LCD панели у нашего телевизора Mystery MTV-3223LT2 (V4N09) указан на наклейке (V320BJ7-PE1).

Номер LCD панели телевизора

После осмотра печатной платы и замера основных напряжений стало ясно, что «железо» исправно, а неисправность, скорее всего связана с программной частью аппарата.

Снимаем плату, чтобы выпаять микросхему памяти. Если не уверены в том, что потом, во время сборки, сможете правильно подключить все провода и шлейфы, то делаем качественное фото или записываем/маркируем что и с чем соединяется.

Снимаем Main board телевизора

Далее ищем на плате «флэшку». Обычно она располагается рядом со скалером (центральным процессором), на который установлен или чаще всего приклеен алюминиевый радиатор.

Микросхема SPI-FLASH на главной плате телевизора

Теперь нам надо подобрать замену нашей микросхеме. Как видим, в данном телевизоре используется 25Q64BSIG с объёмом памяти 8 Мбайт (64 Мбит). Вместо неё я установлю новую микросхему W25Q64FVSIG фирмы Winbond.

Микросхемы 25Q64BSIG и W25Q64FVSIG

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

Выпаиваем чип и убираем остатки припоя с дорожек медной оплёткой.

Демонтаж микросхемы памяти

Отмываем остатки флюса изопропиловым спиртом. Место под установку прошитой памяти готово.

Выпаиваем память и убираем остатки припоя

Теперь настало время прошить новую флэш-память.

Файл прошивки для ЖК-телевизора Mystery MTV-3223LT2 (V4N09) можно скачать по ссылке .

Так как микросхема выполнена в планарном корпусе, то для её прошивки желательно иметь переходник.

Первое время я просто напаивал провода на ножки микросхемы и вставлял их в панель программатора. Занятие нудное, да ещё есть риск отломить выводы микросхемы.

Прошивка SPI-FLASH без переходника

Устав это делать, купил адаптер-переходник с SOIC-8/SOP-8 на DIP-8 (200 — 208 mil). Вот ссылка, если кому надо такой. Как заказывать запчасти и детали на Али я уже рассказывал.

Кроме адаптеров есть ещё и специальные клипсы для прошивки памяти без выпаивания, но я таким пока не пользовался.

Обязательно обращаем внимание на то, под какой сокет идёт адаптер. Их существует несколько под разные типы корпусов (150 mil, 170 mil) или же под корпуса TSSOP-8. Для тех микрух, что стоят в ЖК-телевизорах надо на 200 209 mil.

Адаптер-переходник SOIC8/SOP8 на DIP8 200-208 mil

Так как выводы у переходника типа PLS, то в цанговую панель на программаторе его не установишь. У меня на программатор запаяна обычная панелька DIP-8 с лепестковыми контактами. Поэтому в неё адаптер вставляется легко.

Устанавливаем память в переходник и не забываем установить джампер в положение 3,3V на плате программатора. Напомню, что микросхемы SPI-Flash питаются напряжением 2,7…3,6V.

Программатор с адаптером SOIC8 - DIP8

При нажатии на верхнюю пластинку фиксатора контакты панели расходятся. Ставим микросхему на контакты, соблюдая цоколёвку и отпускаем фиксатор.

Напомню, что отсчёт номера вывода микросхемы ведётся против часовой стрелки, начиная от ключа на корпусе микросхемы. Ключом в данном случае является круглое углубление или точка на корпусе.

Микросхема SPI-Flash W25Q64FVSIG в адаптере

Память я прошиваю с помощью своего старенького ноутбука Acer Aspire 5510, который гоняет ещё под WinXP. Подключаем программатор к USB-порту компьютера.

Подключаем программатор к USB-порту ноутбука

Далее запускаем программу Postal 3. В её главном окне нужно задать, с каким типом памяти мы будем работать. Выбираем SPI Flash.

Главное окно программы Postal 3

Также не помешает поставить «галку» в чекбоксе «Auto» в блоке «Writer«. Особенностью микросхем SPI-Flash является то, что они требуют полного стирания перед записью. С опцией «Auto» программа перед записью автоматически очищает память микросхемы, а также проводит проверку-сравнение (Verify) после считывания или записи дампа.

В окне слева выводятся логи процесса. По ним можно понять, что делает программа. Чтобы очистить записи в окне логов можно нажать кнопку «Clear«.

Основные настройки программы задаются на вкладке «Настройки», которую можно открыть кнопкой «Settings«.

Перед прошивкой можно считать сведения о микросхеме, которая установлена в панель программатора. Для этого жмём кнопку «Version» (блок «Extra Control«). Процедура эта не обязательная.

Проверка версии микросхемы и объёма её памяти

Как видим из этого скриншота, взятом для примера, программа определила, что микросхема имеет маркировку GD25Q32, а её объём памяти составляет 4194304 байт (4M-byte).

На вкладке Settings необходимо сделать несколько настроек. Во-первых, необходимо указать, какой объём памяти имеет наша микросхема. Если проводили проверку кнопкой «Version», то объём смотрим в логах.

Я выбираю 8 M-byte (8 Мбайт) для W25Q64. Жмём «ОК». Также не помешает проверить снята ли галочка в чекбоксе EEPROM.

Указываем тип микросхемы и объём её памяти

Затем нужно указать файл дампа, который мы будем записывать в память. Для этого в главном окне программы жмём кнопку «Open» напротив поля «Source File (for flashing)«. В окне проводника выбираем файл прошивки и жмём «Открыть«.

Выбираем файл прошивки .bin

После этого в поле ввода «Source File (for flashing)» появится путь к файлу прошивки.

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

Далее жмём кнопку «Write» в правом блоке «Writer«. Начнётся процесс стирания, а в окне прогресс-бара появится надпись Scan SPI Flash for Erase.

Очистка памяти SPI Flash микросхемы

Если до этого считывали содержимое микросхемы («Read«), то вместо Scan SPI Flash for Erase в прогресс-баре можем увидеть надпись Wait for Busy Clear.

Подготовка к программированию чипа. Очистка

Если микросхема памяти новая, то программа сообщит, что чип пустой и очистка не требуется (Chip is Empty, Erase Not Need. May be DATA-Line disconnected?).

Чип пустой. Очистка не требуется

Если же память микросхемы была ранее записана данными, то программа выполнит очистку и сообщит об этом (Chip is Empty. All Data = FF. May be DATA-Line disconnected?).

Очистка памяти завершена

Нажимаем «ОК». Далее начнётся процесс записи (Write SPI Flash (Burst Mode)).

Процесс записи

По завершению записи происходит верификация (Verify SPI Flash).

Проверка после записи

В большинстве случаев процесс записи проходит без ошибок в течение нескольких минут.

Если процесс прошёл успешно, то в окне логов последними строчками будут SPI Verify 8388608 OK. usb-device closed.

Если что-то не получается, то ответ на вопрос можно найти на форумах. Ссылки я уже указывал.

Запаиваем микросхему на плату, соблюдая цоколёвку!

Запаиваем прошитую микросхему не забывая о цоколёвке!

Радуемся работе ЖК-телевизора.

ЖК-телевизор Mystery MTV-3223LT2 (V4N09) после перепрошивки

Ну и напоследок дисклеймер. Ну как без него!?

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

Главная » Мастерская » Текущая страница

Также Вам будет интересно узнать:

  • Собираем USB программатор PIC-контроллеров своими руками.

  • Как проверить пульт ДУ от телевизора?

Понравилась статья? Поделить с друзьями:
  • Как найти пульт по марке телевизора
  • Как найти ускорение ответы
  • Забыла вещи в такси как найти
  • Как в телефоне найти фотогалерея
  • Как найти предков по фио