hd0802a что это за микросхема

Маленький дисплей LCD0802A для «ардуинщиков»

hd0802a что это за микросхема

Посылки с TAOBAO — для меня довольно редкое явление (по сравнению с Алиэкспресс), поэтому всегда стараюсь в заказ включить какую-нибудь экзотику. Вот и сейчас, когда заказывал партию разных дисплейчиков взял для пробы один LCD0802A с желто-зеленой. подсветкой (как оказалось потом, не совсем желто-зеленой)
Экранчики LCD1602 часто применяются в ардуиноподобных поделках из за своей неприхотливости и низкой цены. Иногда, для вывода пары цифр, целесообразно брать дисплеи поменьше.
Представляю для вашего внимания миниатюрный дисплей LCD0802A.

После покупки прошли уже пара месяцев и данный товар исчез из ассортимента данного продавца на ТАО. Но аналогичный дисплей легко найти на той же площадке или на Алиэкспресс, хотя там он стоит дороже «народных» 1602.

Данный дисплей работает на контроллере HD44780 и полностью совместим с более распространенными LCD1602, 2002 и 2004. Как видно из названия, имеет две строки по 8 символов.
Размеры платы всего 58х32 мм, тогда как у стандартного 1602 80х36 мм
hd0802a что это за микросхема
Размер области цифр — 28х12 мм
По размеру он меньше MTC-S16208XFYHSGY из прошлого обзора.
hd0802a что это за микросхема
hd0802a что это за микросхема
Интерфейс, как и у всех HD44780, параллельный. 16 пинов идут в два ряда. Распиновка такая же как у 1602.
hd0802a что это за микросхема
Для подключения достаточно 6 пинов — RS, E и D4-D7.
По подключению к Ардуино можно подробно посмотреть здесь или набрать в Гугле заветные слова «LCD 1602 Arduino».
Библиотека для Ардуино Adafruit_LiquidCrystal на github
Подключение прошло просто
hd0802a что это за микросхема
Приятно порадовало, что контрастность дисплея можно не настраивать. Она и так уже максимальная и при помощи потенциометра на пине 3 можно только уменьшить ее до нуля.
С русскими буквами тоже все ожидаемо. В дисплеях, приобретенных в Китае, я их не разу не видел, а знакогенератор, увы, намертво прошит в микросхеме.
hd0802a что это за микросхема
А вот с подсветкой вышел сюрприз. Не знаю, какой там у китайцев желто-зеленый, но на дисплей загорелся красным.
hd0802a что это за микросхема
Ограничивающий резистор на подсветке присутствует, то есть достаточно подать туда 5В или высокий уровень с любого пина Ардуины.
Частичную русификацию можно сделать загрузкой своих 8 символов.
hd0802a что это за микросхема
Подробнее про это почитать и взять исходник можно в этой статье

Скачиваю и устанавливаю библиотеку

Команда gpio readall покажет, куда на разъеме выведены какие порты
hd0802a что это за микросхема
После этого в скачанной папке WiringOP правлю файл
examples/lcd.c, компилирую его и запускаю.
hd0802a что это за микросхема
hd0802a что это за микросхема
Чтобы закончить обзор чем нибудь полезным, я выведу температуру процессора Orange PI на дисплей 0802A

Выводы:

Экраны LCD0802A могут найти достойное применение там, где нужно сэкономить место и не нужно выводить много информации. В отличие от светодиодных семисегментных индикаторов, они более информативные, так как можно вывести кроме цифр все символы латинского алфавита, а также свои собственные символы. Но LCD, увы, более тусклые, чем LED или OLED.
Хотя, в последнее время, идет активная тенденция замены текстовых экранов на графические.

Достоинства данного дисплея:
— Маленькие габариты
— Низкое энергопотребления (0.5мА без подсветки)
— Отсутствие настройки контрастности
— Низкая цена

