Elm327 для китайских авто

Программы диагностики авто для сканеров ELM327, K line 409.1 адаптер, Autocom Delphi

Elm327 для китайских авто

Сделал подборку популярного софта по диагностике авто для таких сканеров как ELM327 USB и блютуз, K line 409.1 адаптер, OP COM, Autocom — Delphi и другим.

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

Elm327 для китайских авто

Elm327 для китайских авто

Программы для Android OS

Elm327 для китайских авто

Elm327 для китайских авто

Для авто отличающихся от стандартного протокола (чтобы ELM327 работал с вашим авто в программе Torque Pro), нужно прописывать строку инициализации и прописывать внешние пиды.
———————————————
Расширения для Torque — PID файлы для разных марок: (для авто, у которых стандартно в программе отображаются значения не корректные). Чтобы его добавить нужно:
1. Добавить набор пидов Torque Pro
2. Прописать строку инициализации. Список вариантов строки инициализации для разных автомобилей

Рекомендации для тех, кто решил купить ELM327:
Все китайские версии адаптера 2.1 никакого отношения к версии 2.1 оригинального не имеют.
Покупать версию 2.1 смыла нет никакого, так как либо цифры 1.5 поменяны на 2.1 (в лучшем случае, редко попадаются). В худшем версия 2.1 полная липа, пустая болванка, работающая криво, а с большим количеством авто вовсе не работает.
Ответ на вопрос: берите версию только 1.5 с чипом PIC и не слишком дешёвую, где-то от 6$, всё что дешевле подделка.

Статья. У тебя Windows 7 или Windows 8 и не работает устройство диагностики по USB? (инструкция для K-line адаптеров и ELM327 USB) Прочти инструкцию, она уже многим помогла!
Статья. Как сбросить ошибки подушек безопасности Airbag SRS на Chery Amulet.

Источник

Применение диагностических адаптеров ELM327 на практике и список поддерживаемых автомобилей

Elm327 для китайских авто

Elm327 для китайских авто

Совместимость 87 комментариев 05 мая 2018 Просмотров: 98016 Рейтинг:

Время прочтения

Сложность материала:

ELM327 — микросхема, преобразующая ряд протоколов, используемых в диагностических шинах автомобилей, в протокол RS-232, разработанная компанией Elm Electronics.

Изначальная оригинальная реализация ELM327 выполнена на микроконтроллере PIC18F2480 фирмы Microchip Technology. Бывают проводные и беспроводные модели.

❗❗❗ Адаптер ELM327 совместим исключительно с автомобилями, которые оборудованы специальным диагностическим разъемом OBD2 16 пин. Такие авто впервые стали выпускаться в США в 1996 году, в остальных странах оснащение диагностическим разъемом произошло намного позднее. Автомобильные концерны на территории Японии комплексно оборудовали все типы производимых машин начиная с 2000 г. В европейских государствах машины, работающие на бензине были оборудованы в 2001 г., дизельные с 2004 г. Китайские авто оснастили в 2008, 2009 годах соответственно.

Отечественные автозаводы начали укомплектовывать 16 контактными разъемами модели выпускаемые с 2010 года. До 2010 на Российских моделях устанавливали 12 pin GM (VAG) разъем, для подключения к таким интерфейсам потребуются переходники.

Источник

Диагностика авто. Китайским bluetooth адаптером ELM 327.

Elm327 для китайских авто

Занесло меня как-то на тему о диагностике авто, на форумах TourerV обсуждение велось в основном по 100 и 110 маркам. Вот я и загорелся тоже приобрести такой девайс.
Выбор китайской продукции был достаточно велик. Но я остановился именно на bluetooth адаптере, т.к. хотелось цепляться к мозгам через телефон или планшетник. Удобнее чем таскать с собой ноут как никак.
В итоге был приобретен ELM 327 OBD II Bluetooth адаптер с версией прошивки 1,4 (слышал некоторые программы стабильно работают с прошивкой начиная от версии 1,3 и выше)

Elm327 для китайских авто

ELM327 — адаптер сканер для диагностики автомобилей.
Универсальный диагностический адаптер ELM327 USB предназначен для диагностики, считывания кодов ошибок, просмотра показаний датчиков автомобилей, отслеживания времени разгона и др. по стандарту OBDII на автомобилях выпущеных в период с 1996г. по 2012 год, включая все новейшие автомобили, оснащенные шиной CAN.
ELM327 USB подключается посредством USB и поддерживает все используемые на данный момент автомобильные протоколы, такие как:
• J1850PWM
• J1850 VPW
• ISO9141-2
• ISO14230-4(KWP2000)
• ISO15765-4/SAE J2480 (CAN)
Адаптер позволяет:
• Считывать диагностические коды ошибок, как стандартные
(DTC), так и специальные коды производителя (MTC), а также отображать их расшифровку(в базе данных приведены более 3000 кодов различных ошибок
• Производить очистку ошибок и гасить предупреждение «Check Engine» (MIL) на приборной панели. • Отображать текущие (LIVE DATA) значения различных датчиков, включая:
— Обороты двигателя
— Расчетная нагрузка
— Температура охлаждающей жидкости
— Работа топливной системы
— Скорость движения автомобиля
— Краткосрочный расход топлива
— Долгосрочный расход топлива
— Абсолютное давление воздуха
— Температура всасываемого воздуха
— Опережение зажигания
— Массовый расход воздуха
— Положение дроссельной заслонки
— Значения параметров лямбда-зондов
— Давление топлива
— и иные параметры, поддерживаемые ЭБУ автомобиля
Иные функции:
• Построение графиков и запись считываемых параметров
• Фиксация параметров (Freeze frame)
• Тестирование датчиков кислорода
• Чтение информации о автомобиле
• Считывание VIN-кода автомобиля (начиная 2004г. выпуска)
В список поддерживаемых машин входят практически все легковые автомобили, выпущенные после 1996 года для американского рынка, а также практически все бензиновые (с 2001 г.в.) и дизельные (с 2004 г.в.) автомобили, выпущенные для европейского рынка.

Тестировал его тремя различными прогами Torque, Hobdrive и TECU. Также есть еще пару популярных прог, допишу их названия если вспомню.

Elm327 для китайских авто

И для 110 марка нужно будет прописать такую вот строку инициализации (эта инфа взята все с той же темы на tourerV.ru) :

Elm327 для китайских авто

Elm327 для китайских авто

Elm327 для китайских авто

3) TECU (Тестер ECU) — прога под Windows. Имеет более широкий набор функций чем предыдущие телефонные аналоги. Живет тут, на сайте много инфы по этой проге и диагностике вобщем. Можно сохранять показания и графики в текстовом файле и экселе.

