mm32l073 что за чип

Обзор автомобильного OBD2-сканера Kuulaa ELM32 (KL-DW006): он работает, и меня это расстроило

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

Но давайте по порядку.

На очередной из распродаж попался мне на глаза купон на автомобильный беспроводной сканер KUULAA ELM32. Цена 8 баксов. Ну решил купить.

Характеристики

Протоколы поддержки
Совместимое программное обеспечение
Функции

(специально привел на английском, ибо на русском там гуглоперевод и он ужасен)

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

Комплектация нехитрая. Сам сканер да инструкция на английском:

Сканер сделан из плотного прозрачного пластика. Имеет небольшой размер, и вполне приличное по виду качество изготовления:

И собственно больше и нечего о его виде написать. Поэтому втыкаю его в OBD разъём своего автомобиля. В конкретно моём случае разъём находится под рулевой колонкой, утопленный за обшивку (Mazda MPV)

Теперь надо поставить на телефон нужное приложение. Многие советуют приложение под названием Torque. Оно имеет две версии, полную платную и урезанную Lite.

Но у программы много плохих отзывов, поэтому я решил попробовать другую программу. Infocar

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

Теперь можно проверять машину. Основной интерфейс программы выглядит вот так:

Через программу с помощью сканера можно как считывать ошибки, так и наблюдать за параметрами автомобиля в реальном времени. Я начал с ошибок:

И вот тут-то меня и ждало разочарование. Я ездил, особо не напрягался. Но оказывается у меня машина имеет ошибки и неисправности:

Правда основная проблема — это лямбда зонд и пара датчиков. Но также программа показала и некоторые ошибки АКПП. Буду выяснять. Очень удобно что прям сразу из программы можно узнать, что означает код ошибки. Нажав «Поиск дополнительной информации» нас сразу перекидывает в браузер, в поисковик, с уже нужным запросом: кодом ошибки и маркой машины.

А вот наблюдение за параметрами автомобиля в реальном времени можно уже настроить под себя. В программе есть несколько вариантов:

Но как по мне, это уже не важно. Главное, что за 8 баксов, по сути цену одной поездки на сервис для сканирования, у меня на руках есть личный автосканер. Вот этому я рад. Могу проверять машину хоть по два раза в день и, например, скидывать ошибки. Правда скидывание ошибок — это не очень хорошо, так как нужно не прятать эти ошибки, а убирать причины их возникновения. Этим, наверное, и займусь в ближайшее время. А что именно искать и куда копать, я понял благодаря сканеру. А это означает что он работает и реально показывает данные автомобиля. Ну и соответственно я могу рекомендовать его к покупке.

Источник

Mm32l073 что за чип

Прежде чем задать вопрос, вы можете самостоятельно попытаться найти свою тему на форуме через ПОИСК по ключевым словам либо посетив соответствующий подфорум раздела Автомобильные устройства.

В: Как найти свою тему на форуме? Где найти прошивку? Что у меня за аппарат?
Для автомагнитол Android смотрим СЮДА
Для автомагнитол на ОС WINCE и других платформах смотрим СЮДА

В: Как мне запустить автомагнитолу на столе?
О: Красный провод магнитолы ACC скрутить с желтым толстым проводом B+ и на плюс блока питания, черный толстый провод магнитолы GND на минус блока питания.

В: Я разбил тач. Помогите найти замену!
О: Обратитесь в эту тему.

В: Помогите найти распиновку на мою штатную магнитолу!
О: Распиновка на различные авто

TPMS (датчики давления шин): >>>

Видеокамеры для автомобилей: >>>

В теме нет куратора. По вопросам наполнения шапки обращайтесь к модераторам раздела через кнопку «Жалоба» под сообщениями, на которые необходимо добавить ссылки.

В качестве пояснения принципов работы ГУ с информацией Кан-шины авто. 😉

ГУ не работает с CAN-шиной напрямую!

Принцип обмена такой: Кан-шина авто КанБас-декодер процессор MCU процессор Андроид

Есть конечно альтернативный вариант для самодельщиков: сделать свой КанБас-декодер и подключить его на USB-порт например. Тогда можно, по идее, написать свою программу на Андроид для обмена с Кан-шиной авто. 😉