К его недостаткам бы отнес
— Отсутствие русских букв в знакогенераторе
— Цвет подсветки не соответствует заявленному

Источник

Модули защиты и контроллеры заряд/разряд для Li-ion аккумуляторов

Для начала нужно определиться с терминологией.

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

Другими словами, когда говорят о контроллере заряда/разряда, речь идет о встроенной почти во все литий-ионные аккумуляторы защите (PCB- или PCM-модулях). Вот она:hd0802a что это за микросхема

И вот тоже они:hd0802a что это за микросхема

Очевидно, что платы защиты представлены в различных форм-факторах и собраны с применением различных электронных компонентов. В этой статье мы как раз и рассмотрим варианты схем защиты Li-ion аккумуляторов (или, если хотите, контроллеров разряда/заряда).

Контроллеры заряда-разряда

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

DW01-Plus

Такая защитная плата для аккумуляторов li-ion встречается в каждом втором аккумуляторе от мобильника. Чтобы до нее добраться, достаточно просто оторвать самоклейку с надписями, которой обклеен аккумулятор.

hd0802a что это за микросхема

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

Вся схема выглядит примерно вот так:hd0802a что это за микросхема

S-8241 Series

Фирма SEIKO разработала специализированные микросхемы для защиты литий-ионных и литий-полимерных аккумуляторов от переразряда/перезаряда. Для защиты одной банки применяются интегральные схемы серии S-8241.hd0802a что это за микросхема

Ключи защиты от переразряда и перезаряда срабатывают соответственно при 2.3В и 4.35В. Защита по току включается при падении напряжения на FET1-FET2 равном 200 мВ.

AAT8660 Series

Пороговые напряжения составляют 2.5 и 4.32 Вольта. Потребление в заблокированном состоянии не превышает 100 нА. Микросхема выпускается в корпусе SOT26 (3х2 мм, 6 выводов).

FS326 Series

LV51140T

Аналогичная схема протекции литиевых однобаночных аккумуляторов с защитой от переразряда, перезаряда, превышения токов заряда и разряда. Реализована с применением микросхемы LV51140T.hd0802a что это за микросхема

R5421N Series

Серия R5421N содержит несколько модификаций, отличающихся величиной напряжения срабатывания при перезарядке. Подробности приведены в таблице:

ОбозначениеПорог отключения по перезаряду, ВГистерезис порога перезаряда, мВПорог отключения по переразряду, ВПорог включения перегрузки по току, мВ
R5421N111C4.250±0.0252002.50±0.013200±30
R5421N112C4.350±0.025
R5421N151F4.250±0.025
R5421N152F4.350±0.025

SA57608

Очередной вариант контроллера заряда/разряда, только уже на микросхеме SA57608.hd0802a что это за микросхема

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

ОбозначениеПорог отключения по перезаряду, ВГистерезис порога перезаряда, мВПорог отключения по переразряду, ВПорог включения перегрузки по току, мВ
SA57608Y4.350±0.0501802.30±0.070150±30
SA57608B4.280±0.0251802.30±0.05875±30
SA57608C4.295±0.0251502.30±0.058200±30
SA57608D4.350±0.0501802.30±0.070200±30
SA57608E4.275±0.0252002.30±0.058100±30
SA57608G4.280±0.0252002.30±0.058100±30

LC05111CMT

Решение интересно тем, что ключевые MOSFET’ы встроены в саму микросхему, поэтому из навесных элементов остались только пару резисторов да один конденсатор.

Переходное сопротивление встроенных транзисторов составляет

Микросхема выпускается в корпусе WDFN6 2.6×4.0, 0.65P, Dual Flag.

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

По этой причине контроллеры заряда никогда не встраивают в аккумулятор (в отличие от плат защиты). Контроллеры просто являются частью правильного зарядного устройства и не более.