Elm327 для китайских авто

Вот данные по моей машине :

Дата: 05.01.2013 Время: 14:55:54

Марка: Toyota
Тип ECU: Powertrain
Автомобиль: Toyota EFI (Внутренний рынок)

Кадр параметров реального времени

Вобщем с этим адаптером и любой из этих программ вы сможете получить основную инфу о состоянии афто ( темп. жидкостей, расход топлива, воздуха, напряжение в сети, строить графики зависимости интересующих вас параметров друг от друга или от времени, замерять время разгона, читать и затирать ошибки ЭБУ, в том числе и Check Engine и проече). Никаких других изменений в мозгах с помощью этой аппаратуры и ПО у вас сделать скорее всего не выйдет.

Ошибок у меня слава Богу никаких не нашлось. Меня по большей части интересует раход, ну и так поиграться графики построить разные.
Если возникнуть вопросы обращайтесь :).

Источник

Диагностический адаптер ELM327 Mini (клон ELM327)

Elm327 для китайских авто

Elm327 для китайских авто

Когда-то в далеком 2013 году на aIiexpress, я приобрел китайский адаптер ELM327 Mini и уже в наши дни, не смотря на наличие адаптера HEX-USB+CAN для VCDS/ВАСЯ, решил полностью разобраться с его устройством и возможностями.

Bluetooth имя этого адаптера OBDII, MAC адрес 11:22:33:DD:EE:FF, пароль 1234.

Какие программы поддерживают этот адаптер? Из опробованных мной:
1. Car Scanner ELM OBD2 — мониторинг OBD2 параметров, изменение кодировок, адаптаций, параметрирование, чтение ошибок блоков и запуск тестов исполнительных механизмов.
2. Torque Pro — мониторинг OBD2 параметров
3. Carista — изменение кодировок и адаптаций блоков
4. VAG DPF мониторинг состояния сажевого фильтра — незаменимый инструмент для владельцев автомобилей VAG с дизельным двигателем
5. Deep OBD — диагностика автомобилей BMW и VAG (протоколы KPW2000, KWP1281 и TP2.0)
6. ForScan диагностика автомобилей Ford

Проблемы замеченные во время использования адаптера который мне достался
1. При прекращении приема/передачи данных между адаптером и подключенными к нему приложениями, соединение bluetooth зависало и приходилось отключать/включать bluetooth на смартфоне и соединяться повторно.
2. Считывание данных программами работало подозрительно медленно.

ВАЖНО! Многие недобросовестные производители китайских адаптеров ELM327 хитрят, прошивая чип адаптера одной из самых первых и сырых версий прошивки, которая за счет подмены номера в строке версии, сообщает, что она ELM 1.5, но на самом деле не является таковой. Соответственно такие адаптеры, поддерживают не все AT команды или отрабатывают их некорректно.

Проверка реально поддерживаемых AT команд
Лучшим и единственным заработавшим на моем Samsung A7 2017 на Android 8.0 приложением для этой цели, оказалось ELM327 Identifier by Daaren Fonloil.
Слева заводская китайская прошивка версии 2013 года, а справа прошивка с открытым исходным кодом Deep OBD ELM 1.5. Спасибо автору Ulrich Holeschak за предоставленный скриншот:

Elm327 для китайских авто

Обе прошивки выдают строку версии ELM327 v1.5, и как и положено, поддерживают наборы AT команд версии 1.4. Подробные отличия номеров версий, можно посмотреть в официальном руководстве.

Ищем причину зависания bluetooh после прекращения активности
Для этого я установил Serial Bluetooth Terminal для Android.
После соединения, с адаптером по bluetooth, я ввел в терминале команду ATPPS, выдающую конфигурацию хранящуюся в eeprom чипа. Оказалось, что информация частично теряется:
>ATPPS
00:FF F 01:FF F 02:FF F 03:32 F
04:01 F 05:FF F 06:F1 F 07:09 F
08:FF F 09:00 F 0A:0A F 0B:FF F
0C:68 F 0D:0D F 12:FF F 13:32 F
14:FF F 15:0A F 16:FF F 17:92 F
18:00 F 19:28 F 1F F
1C:FF F 1D:FF F 1E:FF F 1F:FF F
20:FF F 21:FF F 22:FF F 23:F00 F 27:FF F
28:FF F 29:FF F 2A:38 F 2B:02 F
2C:E0 F 2D:04 F 2E:80 F 2F:0A F