Машина NISSAN LAFESTA 4 WD 2013 г.с правым рулем сделана на базе MAZDA 5(с левым рулём ).Полный аналог MAZDA только бампера разные.А везде стоит штамп MAZDA.

Так значит на Can bus адаптер завести сигналы от разьёма OBD?

Так получаеться что на каждое устройство нужен отдельный блок «BCM»?

Источник

80 ℃
Основной чип: mm32l073
Протоколы поддержки:
SAE J1850 PWM (41.6 Kbaud)
SAE J1850 VPD (10.4 Kbaud)
ISO 9141-2(5 baud init,10.4 Kbaud)
ISO 14230-4 KWP (5 baud init,10.4 Kbaud)
ISO 14230-4 KWP (fast init,10.4 Kbaud)
ISO 15765-4 CAN (11bit ID,500 Kbaud)
ISO 15765-4 CAN (29bit ID,500 Kbaud)
ISO 15765-4 CAN (11bit ID,250 Kbaud)
ISO 15765-4 CAN (29bit ID,250 Kbaud)
Совместимое программное обеспечение:
Windows: ScanMaster-ELM, ScanTool.net, PCMSCAN и т. д.
Android: Torque, DashCommand, OBD Car Doctor, Auto Doctor, Mini OBDII, EOBD и т. д.

Купон работает:

Ага, урезанная версия похоже. Но собственно, это в основном для ВАЗов критично.
Однако, если хочется чтобы работал везде, надо типа такого, на двух платах

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

Сейчас есть гораздо более функциональные модели

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

А вот когда мы начинаем сравнивать чисто микроконтроллер, то PIC18F25K80 это старый 8 битный котроллер. В современных МК и памяти больше, с частоты выше, и интерфейсов больше и всякие приятные штуки вроде DMA и т. д. Так что привести пример «чип который может больше чем PIC18F25K80» у вот вообще не проблема. Полно таких. А некоторые при большей производительности даже и дешевле будут.

А ты точно понимаешь как МК работают?

Каким образом более высокая частота помешает работать?

шта?! а 76 бензин не горит в моторах которые на 92 рассчитаны, да?

потому что обычная логика говорит что медленный процессор не может связаться с быстрой шиной. но не наоборот! быстрый процессор МОЖЕТ обрабатывать медленные сигналы.

Читайте также:  epstein barr virus что это у женщин

логика говорит что медленный процессор

Как ты думаешь, что изображено на эток картинке?

Я то как раз таки понимаю что пишу. И адекватные люди уже дали нормальные люди уже дали нормальный ответ. А вот ты какие то бредни пишешь, явно не понимая что именно из себя представляет МК.

И да. Забавно читать про «должны быть на правильном чипе» когда причина любви народа к определённой модели МК ни как не связанна с техническими характеристиками этого МК. Он ни чем не лучше аналогов. А по некоторым параметрам даже хуже.

Он ни чем не лучше аналогов. А по некоторым параметрам даже хуже.

Ещё раз. Приведи пример сканера с лучшими характеристиками чем на PIC18F25K80.

Приведи хоть чип, хоть готовое устройство

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

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

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

Что ты подразумеваешь под «работать нормально»?

Но если тебе нужно какое то абстрактное название чипа, то разрабатывая такое устройство я бы взял STM32F103C8T6. Что в нём замечательного? Да вообщем то ничего. Обычный проходной МК. Но если сравнивать с PIC18F25K80, то STM32F103C8T6 это уже 32 битный проц, с большей частотой, довольно функциональными таймерами (пригодятся при работе с SAE-J1850 PWM), более гибкая система прерываний и другие плюшки.

Но если сравнивать с PIC18F25K80, то STM32F103C8T6 это уже 32 битный проц

Микроконтроллер это именно универсальный проц. От компьютерного процессора он отличается тем, что переферия, оперативная память и память программы находится на одном чипе. Всё.

Да они конечно затачиваются под разные задачи. И всё это гиганское количество микроконтроллеров появилось из за того, что в зависимости от задач людей интересует разлисная переферия, разное потребление и естественно разная цена.