Путаница между схемами защиты литиевых аккумуляторов и контроллеров заряда возникла из-за схожести порога срабатывания (

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

Источник

Жидкокристаллический символьный дисплей 0802 hd44780. Собираем ЛабБП часть 4

hd0802a что это за микросхема

Ого! Вот это некропост про некродисплей)

Да возможно это так и есть, но мне кажется, что для самодельного ампервольтметра этого вполне достаточно. Почему самодельный ампервольтметр? Ну во первых, захотелось сделать этот девайс самостоятельно, надеюсь это веская причина? 😉 Да, китайцы продают подобные устройства. Да цена их сопоставима или даже ниже. Но… Можно купить и готовый ЛабБП… Но это же не интересно и не «наш метод» ©

И так что же представляет собой этот дисплей? Данный дисплей работает на контроллере HD44780, и полностью совместим с более распространенными LCD1602, 2002 и 2004. Как видно из названия, имеет две строки по 8 символов.
Размеры платы всего 58х32 мм, тогда как у стандартного 1602 80х36 мм
hd0802a что это за микросхема
Размер области цифр — 28х12 мм
hd0802a что это за микросхема
Интерфейс, как и у всех HD44780, параллельный. 16 пинов идут в два ряда. Распиновка такая же как у 1602.
hd0802a что это за микросхема
Порадовало, что на плате сразу установлен ограничивающий резистор для подсветки дисплея, потому можно на пины 15 и 16 подавать напряжения 5В.
hd0802a что это за микросхема
Судя по информации из Интернета, с русскими буквами все ожидаемо. В дисплеях, приобретенных в Китае, их нет, а знакогенератор, увы, намертво прошит в микросхеме. Но для самодельного ампервольтметра русские буквы не нужны.

Ток потребления индикатора — 0.5мА без подсветки и 15мА с подсветкой.

Что ж, попытаемся собрать ампервольтметр. Сразу даю ссылку на сайт где описано, как собирать, есть список деталей, печатная плата и прошивка для микроконтроллера… Желающие повторить проект могут все скачать оттуда напрямую…
Приведу лишь схему
hd0802a что это за микросхема
Все детали (микросхемы и дисплей) заказаны были из Китая… Только микросхему LM358 нужно купить не китайскую, или выпаять с какой-нибудь платы… Только тогда амперметр без нагрузки будет показывать нулевые значения. Если без нагрузки дисплей показывается какие то цифры, то меняйте LM358…

Шунт я сделал самостоятельно из трех жил нихрома. Сопротивление шунта 0.017 Ом. Для точного измерения сопротивления использовался самодельный миллиомметр.
hd0802a что это за микросхема
Не буду долго тянуть, вот такая получилась плата
hd0802a что это за микросхема
Со стороны печатных проводников
hd0802a что это за микросхема
Везде где только можно я впаял 6 танталовых конденсаторов 10мкФ*16В, вместо рекомендуемого автором электролита 100мкФ. Думаю емкости вполне достаточно.
В сборе с дисплеем…
hd0802a что это за микросхема
Делаем первое включение:
hd0802a что это за микросхема
Вроде все нормально, но с прогревом LM358 вместо нулевых значений тока, появились некоторые значения отличные от нуля, а значит, с первого раза не повезло, нужно подбирать микросхему.
А пока откалибровал вольтметр. Показывает на удивление очень точно, точнее некоторых китайских щитовых вольтметров… Результаты смотрите на серии фотографий:
hd0802a что это за микросхема
Остальные фото под спойлером:

hd0802a что это за микросхема
hd0802a что это за микросхема
hd0802a что это за микросхема