А неискаженный список должен выглядеть так:
00:FF F 01:FF F 02:FF F 03:32 F
04:01 F 05:FF F 06:F1 F 07:09 F
08:FF F 09:00 F 0A:0A F 0B:FF F
0C:68 F 0D:0D F 0E:9A F 0F:FF F
10:0D F 11:00 F 12:FF F 13:32 F
14:FF F 15:0A F 16:FF F 17:92 F
18:00 F 19:28 F 1A:FF F 1B:FF F
1C:FF F 1D:FF F 1E:FF F 1F:FF F
20:FF F 21:FF F 22:FF F 23:FF F
24:00 F 25:00 F 26:00 F 27:FF F
28:FF F 29:FF F 2A:38 F 2B:02 F
2C:E0 F 2D:04 F 2E:80 F 2F:0A F

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

Подключившись к ELM327 Mini с ноутбука через встроенный bluetooth адаптер, при помощи putty, в ответ на ввод ATPPS выдавался тот же искаженный список выше и также подвисал bluetooth после прекращения активности.

Разборка адаптера для исследования
Крышка адаптера удерживается 4-мя защелками изнутри. Чтоб к ним добраться, я снял наклейку с одной стороны и используя отвертку и подсветку фонариком, проковырял отверстия в местах где эти защелки находятся:

Elm327 для китайских авто

Оказалось достаточно поддеть только эти две защелки и крышку удалось стянуть:

Elm327 для китайских авто

Адаптер сделан в виде гамбургера, состоящего из двух двусторонних плат, соединенных между собой запаянными штырьками по 8 штук с двух сторон. К верхней плате припаян bluetooth модуль EC04.

Задействованные контакты OBD2 разъема:

Elm327 для китайских авто

Elm327 для китайских авто

По присутствию распаянных и даже подписанных контактов 2, 4, 5, 6, 7, 10, 14, 15, 16, видно, что на уровне железа, все протоколы поддерживаются:

Elm327 для китайских авто

Оригинальный чип ELM327, это ничто иное, как микроконтроллер PIC18F25K80:

Elm327 для китайских авто

В наши дни на китайские клоны ставят что угодно, но мне повезло, здесь оригинал Microchip PIC18F25K80 Enhanced Flash Microcontroller with ECAN™ XLP Technology, объем Flash для прошивки 32 Кбайт, память для обработки данных 3 Кбайт, EEPROM 1 Кбайт, встроенный контроллер CAN 2.0B.
Наличие буквы F в маркировке означает что микроконтроллер перепрограммируемый, а не с однократной записью.
Справа находится AMS117 3.3 преобразующий 5 в 3.3 вольт для питания bluetooth модуля. Слева кварц на 4МГц — мелочь, а приятно, так как он опционален даже на оригинальном адаптере.

Смотрим с другой стороны:

Elm327 для китайских авто

На верхней плате имеется три светодиода:

Elm327 для китайских авто

Красный индикатор питания (на схеме L5) загорается и постоянно горит при подключении адаптера к OBD2 разъему.
Зеленые светодиоды прием/передача (на схеме L2 и L4), подключены к контактам 27 (OBD Rx LED — диод слева) и 25 (RS232 Rx LED — диод справа) микроконтроллера PIC и мигают, когда он принимает данные от ЭБУ автомобиля и bluetooth адаптера.

Используя принципиальную схему оригинального адаптера ELM327 из официального руководства OBD to RS232 Interpreter

Elm327 для китайских авто

Примечательно! Разработчики китайского адаптера, соединили вывод TX PIC имеющий уровень 5 Вольт, выводом RX модуля bluetooth имеющим уровень 3 Вольт, через резистор 220 Ом, без понижения напряжения.

Контакты для программирования PIC
Были найдены на штырьках соединения верхней платы, слева от антенны bluetooth модуля:

Elm327 для китайских авто

Исследуем bluetooth модуль
Он построен на чипе СС2562F256 и EEPROM T24C128A объемом 16Кбайт.
Даташит на СС2562F256 найти не удалось. Буквы TI намекают на Texas Instruments, но на самом деле это неизвестный китайский клон.
Поиск в google, подсказал что это EC04-B, также известный как EDPA и задуман как удешевленная альтернатива модулю BC04 (BlueCore 4) компании CSR.
BC04 состоит из связки чип СSR BC417 + Flash объемом 1 Мбайт. и его часто устанавливают в bluetooth адаптеры HC04, HC05 и HC06, используемые с Arduino и в клонах адаптера VAS5054A.
Расположение выводов модуля EC04 по передаче данных и питанию (RX, TX, 3,3 вольт, GND), полностью совпадает с модулем BC04.

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

Elm327 для китайских авто

Elm327 для китайских авто