STM32F103C8T6 имеет всю достаточную для работы с ODBII переверию. Имеет достаточную для этого производительность.

С одной стороный да, бывают очень узкоспециализированные МК, которые заточены под вполне конкретное применение. Но PIC18F25K80 не относится к их числу я использовал его собрата в устройстве не имеющего вообще никакого отношения к автомобилям. Да чёрт побери. Этот МК даже не заявлен как «Automotive qualified» что собственно намекает, что это не какой то супер узкоспециализированный автомобильный контроллер.

STM32F103C8T6 имеет всю достаточную для работы с ODBII

Естественно STM32F103C8T6 не умеет в протоколы. Но скажу по секрету, PIC18F25K80 тоже не умеет в протоколы. Не ну серьёзно. Предче чем лезть со своим экспертными мнением, ты бы хоть даташит почитал бы. Что он умеет, а что нет.

Чтобы декодировать протоколы нужно не только уметь достаточную для этого переферию, но и иметь соответствующее ПО. И повторюсь. Адекватные люди уже ответили, что причина любви к PIC18F25K80 именно в ПО. Есть написанная под этот МК нормальная прошивка, поэтому он всем и нравится. Под другие МК готовой прошивки нет, а самостоятельно китайцы хорошую прошивку сделать не способны. Вот нормальная причина. А не твои бредни про «чип с большей частотой не способен работать с медленными протоколами».

Адекватные люди уже ответили, что причина любви к PIC18F25K80 именно в ПО.

ты бы хоть даташит почитал бы

А до тебя никак не дойдет что нормальный сканер должен быть на PIC18F25K80

Обоснуй, почему не может существовать сканер на другом чипе.

Обоснуй, почему не может существовать сканер на другом чипе.

Ну раз читал, то укажи на тот момент из даташита который принципиально отилчает PIC18F25K80 от любого другого МК.

Ё… Элементарно, прошивка для PIC18F25K80 корректно работает только с ним. Да ещё и обвязка имеет значение.

А теперь ещё раз мотаемт в начало диалога. Я спрашивал про то, что конкретно уникального в этом МК. И правильный ответ «в МК ничего уникального, дело в прошивке». И да, возможно ты не в курсе, но прошивку можно как бы написать свою. То есть если я гипотетически завтра решу разработать свой диагноститческий модуль, то я могу не заморачиваться с поиском древнего пика, а взять что-то более новое и современное.

Насколько принципиально? Беларус и Ламборджини имеют по четыре колеса и одному двигателю, принципиально похожи, вот только Ламборджини с плугом никак не едет. Детали имеют значения, также и с МК.

Хм… Что то мне подсказывает, что Lamborghini Nitro тоже неплохо с плугом ездит:

Хотя ладно это я уже шуткую. Предполагаю что ты имел в виду спорткар. Но в случае со спорткаром я могу назвать технические характеристики которые принципиально отличают спорткар от трактора. Я уже несколько дней пытаюсь добиться от тебя нормального ответа какая техническая характеристика МК принципиально отличает PIC18F25K80 от всех остальных. Пока же вижу только слепую веру в «МК должен быть такой и только такой и ни какой другой» без указания на конкретные технические характеристики.

И повторю свой вопрос. У тебя есть опыт разработки микропроцессорных устройств? Ты вообще понимаешь что такое микропроцессор? Какие у них есть технические характеристики и как вообще уметь читать датащиты на них? Потому что у меня пока складывается впечатление, что ты просто пользователь, который имеет крайне поверхностные представления о том что это такое и как с ними вообще работать. А просто опытным путём определил «вот это работает, а вот это не работает» не разбираясь в причинах почему так происходит.

Источник

Оригинальный Автомобильный диагностический сканер Obd Obd2 инструмент для MM32L073

Special Price от 667,06 руб.*

Доступность: На складе

Для получения более полной информации о стоимости и сроках доставки Оригинальный Автомобильный диагностический сканер Obd Obd2 инструмент для MM32L073 нажмите «Подробнее».