Перебрал штук 15 микросхем LM358 купленных в разных магазинах, заказанных с Али… Стабильных нулевых показаний амперметра без нагрузки нет… Наконец нашел нужную микросхему на старой материнской плате. Впаял… Нулевые показания встали как «вкопанные»… Выдержал 30 минут, дрейфа нулевых показаний нет…
hd0802a что это за микросхема
Начинаем тестировать амперметр. К сожалению, под рукой был только блок питания с максимальным током 1.2А. Буду тестировать на нем.
Выставляем максимальный ток в цепи. И подстроечным резистором подгоняем показания под условно «образцовый» амперметр.
hd0802a что это за микросхема
Затем уменьшаем ток до 1А
hd0802a что это за микросхема
Пол ампера
hd0802a что это за микросхема
Выставляем ток в 100мА
hd0802a что это за микросхема
Отключаем нагрузку
hd0802a что это за микросхема

Предварительные выводы: вроде как получился неплохой приборчик… Окончательно будет понятно, когда буду измерять ток выше 3А. Если линейность во всем диапазоне измерения будет нормальная, то можно использовать данную самоделку в качестве ампервольтметра.
На этом всё… Всем мира и добра…

Источник

Жидкокристаллический символьный дисплей 0802 hd44780. Собираем ЛабБП часть 4

hd0802a что это за микросхема

Ого! Вот это некропост про некродисплей)

Да возможно это так и есть, но мне кажется, что для самодельного ампервольтметра этого вполне достаточно. Почему самодельный ампервольтметр? Ну во первых, захотелось сделать этот девайс самостоятельно, надеюсь это веская причина? 😉 Да, китайцы продают подобные устройства. Да цена их сопоставима или даже ниже. Но… Можно купить и готовый ЛабБП… Но это же не интересно и не «наш метод» ©

И так что же представляет собой этот дисплей? Данный дисплей работает на контроллере HD44780, и полностью совместим с более распространенными LCD1602, 2002 и 2004. Как видно из названия, имеет две строки по 8 символов.
Размеры платы всего 58х32 мм, тогда как у стандартного 1602 80х36 мм
hd0802a что это за микросхема
Размер области цифр — 28х12 мм
hd0802a что это за микросхема
Интерфейс, как и у всех HD44780, параллельный. 16 пинов идут в два ряда. Распиновка такая же как у 1602.
hd0802a что это за микросхема
Порадовало, что на плате сразу установлен ограничивающий резистор для подсветки дисплея, потому можно на пины 15 и 16 подавать напряжения 5В.
hd0802a что это за микросхема
Судя по информации из Интернета, с русскими буквами все ожидаемо. В дисплеях, приобретенных в Китае, их нет, а знакогенератор, увы, намертво прошит в микросхеме. Но для самодельного ампервольтметра русские буквы не нужны.

Ток потребления индикатора — 0.5мА без подсветки и 15мА с подсветкой.

Что ж, попытаемся собрать ампервольтметр. Сразу даю ссылку на сайт где описано, как собирать, есть список деталей, печатная плата и прошивка для микроконтроллера… Желающие повторить проект могут все скачать оттуда напрямую…
Приведу лишь схему
hd0802a что это за микросхема
Все детали (микросхемы и дисплей) заказаны были из Китая… Только микросхему LM358 нужно купить не китайскую, или выпаять с какой-нибудь платы… Только тогда амперметр без нагрузки будет показывать нулевые значения. Если без нагрузки дисплей показывается какие то цифры, то меняйте LM358…

Шунт я сделал самостоятельно из трех жил нихрома. Сопротивление шунта 0.017 Ом. Для точного измерения сопротивления использовался самодельный миллиомметр.
hd0802a что это за микросхема
Не буду долго тянуть, вот такая получилась плата
hd0802a что это за микросхема
Со стороны печатных проводников
hd0802a что это за микросхема
Везде где только можно я впаял 6 танталовых конденсаторов 10мкФ*16В, вместо рекомендуемого автором электролита 100мкФ. Думаю емкости вполне достаточно.
В сборе с дисплеем…
hd0802a что это за микросхема
Делаем первое включение:
hd0802a что это за микросхема
Вроде все нормально, но с прогревом LM358 вместо нулевых значений тока, появились некоторые значения отличные от нуля, а значит, с первого раза не повезло, нужно подбирать микросхему.
А пока откалибровал вольтметр. Показывает на удивление очень точно, точнее некоторых китайских щитовых вольтметров… Результаты смотрите на серии фотографий:
hd0802a что это за микросхема
Остальные фото под спойлером:

hd0802a что это за микросхема
hd0802a что это за микросхема
hd0802a что это за микросхема

Перебрал штук 15 микросхем LM358 купленных в разных магазинах, заказанных с Али… Стабильных нулевых показаний амперметра без нагрузки нет… Наконец нашел нужную микросхему на старой материнской плате. Впаял… Нулевые показания встали как «вкопанные»… Выдержал 30 минут, дрейфа нулевых показаний нет…
hd0802a что это за микросхема
Начинаем тестировать амперметр. К сожалению, под рукой был только блок питания с максимальным током 1.2А. Буду тестировать на нем.
Выставляем максимальный ток в цепи. И подстроечным резистором подгоняем показания под условно «образцовый» амперметр.
hd0802a что это за микросхема
Затем уменьшаем ток до 1А
hd0802a что это за микросхема
Пол ампера
hd0802a что это за микросхема
Выставляем ток в 100мА
hd0802a что это за микросхема
Отключаем нагрузку
hd0802a что это за микросхема

Предварительные выводы: вроде как получился неплохой приборчик… Окончательно будет понятно, когда буду измерять ток выше 3А. Если линейность во всем диапазоне измерения будет нормальная, то можно использовать данную самоделку в качестве ампервольтметра.
На этом всё… Всем мира и добра…

Источник

Вытаскиваем ПО из запароленного микроконтроллера Renesas M16C

hd0802a что это за микросхема

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

Подопытным оказался M306N5FCTFP. Это микроконтроллер группы M16C/6N5. Ядро M16C/60 разработано Mitsubishi, а т.к. преемником этой компании по части МК с 2003 года является Renesas, то сейчас эти микроконтроллеры известны именно под этим брендом.

Немного о самом микроконтроллере

Камешек представляет собой 16-разрядный микроконтроллер в 100-выводном QFP корпусе. Ядро имеет 1 МБайт адресного пространства, тактовая частота 20МГц для автомобильного исполнения. Набор периферии так же весьма обширный: два 16-разрядных таймера и возможность генерации 3-фазного ШИМ для управления моторами, всякие UART, SPI, I2C естественно, 2 канала DMA, имеется встроенный CAN2.0B контроллер, а также PLL. На мой взгляд очень неплохо для старичка. Вот обзорная схемка из документации:

hd0802a что это за микросхема

Так как моя задача выдрать ПО, то так же весьма интересует память. Данный МК выпускался в двух вариантах: масочном и Flash. Ко мне попал, как выше уже упоминалось, M306N5FCTFP. Про него в описании сказано следующее:

Как вытащить из устройства то, что разработчики втащили

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

hd0802a что это за микросхема

Как видно из картинки выше, память разбита на 2 части: пользовательская область, и область загрузчика. Во второй как раз с завода залит загрузчик по умолчанию, который умеет писать, читать, стирать пользовательскую память и общается через асинхронный, синхронный, либо CAN-интерфейс. Указано, что он может быть переписан на свой, а может быть и не переписан. В конце концов это легко проверяется попыткой постучаться к стандартному загрузчику хотя-бы через UART… Забегая вперед: производитель отопителя не стал заморачиваться своим загрузчиком, поэтом копать дальше можно в этом направлении. Сразу оговорюсь, что есть еще способ параллельного программирования, но т.к. программатора для этого у меня не было, я не рассматривал этот вариант.