Не смотря на дешевизну, адаптер имеет джампер выбора уровней выходных сигналов и целых три красных светодиода (сверху справа в углу индикатор питания, справа от чипа TX и RX).
После получения адаптера, я первым делом, скачал и поставил официальные драйвера с сайта FTDI CDM v2.12.28 WHQL Certified.
Кстати кто не знал, эта версия драйверов больше не брикает фейковые китайские чипы FT232R как это было раньше.
Далее проверил чип в MProg:

Elm327 для китайских авто

Неизменяемый eeprom и серийник A50285BI подтвердили фейковость чипа. Несмотря на это, судя по качеству шлифовки индексной метки чипа, клон качественный.

Отпаиваем bluetooth модуль EC04 от платы ELM327 для проверки
Прошивка EC04, общается с PIC на скорости 38400 бит/c и эта настройка хранятся в EEPROM T24C128A находящемся на борту модуля EC04.
Подключившись к отпаянному EC04 TTL кабелем c джампером в положении 3V, установив в putty скорость 38400, и подав питание на модуль, я увидел в терминале строку с версией прошивки: BOLUTEK, SPP V1.1
ВАЖНО! Прошивка bluetooth модуля ожидает команды переданные одним пакетом, имеющие CR+LF символы как завершение строки.
putty, не смотря на наличие опции Terminal>Implicit LF in every CR, не умеет слать команды одним пакетом и поэтому использовать его для посылки команд через TTL кабель модулю bluetooth бесполезно.
На момент проверки я этого не знал и проверить реакцию bluetooth модуля на команды мне не удалось.

Далее я подключил TTL кабель к контактам TX/RX PIC вместо отпаянного EC04 и убедился, что искажения информации при вводе команды ATPPS, а также зависаний после некоторого времени не наблюдается.
Вердикт: в искажении информации и зависании bluetooth соединения виноват исключительно модуль bluetooth EC04.

Приводим в порядок уровни сигналов
Изучив замечательный документ ELM and Bluetooth я понял, что нужно организовать делитель напряжения с 5В на TX выводе PIC, до 3,3В на RX входе bluetooth модуля.
Используя SMD резисторы найденные на старой компьютерной материнской плате, я заменил резистор на выходе TX PIC c 220 Ом на 2,2 кОм, подпаяв к нему еще один на 4,7 кОм, второй вывод которого пустил на землю.

На что заменить EC04? Разбираемся с разновидностями bluetooth чипов СSR
Британская компания CSR (Cambridge Silicon Radio), до поглощения ее компанией Qualcomm в 2015 году, выпускала следующие чипы:
BC352239 (BC03) BlueCore 3-Multimedia External, bluetooth v1.2, проект pdw (paddywack) / elv (elvis)
BC358239 (BC03) BlueCore 3-Multimedia, bluetooth v1.2, проект kal (kalimba)
BC417143 (BC04) BlueCore 4-External стандарт Bluetooth v2.0+EDR, проект cyt (coyote)
Это очень интересные решения, и прошивки для них разделены на два типа native и vm
Для vm прошивки, пользователь может разработать свое приложение, которое работает в виртуальной машине.
Именно под этот режим и написана прошивка SPP_UART из проекта Deep OBD.
Прошивки native и vm, можно скомпилировать под доступный объем памяти flash чипа:
compact — содержит только стек и поэтому подходит для flash размером от 4 Мбит)
unified — содержит загрузчик и bluetooth стек, включающий в себя всё, начиная от Host Controller Interface (HCI), до Radio Frequency COMMunication (RFCOMM) — требует flash размером 8 Мбит.
Для проектов coyote (BC417), elvis (BC352) и kalimba (BC358) доступны прошивки native/vm unified.
Для проектов jumpingjack и paddywack (BC352) доступны только прошивки vm compact.

Все перечисленные выше прошивки, входят в дистрибутив интерактивной среды разработки приложений BlueLab 4.1 и после установки, находятся в папке \BlueLab41\firmware.

Когда существовал сайт www.csrsupport.com, там можно было скачивать обновленные версии прошивок для BlueLab 4.1. После покупки компании Qualcomm’ом, сайт потушили.

Если у кого-то есть прошивки c www.csrsupport.com/BluetoothFirmware не только под проект coyote 23263_cyt_8unified_fl_bt3.0_23i_0911261257_encr56_oem_prod.zip, но и под другие проекты, большая просьба поделиться.

Покупаем новый модуль bluetooth
Как и планировалось, опять же на aIiexpress, я приобрел bluetooth адаптер HC-05:

Elm327 для китайских авто

Elm327 для китайских авто

На фото видно, что модуль достался со сломанной ножкой EN, неприятно, но не смертельно. Присутствует кнопка для замыкания VCC на ножку 34 (PIO11/KEY). Ее нажимают и держат при подаче питания на адаптер, когда его необходимо запустить в режиме AT команд. В ответ на это, светодиод должен начать моргать медленно, с паузой в 2 секунды.
Приятным сюрпризом оказалось присутствие на обратной стороне платы точек ведущих на SPI контакты для считывания и программирования прошивки.
Как окажется позже после тестирования, чип bluetooth здесь перемаркирован. На самом деле это чип BC352239 (BC03). Настоящий BC417143 легко отличить по надписи csr над логотипом. В перемаркированном, она справа от логотипа.
BC352239 тоже отличный чип, но в отличие от BC417143 (BC04) поддерживающего bluetooth 2.0 EDR (скорость до 3 Мбит/c), это bluetooth 1.2 (скорость до 1 Мбит/с).
Flash Spansion AL008J70BF102 тоже. что-то перемаркированное. Реальный объем 6 Мбит, вместо 8 Мбит у оригинала.
Регулятор напряжения 85AD (Si9185), установлен для питания чипа напряжением 1.8В. Не смотря на то, что модуль толерантен к питанию от 2 до 6В, не следует забывать, что уровни RX/TX должны быть 3В.

