Провод от COM-порта до сканера - 22 метра витой пары... Затем укоротил до 10...
И только потом в электросхеме я увидел, что K-линия заведена только в блок АБС и модуль управления подушками (за последнее не уверен, подзабыл схему).
Решил перейти на более высокий уровень - на шину CAN и EOBD (OBD2) стандарт диагностики.
Итак. Приступим к изготовлению универсального адаптера OBD2 <-> USB.
Адаптер AllPRO USB.
Автор любезно предоставил всем желающим схемы вариантов адаптера с незначительно различающимися побочными деталями для тех, кому недоступны некоторые микросхемы. Автор также предоставил прошивку для микроконтроллера, который является основой адаптера.
Схема несложна и одновременно ее можно упростить еще сильнее, если нет необходимости во многих протоколах общения с машиной.
Я упростил схему, отбросив ненужный мне (и отсутствующий во Фьюжене) протокол шины J1850 Bus. Это VPW и PWM.
Оставил CAN, K-линию и L-линию.
Из основных деталей требуются:
PIC18F2455 (PIC18F2550) - микроконтроллер с встроенным USB
MCP2515 - логический интерфейс CAN
MCP2551 - физический интерфейс CAN
MC33290 (MCZ33290) - физический интерфейс K-линии
2N7000 (КП505) - полевой транзистор для управления L-шиной
3 светодиода,
кварцевый резонатор на 16 МГц,
разъем USB с крепежом на плату,
провод USB под упомянутый разъем,
разъем DB-9 на плату и ответная часть - на провод,
стандартный разъем OBD2 (вилка, папа),
несколько резисторов, конденсаторов и диодов,
макетная печатная плата - желательно простая плата с металлизированными отверстиями с шагом 2.54 мм
цанговые панельки для микросхем (на 28 ножек узкая, на 18 ножек узкая, на 8 ножек).
Также потребуется припаивать микросхему MC33290 - у нее ножки с шагом 1.27 мм кажется (8 ножек) - нужна микроплата-переходник, либо паять проволочные выводы, либо покупать макетную плату с посадочным местом для корпуса SOIC-8N. Либо просто не ставить эту микросхему, если не нужны K-L-линии.
Схема и прошивка для самостоятельного изготовления размещены по адресу http://www.obddiag.net/obdadapter.html
Или http://www.obddiag.net/rus/obdadapter.html
Требуемые Файлы:
AllPRO5.pdf - схема
obdcan2ec.hex - прошивка v5.16 - имеет возможность тестирования правильности изготовления адаптера
obdcan2.hex - прошивка v6.12r
Обе прошивки совместимы с ELM327 1.1, но 5.16 представляется программам как "ELM327 v1.1 compatible", а 6.12r - "ELM327 v1.1".
Внимательно, там есть несколько вариантов схемы и два варианта прошивки.
Нам требуются названия, как я указал.
Стабильно работает вариант 5.16, а вариант 6.12r не всегда запускается при подключении устройства к USB-порту. Как будто вовсе питание не подается.
Разницы в работе пока не заметил, так что obdcan2ec.hex - прошивка v5.16 - предпочтительный вариант.
Кроме того, потребуется скачать с сайта автора драйвер для подключения адаптера к USB. Драйвер штатный, вроде как от Microsoft. Без него не будет виртуального COM-порта в системе и устройство не определится.
И главное - прошивку надо записать в микроконтроллер. Для этого нужно устройство-программатор и программа-программатор.
У меня связка WinPIC+безымянное самодельное устройство за~350-500 руб. Кажется, JDM-programmer.
Можно найти помощь на радиорынке или еще где-нибудь. Наверняка там, где продают готовые программаторы за сходную цену запишут ваш контроллер.
Устройство мне обошлось в следующую сумму:
Покупка деталей в интернет-магазине и пересылка - 750 руб.
Мелочевка на радиорынке - 100 руб.
Разъем OBD2 - 300 руб.
Макетная плата для сборки устройства - 150 руб (использовал половину от давно купленной).
Программатор - 350-500 руб.**
Итого ~ 1300 руб.
**Программатор я собрал давно в общих целях, поэтому в сумму он не включен.
[table][tr][td]
[td]
[tr][td]
[td]
Обратите внимание на упаковку вилки и не покупайте такую же. Контакты, которые идут в комплекте отвратительного качества. Сделаны из стали или дюраля и облиты тонким слоем припоя. При пайке припой отваливается и припаять провод невозможно, учитывая тот факт, что вилка сделана из СВЕРХлегкоплавкого пластика...
Мне пришлось намотать провода на штырьки и кое-как зафиксировать термоусадочной трубкой.
Устройство совместимо с чипом ELM327 версии 1.1. Прекрасно работает с программой ScanMaster-ELM и также с другими, более простыми программами.
Автор устройства делал статью в журнале РадиоХобби по своему адаптеру (№2 за 2009 год).
Собрал, подключил, проверил. Работает, читает.
Видимо, в открытом доступе относительно простая прошивка, поскольку на коммерческой странице у него вроде более продвинутые адаптеры. Вроде высылает их рассыпухой как комплекты для самостоятельной сборки с уже прошитыми контроллерами. Только не в страны бывшего СССР.
Самое классное - что адаптер - это USB устройство и питается от USB же. И самое-самое классное - работало все через три удлинителя USB (в сумме чуть больше 6 метров) и от адаптера к OBD колодке - еще ровно 11 метров витой пары - по ней подается CAN-шина (одна пара) и +12 и общий (вторая пара).
Рабочая прошивка 5.16 для полной версии с одним кварцем на 16МГц.
VIN: WF0DXXGAJD8A62908
Vehicle Data: 510A FFFF FF58
Блок управления двигателем
PCM Module
PCM 1 FF52 FFFF 0363
PCM 2 8A0F 52FF FFFB
PCM 3 FF41 FFFF FF50
PCM 4 FFFF FFFF FF0F
PCM 5 FFFF FFFF FF10
PCM 6 FFFF FFFF FF11
PCM 7 FFFF FFFF FF12
PCM 8 FFFF FFFF FF13
PCM 9 FFFF FFFF FF14
BCE Modules TSB SSM Instructions
Возможно! Модуль управления подушками безопасности
58-01 0000 0057 46F6
58-02 3044 5858 47C5
58-03 414A 4438 41A3
58-04 3632 3930 3865
58-05 010D 0FC0 C0FA
58-06 1100 AA44 005D
58-07 073D 0000 00A3
Приборная панель
720-01-01 B41A 817E 04FA конфиг приборки
720-02-01 5746 3044 5893
720-02-02 5847 414A 4499
720-02-03 3841 3632 3946
720-02-04 3038 95
720-03-01 1C66 AD
GEM
726-01-01 CA0C 06C1 05D1
726-02-01 E8F7 6FA6 6C90 конфиг GEMа
726-03-01 9C00 0000 00CD не знаю...
Магнитола
727-01-01 2400 388C
Модуль климат-контроля
733-01-01 5746 3044 58A5
733-01-02 5847 414A 44AB
733-01-03 3841 3632 3958
733-01-04 3038 A7
Синим обозначен VIN.
На машинах с автоматом и роботом есть блок:
7E1-01-01
7E1-01-02
7E1-01-03
7E1-01-04
Там также прописан VIN.
Последний байт каждой строки контрольная сумма: 7+XX+X+X+....=YZZ (Y отбрасывается)
B21A 817E 04F8 - строка конфига приборки машины с заводской магнитолой.
Жирным выделил различия (на разные третьи байты не обращайте внимания). В двоичной системе эти разные байты будут выглядеть так:
12--->00010010
1A--->00011010
Таким образом, если пятый бит 1 - есть магнитола, если 0 то нет.
В моем случае конфиг приборки был такой: B01A 817E 04F6, я его сделал таким: B012 817E 04EE. В результате получил часы на дисплее БК и настройку часов/календаря в меню.
Ранее в теме писалось, что можно активировать звуковую индикацию включения задней передачи. За эту функцию отвечает тот же байт.
B012 817E 04EE - без звука
B052 817E 042E - со звуком
В двоичном виде:
12--->00010010
52--->01010010
Второй бит говорит о наличии звуковой индикации.
есть АБС - B4 (10110100)
есть IVD - F4 (11110100)
Механика B41A C000 04BB (1011 0100)
Автомат без БК B01A (1011 0000)