Вход в режим работы загрузчика обеспечивается определенной комбинацией на входах CNVSS, P5_0, P5_5 во время аппаратного сброса. Дальше либо написать свою утилиту для копирования содержимого памяти, либо использовать готовую. Renesas предоставляет свою утилиту, которая называется «M16C Flash Starter», но функция чтения у нее урезана. Она не сохраняет прочитанное на диск, а сравнивает его с файлом с диска. Т.е. по сути это не чтение, а верификация. Однако есть немецкая свободная утилитка с названием M16C-Flasher, которая вычитывать прошивку умеет. В общем начальный инструментарий подобрался.

О защите от считывания

hd0802a что это за микросхема

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

Функция проверки идентификатора

Используется в последовательном и CAN режимах обмена. Идентификатор, переданный программатором, сравнивается с идентификатором, записанным во flash памяти. Если идентификаторы не совпадают, команды, отправляемые программатором, не принимаются. Однако, если 4 байта вектора сброса равны FFFFFFFFh, идентификаторы не сравниваются, позволяя всем командам выполняться. Идентификатор — это 7 байт, сохраненных последовательно, начиная с первого байта, по адресам 0FFFDFh, 0FFFE3h, 0FFFEBh, 0FFFEFh, 0FFFF3h, 0FFFF7h, и 0FFFFBh.

Таким образом, чтобы получить доступ к программе, нужно знать заветные 7 байт. Опять же, забегая вперед, я подключился к МК, используя тот же «M16C Flash Starter» и убедился, что комбинации из нулей и FF не проходят и этот вопрос придется как то решать. Здесь сразу же всплыла мысль с атакой по сторонним каналам. Уже начал прикидывать в голове платку, позволяющую измерять ток в цепи питания, но решил, что интернет большой и большинство велосипедов уже изобретено. Вбив несколько поисковых запросов, довольно быстро нашел на hackaday.io проект Serge ‘q3k’ Bazanski, с названием «Reverse engineering Toshiba R100 BIOS». И в рамках этого проекта автор решал по сути точно такую же задачу: добыча встроенного ПО из МК M306K9FCLR. Более того — на тот момент задача им была уже успешно решена. С одной стороны я немного расстроился — интересная загадка разгадана не мной. С другой — задача превратилась из поиска уязвимости, в ее эксплуатацию, что обещало гораздо более скорое решение.

В двух словах, q3k точно по такой же логике начал изучение с анализа потребляемого тока, в этом плане он был в гораздо более выгодных условиях, т.к. у него был ChipWhisperer, этой штукой я до сих пор не обзавелся. Но т.к. его первый зонд для снятия тока потребления оказался неподходящим и вычленить из шумов что-то полезное у него не получилось, он решил попробовать простенькую атаку на время отклика. Дело в том, что загрузчик во время выполнения команды дергает вывод BUSY, чтобы проинформировать хост о том, занят он, или готов выполнять следующую команду. Вот, по предположению q3k, замер времени от передачи последнего бита идентификатора до снятия флага занятости мог послужить источником информации при переборе. При проверке этого предположения перебором первого байта ключа действительно было обнаружено отклонение по времени только в одном случае — когда первый байт был равен FFh. Для удобства измерения времени автор даже замедлил МК, отключив кварцевый резонатор и подав на тактовый вход меандр 666кГц, для упрощения процедуры измерений. После чего идентификатор был успешно подобран и ПО было извлечено.

Первый блин — граблями

Ха! Подумал я… Сейчас я быстренько наклепаю программку к имевшейся у меня STM32VLDiscovery c STM32F100 на борту, которая будет отправлять код и измерять время отклика, а в терминал выплевывать результаты измерений. Т.к. макетная плата с целевым контроллером до этого подключалась к ПК через переходник USB-UART, то, дабы ничего не менять на макетке, работать будем в асинхронном режиме.

hd0802a что это за микросхема

Когда при старте загрузчика вход CLK1 притянут к земле, он понимает, что от него хотят асинхронного общения. Собственно потому я его и использовал — подтяжка была уже припаяна и я просто соединил проводами две платы: Discovery и макетку с целевым M306.