Тест bluetooth модуля HC-05
Выставив на адаптере FT232RL джампер на 3,3В, я подсоединил его к HC-05 по схеме VCC-VCC, GND-GND, RX-TX, TX-RX и с помощью мини-USB кабеля подключил к голубому USB3.0 разъему ноутбука.
Адаптер сразу определился Windows 10 и после автоматической установки драйвера виртуального COM порта, красный светодиод на HC-05 начал быстро моргать индицируя работу в модуля в транспортном (прозрачном) режиме.
На ноутбуке я запустил putty открыл COM порт, к которому был присоединен FT232RL адаптер и соединился RS232 портом BC04 на скорости 9600 Кбит/c.
На смарфоне в bluetooth окружении я нашел и подсоединился к устройству HC-05, введя пароль 1234.
Далее запустил Serial Bluetooth Terminal и послал пробные строки. Они успешно отобразились в putty на ноутбуке. Ура, адаптер работает 🙂 Протестировав его некоторое время, я убедился, что он работает стабильно, соединение не рвется, не виснет и в отличии от старого модуля EC04, при выключении/включении bluetooth на смартфоне, соединение устанавливается быстро и без повторного ввода пароля.

Изучаем режим AT команд прошивки модуля BC04
Для входа в режим AT команд на адаптерах HC05 c bluetooth прошивками СSR, нужно выключить питание адаптера, нажать и удерживать кнопку подающую VCC на ножку 34 (PIO11/KEY) чипа, включить питание и дождаться пока светодиод на модуле не начнет медленно мигать с интервалом в 2 сек.
Для работы с адаптером в режиме AT команд, putty не подходит (не умеет слать команды одной строкой с CR+LF).
Идеально подходит HTerm.
Запускаем его, выбираем COM порт, выставляем скорость 38400 бит/с и нажимаем Connect.
Выставляем опции «Newline at» CR+LF, отключаем «Show newline characters» и устанавливаем «Send on enter» CR+LF
Команды вводятся только заглавными буквами.
AT выдает OK
AT+VERSION выдает VERSION:3.0-20170601
AT+UART выдает +UART:9600,0,0 имеет смысл сразу переключить на 38400 введя AT+UART=38400,0,0
AT+PSWD выдает +PIN:»1234″
AT+ORGL — сбрасывает настройки на заводские.
AT+NAME выдает +NAME:HC-05, но после сброса +NAME:H-C-2010-06-01
AT+ROLE выдает +ROLE:0
AT+ADDR выдает +ADDR:19:7:346
Полный список можно посмотреть здесь

Создание резервной копии прошивки BC04
Cкачиваем и устанавливаем bluesuite 2.6.11.1937
Скачиваем csr-spi-ftdi-0.5.3.zip
Из csr-spi-ftdi-0.5.3.zip, берем usbspi.dll находящийся в папке lib-win32 и заменяем им файлы в
c:\Program Files (x86)\QTIL\BlueSuite 2.6.11\usbspi.dll и c:\Program Files (x86)\QTIL\BlueSuite 2.6.11\x64\usbspi.dll

Качаем и запускаем Zadig 2.4, выбираем «List all devices» и заменяем FTDI драйвер на libusbK (v3.0.7.0).

Подпаиваемся к четырем точкам на обратной стороне платы HC-05 и подключаем их к FT232RL по схеме CS# (CSB) — DTR, MOSI — RI, MISO — DSR (RSD), CLK — RTS:

Elm327 для китайских авто

Питание берем с FT232RL, выставив джампер на 3V.

Под правами админа запускаем cmd и читаем ID bluetooth чипа:
c:\Program Files (x86)\QTIL\BlueSuite 2.6.11>e2cmd info
e2cmd, version 2.6.11.1937 Release
Copyright © 2007-2018 Qualcomm Technologies International, Ltd.
All Rights Reserved.
Qualcomm Technologies International, Ltd. Confidential and Proprietary.

13:26:32.128657: all:spi.c:558:spi_init: csr-spi-ftdi 0.5.3, git rev 80b2ad0
Chip ID — 0x07e2
Chip Name — BC3 Audio Flash (pdw)
Unable to calculate addressing mode of EEPROM
*** FTDI Statistics ********************************************************
csr-spi-ftdi version: 0.5.3 (git rev 80b2ad0)
Time open: 8.95 s
Time in xfer: 8.64 s (96.46% of open time)
Reads: 233 (46432 bytes, 199.28 bytes avg read size)
Writes: 332 (47108 bytes, 141.89 bytes avg write size)
Xfer data rate: 10.57 KB/s (93540 bytes in 8.64 s)
IOPS: 65.00 IO/s (565 IOs in 8.64 s)
FTDI chip: FT232R (3), buffer size: 384 bytes
FTDI stats: 955.00 xfers/s (0.00 short reads/s,
8255 xfers/1 short reads in 8.64 s,
14.00 xfers/IO, 363.00 bytes/xfer)
SPI max clock: 1000 kHz, min clock: 666 kHz, slowdowns: 1
****************************************************************************