4. Особенности продукта:
1. Малый размер, высокая интеграция чипов, собственный независимый внешний вид патента, патент на полезную модель и авторское право на программное обеспечение. Прошел сертификацию CE, FCC, RoHS.

Читайте также:  какой компьютер лучше планшетный компьютер

2. Программное обеспечение может выполнять следующие операции: прочитайте коды диагностики ошибок-общие и конкретные производители, и Отобразите их значения (база данных имеет более 3000 общих определения кода) очистите коды ошибок и выключите светодиодный светильник MIL («проверьте двигатель») Отображение данных датчика тока, в том числе: Двигатель об/мин Расчетное значение нагрузки температура охлаждающей жидкости состояние топливной системы скорость транспортного средства кратковременное топливное состояние долгосрочное топливное состояние впускной коллектор давление впрыска топлива предоплата времени Впускной температуры расход воздуха Абсолютное Положение Дроссельной заслонки клапан связан с краткосрочным состоянием топлива. Обнаружение напряжения кислорода состояние топливной системы контроль давления топлива контроль расхода топлива есть много других данных

Будущее характеристики программного обеспечения:
Отображение диаграммы данных и замерзающая рамка данных непрерывные и непрерывные результаты обнаружения кислорода

Название продукта: OBDII
Номер модели товара: V015-1
Аппаратная версия: V1.1
1. Область применения: эта спецификация относится к V015-1 Bluetooth OBDII кодовой карточке чтения, произведенной нашей компанией.
2. В спецификации товара указаны технические требования, методы тестирования, маркировка, упаковка, транспортировка и хранение. Эта спецификация применима для настройки дизайна и проверки отгрузки. Он используется в качестве основы для проверки качества во время производственного осмотра, таможенного контроля и контроля качества.

3. Параметры продукта:
Способ связи: Bluetooth 4,0
Основной чип управления: MM32L073
Программная платформа: Поддержка Android /Windows/IOS
Рабочее напряжение: 12 В
Рабочий ток: 32mA
Рабочая температура: 40 ℃

80 ℃
Рабочая влажность: менее 60%
Размер изделия: 57 мм * 46,2 мм * 24,2 мм

Будущее характеристики программного обеспечения:
Отображение диаграммы данных и замерзающая рамка данных непрерывные и непрерывные результаты обнаружения кислорода

5. Поддержка протокола:
Протоколы, поддерживаемые OBDII:
1. SAE J1850 PWM (41,6 кбод)
2. SAE J1850 VPW (10,4 кбод)
3. ISO9141-2(5 бод инициализации, 10,4 кбод)
4. ISO14230-4 KWP (5 бод инициализации, 10,4 кбод)
5. ISO14230-4 KWP (быстрая инициализация, 10,4 кбод)
6. ISO15765-4 CAN (11 бит ID, 500 кбод)
7. ISO15765-4 CAN (29bit ID, 500 кбод)
8. ISO15765-4 CAN (11 бит ID, 250 кбод)
9. ISO15765-4 CAN (29 бит ID, 250 кбод)

6. Программная платформа:
1. Совместимая версия окна программного обеспечения: ScanMaster-ELM, ScanTool.net, PCMSCAN и т. Д.; Версия Android: Torque, DashCommand, OBD Car Doctor, Auto Doctor, Mini OBDII, EOBD и т. д.; Версия Symbian: OBDScope.
2. Подходит для платформы
Платформа поддержки программного обеспечения: Windows XP, Windows 7/8/10, Android, Symbian и другие системы.

Упаковочный лист:
1 шт. * диагностический инструмент OBD

Источник

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

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

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

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

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

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

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

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

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

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

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

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

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

Используется в последовательном и 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. Более того — на тот момент задача им была уже успешно решена. С одной стороны я немного расстроился — интересная загадка разгадана не мной. С другой — задача превратилась из поиска уязвимости, в ее эксплуатацию, что обещало гораздо более скорое решение.

Читайте также:  fridge на холодильнике что означает

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

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

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

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

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

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

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

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

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


«Семён Семёныч…»

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

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

Успех!

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

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

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

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

Источник

Сказочный портал