Заметка по согласованию уровней:

Т.к. M16 имеет TTL-уровни на выводах, а STM32 — LVTTL (упрощенно, в даташите подробнее), то необходимо согласование уровней. Т.к. это не устройство, которое, как известная батарейка, должно работать, работать и работать, а по сути подключается разок на столе, то с трансляторами уровней я не заморачивался: выходные уровни от STM32 пятивольтовый МК переварил, в смысле 3 вольта как «1» воспринимает, выходы от М16 подаем на 5V tolerant входы STM32 дабы ему не поплохело, а ногу, которая дергает RESET M16 не забываем перевести в режим выхода с открытым стоком. Я вот забыл, и это еще +2ч в копилку упущенного времени.
Этого минимума достаточно, чтобы железки друг друга поняли.

Логика атакующего ПО следующая:

В итоге, для всех значений результаты были идентичны. Полностью идентичны. Тактовая частота таймера у меня была 24Мгц, соответственно разрешение по времени — 41,6 нс. Ну ок, попробовал замедлить целевой МК. Ничего не поменялось. Здесь в голове родился вопрос: что я делаю не так, как это делал q3k? После сравнения разница нашлась: он использует синхронный интерфейс обмена (SPI), а я асинхронный (UART). И где-то вот здесь я обратил внимание на тот момент, который упустил вначале. Даже на схемах подключения для синхронного и асинхронного режимов загрузчика вывод готовности назван по-разному:

hd0802a что это за микросхема

В синхронном это «BUSY», в асинхронном это «Monitor». Смотрим в таблицу «Функции выводов в режиме Standart Serial I/O»:

hd0802a что это за микросхема
«Семён Семёныч…»

Упущенная вначале мелочь завела не туда. Собственно, если в синхронном режиме это именно флаг занятости загрузчика, то в асинхронном (тот, который serial I/O mode 2) — просто «мигалка» для индикации работы. Возможно вообще аппаратный сигнал готовности приемопередатчика, оттого и удивительная точность его поднятия.

В общем перепаиваем резистор на выводе SCLK с земли на VCC, припаиваем туда провод, цепляем все это к SPI и начинаем сначала…

Успех!

hd0802a что это за микросхема

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

Этого оказалось более чем достаточно для успешной идентификации. Вот так выглядит перебор одного байта:

hd0802a что это за микросхема

По оси абсцисс у нас количество дискрет счетчика, по оси ординат, соответственно, передаваемое значение ключа. Отношение сигнал/шум такое, что даже никаких фильтров не требуется, прямо как в школе на уроке информатики: находим максимум в массиве и переходим в подбору следующего байта. Первые 6 байт подбираются легко и быстро, чуть сложнее с последним: там просто наглый перебор не проходит, нужен сброс «жертвы» перед каждой попыткой. В итоге на каждую попытку уходит что-то около 400 мс, и перебор идет в худшем случае в районе полутора минут. Но это в худшем. После каждой попытки запрашиваем статус и, как только угадали, останавливаемся. Я вначале вообще просто быстренько ручками перебрал идентификатор, вставляя в excel вывод консоли и строя график, тем более, что это была разовая задача, но уже для статьи решил дописать автоматический перебор, ради красивой консольки…

hd0802a что это за микросхема

Конечно, если бы разработчик затер загрузчик (заменил своим), так просто выкрутиться не получилось бы, но в автомобильной электронике частенько МК вообще не закрыты. В частности в блоке управления с другого отопителя, в котором был установлен V850 того же Renesas все решилось подпайкой пары проводов и копированием прошивки штатной утилитой. Это в мире ЭБУ двигателем целые криптовойны. Видимо не нравится производителям явление чип-тюнинга и других видов вмешательства… Хотя это как гонка брони и снаряда — железки круче, дороже, но победителя нет…

Источник

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

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