Читаем версию чипа:
c:\Program Files (x86)\QTIL\BlueSuite 2.6.11> BlueFlashCmd.exe chipver
blueflashcmd, version 2.6.11.1937 Release
Copyright © 2002-2018 Qualcomm Technologies International, Ltd.
All Rights Reserved.
Qualcomm Technologies International, Ltd. Confidential and Proprietary.

17:03:17.089485: all:spi.c:558:spi_init: csr-spi-ftdi 0.5.3, git rev 80b2ad0
GBL_CHIP_VERSION = 0x07e2
Result:
*** FTDI Statistics ********************************************************
csr-spi-ftdi version: 0.5.3 (git rev 80b2ad0)
Time open: 0.03 s
Time in xfer: 0.00 s (23.53% of open time)
Reads: 4 (8 bytes, 2.00 bytes avg read size)
Writes: 2 (6 bytes, 3.00 bytes avg write size)
Xfer data rate: 1.71 KB/s (14 bytes in 0.00 s)
IOPS: 750.00 IO/s (6 IOs in 0.00 s)
FTDI chip: FT232R (3), buffer size: 384 bytes
FTDI stats: 1500.00 xfers/s (0.00 short reads/s,
12 xfers/0 short reads in 0.00 s,
2.00 xfers/IO, 40.00 bytes/xfer)
SPI max clock: 1000 kHz, min clock: 1000 kHz, slowdowns: 0
****************************************************************************
Success

Проверяем версию и размер flash чипа и прошивки:
c:\Program Files (x86)\QTIL\BlueSuite 2.6.11> BlueFlashCmd.exe identify
blueflashcmd, version 2.6.11.1937 Release
Copyright © 2002-2018 Qualcomm Technologies International, Ltd.
All Rights Reserved.
Qualcomm Technologies International, Ltd. Confidential and Proprietary.

17:04:24.714259: all:spi.c:558:spi_init: csr-spi-ftdi 0.5.3, git rev 80b2ad0
Resetting XAP
Identifying XAP
Flash identity: size = 96 sectors (6 Mbit), man_id = 0x0000, dev_id = 0x0000
Firmware ID (loader)=»elv_8unified_fl_bt2.1_23g_0903311011_native_encr56 2009-03-31″
Firmware ID (stack)=»pdw_6compact_fs_fl_bt2.1_23g_0903311011_encr56_nodfu 2009-03-31″
Result: Usable flash size: 96 sectors, 6 megabit.
*** FTDI Statistics ********************************************************
csr-spi-ftdi version: 0.5.3 (git rev 80b2ad0)
Time open: 14.39 s
Time in xfer: 13.93 s (96.79% of open time)
Reads: 408 (75518 bytes, 185.09 bytes avg read size)
Writes: 569 (75074 bytes, 131.94 bytes avg write size)
Xfer data rate: 10.55 KB/s (150592 bytes in 13.93 s)
IOPS: 70.00 IO/s (977 IOs in 13.93 s)
FTDI chip: FT232R (3), buffer size: 384 bytes
FTDI stats: 956.00 xfers/s (0.00 short reads/s,
13332 xfers/8 short reads in 13.93 s,
13.00 xfers/IO, 361.00 bytes/xfer)
SPI max clock: 1000 kHz, min clock: 666 kHz, slowdowns: 1
****************************************************************************
Success

Сравниваем версии Chip ID, Flash ID и прошивок под BlueCore 3 и 4 (BC03 и BC04):
Chip ID — 0x07e2, Chip Name — BC3 Audio Flash (pdw)
Flash identity: size = 96 sectors (6 Mbit), man_id = 0x0000, dev_id = 0x0000
Firmware ID (loader)=»elv_8unified_fl_bt2.1_23g_0903311011_native_encr56 2009-03-31″
Firmware ID (stack)=»pdw_6compact_fs_fl_bt2.1_23g_0903311011_encr56_nodfu 2009-03-31″

Chip ID — 0x4826, Chip Name — BC3 MM (kal)
Flash identity: size = 128 sectors (8 Mbit), man_id = 0x00c2, dev_id = 0x225b
Firmware ID (loader)=»bc3k_8unified_fl_bt2.1_23g_0903311011_native_encr56 2009-03-31″
Firmware ID (stack)=»bc3k_8unified_fl_bt2.1_23g_0903311011_native_encr56 2009-03-31″

Chip ID — 0x4543, Chip Name — BC4-EXT (cyt)
Flash identity: size = 128 sectors (8 Mbit), man_id = 0x00c2, dev_id = 0x225b
Firmware ID (loader)=»cyt_8unified_fl_bt3.0_23i_1002111152_native_encr56 2010-02-11″
Firmware ID (stack)=»cyt_8unified_fl_bt3.0_23i_1002111152_native_encr56 2010-02-11″

Делаем 3 раза подряд резервную копию прошивки:
c:\Program Files (x86)\QTIL\BlueSuite 2.6.11>BlueFlashCmd.exe dump bc352-fw-backup
blueflashcmd, version 2.6.11.1937 Release
Copyright © 2002-2018 Qualcomm Technologies International, Ltd.
All Rights Reserved.
Qualcomm Technologies International, Ltd. Confidential and Proprietary.

13:07:45.751942: all:spi.c:558:spi_init: csr-spi-ftdi 0.5.3, git rev 80b2ad0
Resetting XAP
Dumping flash contents
100%
«Dump» successful
Result: Dumping to csr-fw-backup.xpv complete.
*** FTDI Statistics ********************************************************
csr-spi-ftdi version: 0.5.3 (git rev 80b2ad0)
Time open: 89.53 s
Time in xfer: 83.18 s (92.90% of open time)
Reads: 2750 (866848 bytes, 315.22 bytes avg read size)
Writes: 3496 (80841 bytes, 23.12 bytes avg write size)
Xfer data rate: 11.13 KB/s (947689 bytes in 83.18 s)
IOPS: 75.00 IO/s (6246 IOs in 83.18 s)
FTDI chip: FT232R (3), buffer size: 384 bytes
FTDI stats: 1022.00 xfers/s (0.00 short reads/s,
85060 xfers/2 short reads in 83.18 s,
13.00 xfers/IO, 357.00 bytes/xfer)
SPI max clock: 1000 kHz, min clock: 666 kHz, slowdowns: 1
****************************************************************************
Success

Побайтно сравниваем дампы между собой:
fc /b bc352-fw-backup bc352-fw-backup2 >diff1.txt и fc /b bc352-fw-backup2 bc352-fw-backup3 >diff2.txt
Открываем diff1.txt и diff2.txt и убеждаемся что все копии совпали.

Сохраняем резервную копию настроек:
c:\Program Files (x86)\QTIL\BlueSuite 2.6.11>pscli.exe dump bc352.psr
pscli, version 2.6.11.1937 Release
Copyright © 2001-2018 Qualcomm Technologies International, Ltd.
All Rights Reserved.
Qualcomm Technologies International, Ltd. Confidential and Proprietary.
13:12:54.682969: all:spi.c:558:spi_init: csr-spi-ftdi 0.5.3, git rev 80b2ad0
pscli dump csr-pskeys.psr : concluded with Success
*** FTDI Statistics ********************************************************
csr-spi-ftdi version: 0.5.3 (git rev 80b2ad0)
Time open: 33.51 s
Time in xfer: 32.50 s (96.96% of open time)
Reads: 30220 (99036 bytes, 3.28 bytes avg read size)
Writes: 27204 (88063 bytes, 3.24 bytes avg write size)
Xfer data rate: 5.62 KB/s (187099 bytes in 32.50 s)
IOPS: 1766.00 IO/s (57424 IOs in 32.50 s)
FTDI chip: FT232R (3), buffer size: 384 bytes
FTDI stats: 1913.00 xfers/s (0.00 short reads/s,
62178 xfers/4 short reads in 32.50 s,
1.00 xfers/IO, 101.00 bytes/xfer)
SPI max clock: 1000 kHz, min clock: 1000 kHz, slowdowns: 0
****************************************************************************

Copyright © 2002-2008 Cambridge Silicon Radio Ltd.

Resetting XAP
Burning Image:
100%
Result: Finished OK, 68 sectors erased, 68 sectors flashed, 114.69 seconds
Running Code!
*** FTDI Statistics ********************************************************
csr-spi-ftdi version: 0.5.3 (git rev 80b2ad0)
Time open: 121.04 s
Time in xfer: 107.13 s (88.51% of open time)
Reads: 4483 (20258 bytes, 4.52 bytes avg read size)
Writes: 5707 (583190 bytes, 102.19 bytes avg write size)
Xfer data rate: 5.50 KB/s (603448 bytes in 107.13 s)
IOPS: 95.00 IO/s (10190 IOs in 107.13 s)
FTDI chip: FT232R (3), buffer size: 384 bytes
FTDI stats: 585.00 xfers/s (9.00 short reads/s,
62683 xfers/989 short reads in 107.13 s,
6.00 xfers/IO, 309.00 bytes/xfer)
SPI max clock: 100 kHz, min clock: 25 kHz, slowdowns: 34
****************************************************************************
Success
rm spp_uart_leds.led_

Проверяем версию новой прошивки:
c:\Program Files (x86)\QTIL\BlueSuite 2.6.11> BlueFlashCmd.exe identify
blueflashcmd, version 2.6.11.1937 Release
Copyright © 2002-2018 Qualcomm Technologies International, Ltd.
All Rights Reserved.
Qualcomm Technologies International, Ltd. Confidential and Proprietary.

16:25:43.371128: all:spi.c:558:spi_init: csr-spi-ftdi 0.5.3, git rev 80b2ad0
Resetting XAP
Identifying XAP
Flash identity: size = 96 sectors (6 Mbit), man_id = 0x0000, dev_id = 0x0000
Firmware ID (loader)=»elv_8unified_fl_bt2.1_23g_0903311011_native_encr56 2009-03-31″
Firmware ID (stack)=»pdw_6compact_fs_fl_bt2.1_23g_0901221700_encr56_nodfu 2009-01-22″
Result: Usable flash size: 96 sectors, 6 megabit.
*** FTDI Statistics ********************************************************
csr-spi-ftdi version: 0.5.3 (git rev 80b2ad0)
Time open: 4.58 s
Time in xfer: 4.15 s (90.61% of open time)
Reads: 362 (20554 bytes, 56.78 bytes avg read size)
Writes: 520 (20058 bytes, 38.57 bytes avg write size)
Xfer data rate: 9.54 KB/s (40612 bytes in 4.15 s)
IOPS: 212.00 IO/s (882 IOs in 4.15 s)
FTDI chip: FT232R (3), buffer size: 384 bytes
FTDI stats: 967.00 xfers/s (0.00 short reads/s,
4023 xfers/3 short reads in 4.15 s,
4.00 xfers/IO, 324.00 bytes/xfer)
SPI max clock: 1000 kHz, min clock: 666 kHz, slowdowns: 1
****************************************************************************
Success

Видим что стек прошитый в BlueLab, более старой версии (22.01.2009), чем тот, который был в адаптере с завода (31.03.2009).
11. После завершения компиляции и прошивки, ОБЯЗАТЕЛЬНО, необходимо изменить параметры. Для этого запускаем c:\Program Files (x86)\QTIL\BlueSuite 2.6.11\PSTool.exe, выбираем SPI BCCMD, Port FT232R A50285BI, нажимаем OK.
12. Выбираем в меню Bootmode>Bootmode 1 и слева в списке находим Host Interface и нажимаем на него. Справа нажимаем «ENTRY NOT PRESENT — Click to add» и из списка выбираем «VM access to the UART» нажимаем кнопку Set
13. Выбираем в меню Bootmode>none, слева в списке находим Host Interface и нажимаем на него. Справа выбираем из списка «UART link running BCSP» и нажимаем кнопку Set
14. Слева в списке, находим параметр Crystal frequency. Копируем сюда значение которое находится в файле bc352.psr (который мы создали раньше, когда делали резервную копию) в параметре PSKEY_ANA_FREQ &01fe = xxxx, где xxxx нужное нам значение. Нажимаем Set.
15. Слева в списке, находим параметр Crystal frequency trim. Копируем сюда значение которое находится в файле csr-pskeys.psr в параметре PSKEY_ANA_FTRIM &01f6 = xx. Обращаем внимание, что xx надо перевести в десятичную форму. Можно использовать калькулятор Windows в режиме инженера :). Нажимаем Set.
16. Слева в списке, находим параметр User configuration data 0. Там будут какие-то цифры. Все удаляем и вставляем строку «0031 0032 0033 0034» без кавычек. Нажимаем Set.
17. Закрываем PSTool, отключаем USB кабель и подключаем снова.
18. Находим по bluetooth на смартфоне HC-05 устройство и подключаемся через Serial Bluetooth Terminal. Вводим пароль 1234.
После прошивки, светодиод на модуле перестанет мигать, это нормально. В SPP_UART прошивке нет поддержки алгоритма мигания светодиода.

Подключение модуля BC03 к ELM327
Отпаяв BC03 с платы HC05 и припаяв его в ELM327 адаптер, меня ждал сюрприз. На TX выводе bluetooth модуля было напряжение 1В вместо стандартных 3В.
Оказывается у меня UART раньше работал только по тому, что необходимые 3В на TX вывод модуля, приходили с FT232RL. Как оказалось, у FT232RL TX и RX даже в неподключенном состоянии имеют уровни 3В.
Пришлось припаять резистор 10 кОм между TX модуля и питанием 3,3В

AT команды прошивки SPP_UART
Как следует из описания кастомной прошивки с открытым исходным кодом SPP_UART, для bluetooth модулей BC03/BC04, она дает возможность без замыкания на модуле pin34 (PIO11/KEY) на Vcc, управлять настройками bluetooth модуля по воздуху, без использования TTL кабеля.
Для этого, после подключения к адаптеру по bluetooth, первой посланной командой должна быть AT+CONF,
обязательно заглавными буквами, одним пакетом, и заканчиваться должна CR+LF.
Serial Bluetooth Terminal для android и HTerm для Windows умеют это делать.
После ответа ОК, можно менять: скорость соединения с PIC (AT+UART), bluetooth имя (AT+NAME), пароль (AT+PSWD), смотреть MAC адрес (AT+ADDR) и т.д. Полный перечень команд можно посмотреть здесь.
Так как в PIC все еще оставалась старая китайская прошивка, через AT+CONF я сменил PSKEY_UART_BAUDRATE на 38400, командой AT+UART:38400,0,0
Выход из командного режима в транспортный AT+DATA.
Если нужно еще раз войти в режим настроек, просто разрываем bluetooth соединение, соединяемся еще раз и вводим AT+CONF.

Результаты замены bluetooth модуля:
Не смотря на то, что вместо BC04, мне достался перемаркированный BC03 с урезанным объемом flash памяти 6 Мбит и TX выводом на 1 вольт (требующим подтяжки резистором 10кОм до 3В), результатом я очень доволен.
Список полученных преимуществ по сравнению со старым EC04:
1. Соединение по bluetooth больше не зависает, не теряет информацию полученную от PIC.
2. Разрыв и повторное соединение с модулем происходит быстро и не требует повторного ввода пароля.
3. Стало возможным менять прошивку модуля bluetooth
4. За счет поднятия мощности в параметрах PSKEY_LC_MAX_TX_POWER и PSKEY_LC_DEFAULT_TX_POWER увеличилась дальность приема
5. Стало возможным конфигурировать параметры модуля по воздуху через AT+CONF

Замена китайской прошивки ELM1.5 в PIC18F25K80 на Deep OBD ELM1.5
Снова aIiexpress и я заказываю такой программатор PICkit3:

Elm327 для китайских авто

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

Источник

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

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