Skoda Fabia Style 1.4 TDI › Logbook › Диагностический адаптер (клон HEX-USB+CAN) для VCDS и ВАСЯ диагност
После месячного ожидания, пришел заказанный на aIiexpress у продавца CREACLE кабель VAG189 Dual-K & CAN USB VAG/ISO interface. Дата производства адаптера 03.2019, она указана на наклейке-пломбе сбоку.
На диске ничего интересного, устаревший VCDS 18.9.0 EN и инструкция на ломанном английском.
В комплекте провода с коннектором под разъем J4 для обновления загрузчика чипа ATMEGA162 кабеля (об этом ниже).
:
Разъем J4 для обновления прошивки кабеля:
Задействованные контакты OBD2 разъема:
4, 5 GND
6 ISO15765-4 (CAN bus high)
7 ISO9141 (K-line)
8 припаян на плату в точку с обозначением P5. В работе не используется, так как дорожек от него никуда никаких не идет.
14 ISO15765-4 (CAN bus low)
15 ISO9141 (L-line)
16 +12В от аккумулятора автомобиля (отсюда берет питание кабель при подключении)
Чипы и электронные компоненты на борту:
Фото №1 (верх платы)
Atmel ATMEGA162 16U-TW (High-performance, Low-power AVR® 8-bit Microcontroller, 16K Bytes of In-System Self-programmable Flash program memory, 512 Bytes EEPROM, 1K Bytes Internal SRAM, Write/Erase cycles: 10,000 Flash/100,000 EEPROM)
Atmel ATA6561 (High-speed CAN Transceiver with Standby Mode CAN FD Ready, Fully ISO 11898-2, -5, SAE J2284 compliant, Communication speed up to 5Mbit/s)
MCP2515 (Stand-Alone CAN Controller with SPI Interface. Implements CAN V2.0B at 1 Mb/s)
FTDI FT232RL (USB to serial UART interface, Data transfer rates from 300 baud to 3 Megabaud (RS422 / RS485 and at TTL levels) and 300 baud to 1 Megabaud (RS232), USB 2.0 Full Speed compatible)
Фото №2 (низ платы)
L9637D (ISO 9141 interface) — 2 шт
Lattice PALCE16V8H-7JC/5 (Programmable Array Logic)
L7805CV Single Positiv Linear Voltage Regulator, 5V / 1.5A
Кварц 16.000 МГц
Кварц 7.3728 МГц
Y5FAQ (ATAES132A high-speed, high-security, 32K Serial EEPROM that enables authentication and confidential nonvolatile data storage) — содержит резервную копию китайской прошивки и eeprom с ключом активации VCDS 18.9EN для ATmega162.
Если поставить джамперы на J1 и J5 и подать питание на кабель (подключить кабель к OBD2 разъему автомобиля), китайский загрузчик прочитает прошивку и eeprom из Y5FAQ и запрограммирует их в ATmega162. Таким образом реализовано восстановление flash и eeprom ATmega162, в случае если каким-то образом они будут затерты VCDS при обновлении.
Джампер J1 — предназначен для подачи +5В с USB разъема на пин 1 нераспаянного разъема J3 (разъем предназначен для перепрограммирования чипа Y5FAQ SPI/I2C программатором).
С пина 1 разъема J3 питание также идет на 8-ю ножку (VCC) чипа Y5FAQ.
Джампер J5 — предназначен для подачи GND на 4-ую ножку чипа Y5FAQ, для включения его в работу.
Разъем J4 — предназначен для перепрограммирования ATmega162 при помощи адаптеров ft232r или USBasp.
На 16-ом контакте OBD2 разъема присутствует защитный диод. На контактах K/L-Line, вместо транзисторов используются чипы L9637D. Кабель является клоном оригинального кабеля HEX-USB+CAN.
ВАЖНО! Как устроен чип ATmega162?
Логически он состоит из трех компонентов:
1. Загрузчик — код стартует при подаче питания на чип
2. Прошивка — ее запускает загрузчик, она общается с VCDS и шинами K-Line и CAN автомобиля
3. EEPROM — память с настройками, которые читаются/записываются прошивкой и загрузчиком.
Здесь хранится количество измененных кодировок и адаптаций, код языка VCDS, а также ключ лицензии.
Физически, чип имеет на борту flash память объемом 16384 байт, разделенную на две области.
В первой (15360 байт) находится прошивка, во второй (1024 байт) — загрузчик (bootloader).
Разрешения на запись в каждую из областей, зависят от конфигурации fuse & lock битов, которые программируются при прошивке.
Если загрузчик активирован, через него можно прошивать новую прошивку, но исключительно той версии, которая совпадает с версией загрузчика (загрузчик откажется прошивать версию отличающуюся от его собственной).
Перепрограммировать/сменить версию самого загрузчика через USB кабель невозможно из-за аппаратных ограничений (почитать об этом можно в описании ATmega162 на стр. 217).
Виды оригинальных кабелей для VCDS и соответствующие им прошивки:
Существуют разные версии оригинальных кабелей для VCDS, например KII-USB, Micro-CAN и HEX-USB+CAN. Что примечательно, HEX-USB+CAN речь о котором идет в данной статье, поставлялся в двух аппаратных версиях:
HW 0x44 — старая на более дорогой элементной базе
HW 0x46 — новая на более дешевой элементной базе
Хотя функционально кабели не отличаются друг от друга, под HW версии, используются соответствующие им прошивки, которые находятся в папке куда установлен VCDS (например C:\Ross-Tech\VCDS\):
HC196.bin (размер 7680 байт) для кабеля KII-USB
HN121.bin (размер 36864 байт) для кабеля Micro-CAN
HCC196.bin (размер 15762 байт) для кабеля HEX-USB+CAN версии HW 0x44
HP196.bin (размер 15762 байт) для кабеля HEX-USB+CAN версии HW 0x46
Именно эти файлы, VCDS прошивает в чип кабеля в окне Test, если определяет, что в чипе кабеля версия текущей прошивки 1.95 (кабели KII-USB и HEX-USB+CAN) или 1.20 (кабель Micro-CAN).
Как определить аппаратную версию кабеля HEX-USB+CAN?
Если ножки 34 и 35 чипа ATmega162 соединены с ножками 5 и 4 чипа GAL (PALCE16V8H), тип кабеля HW 0x44. Если нет, это HW 0x46.
Почему важно понимать какой аппаратной версии кабель?
Если в чип ATmega162 кабеля, прошита версия загрузчика не соответствующая аппаратной версии, например в чип кабеля 0x46 прошит загрузчик от версии 0x44 — кабель есть риск того, что кабель может некорректно работать.
Аппаратную версию кабеля определили, как определить версию загрузчика и включен ли он?
Устанавливаем, но не запускаем VCDS — он установит драйвер кабеля.
Далее подключаем кабель к OBD2 разъему к автомобиля, а вторым концом к USB порту.
Подсказка: Если не хочется идти к автомобилю, можно OBD2 разъем кабеля, подключить к блоку питания 12 вольт, подав +12В на контакт 16, а GND на 4 или 5 контакт OBD2 разъема.
В диспетчере устройств Win+X в разделе «Контроллеры USB» должен появиться «Ross-Tech Direсt USB Interface». Далее двойным кликом, в «Сведения» и «ID оборудования», можно посмотреть ID FT232R чипа.
У меня это выглядело так:
Далее запускаем VAGCOM_HWType.exe из комплекта VCDSLoader 9.2 и смотрим на строчку с HW Version.
В моем случае выдало:
FW Version: 1.96
HW Version: 0x46
Identification: ROSSTECH
Bootloader: Enabled
Почему я купил кабель HW 0x44, а загрузчик определяется как HW 0x46?
В чип ATmega162 этого кабеля, на заводе в Китае, прошили специальный, нестандартный загрузчик, который при каждом запуске чипа (подаче питания на кабель при подключении кабеля к USB), пытается считать из чипа Y5FAQ резервные копии eeprom и flash и прошить их в ATmega162.
Пока перемычки J1, J5 сняты, питание Y5FAQ отключено — загрузчику ничего не удается из него считать и загрузчик запускает код той прошивки, которая уже находится во flash ATmega162.
Утилита VAGCOM_HWType, определяет версию загрузчика очень примитивно — все что не 0x44, она считает 0x46 и поэтому, эту неизвестную версию китайского загрузчика, она определяет как 0x46.
Как прошить стандартный загрузчик версии 0x44 из комплекта VCDSLoader, можно найти в конце статьи.
Если загрузчик в кабеле правильный, можно обновить прошивку и eeprom и начинать пользоваться:
Перед тем, как запустить VCDSLoader, необходимо используя VAGCOM_EEWriteLang.exe обновить прошивку и eeprom кабеля, выбрав язык «Russia — RUS«.
Это позволит использовать кабель как с англоязычной, так и русскоязычной версиями VCDS.
Алгоритм работы VAGCOM_EEWriteLang:
1. Определяет HW версию загрузчика ATmega162
2. Передает загрузчику пропатченую прошивку размером 15762 байт в зашифрованном виде.
Алгоритм которым зашифрована прошивка тот же, что и у файлов HCC196.bin и HP196.bin из дистрибутива VCDS.
Пропатченные прошивки под HW 0x44 и 0x46, находятся внутри VAGCOM_EEWriteLang.exe виде ресурсов.
3. После записи пропатченной прошивки, загрузчику для записи, передается eeprom размером в 512 байт, в котором содержится код языка и версия прошивки.
Использование кабеля:
После того, как мы убедились, что загрузчик соответствует HW версии кабеля, залиты правильные прошивка и eeprom, можно запускать VCDSLoader и заходить в Options>Test>Save
При запуске теста кабеля, VCDS считывает код языка и версию прошивки из eeprom.
Если версия ниже 1.96 (например 1.95), он предложит провести обновление на прошивку 1.96 (которую будет брать из зашифрованного файла HCC196.bin или HP196.bin, в зависимости от версии HW загрузчика).
Можно начинать работу, нажимать кнопку Select, заходить в блоки, менять кодировки и адаптации и т.д.
По состоянию на апрель 2021 года, кабель совместим с VCDS 21.03 при условии запуска через VCDSLoader 9.2.
Образец результатов сканирования:
Wednesday, 08, May, 2019,18:57:14:00007
VCDS — Windows Based VAG/VAS Emulator Running on Windows 10 x64
VCDS Version: 18.9.1.0 (x64)
Data version: 20190114 DS296.0
Chassis Type: NJ-SK26 (6C0)
Scan: 01 03 05 08 09 10 13 15 17 19 2B 44 5F
VIN: TMBEJ6NJ3GZ0xxxxx Mileage: 57093km-35475miles
01-Engine — Status: Malfunction 0010
03-ABS Brakes — Status: OK 0000
05-Acc/Start Auth. — Status: OK 0000
08-Auto HVAC — Status: Malfunction 0010
09-Cent. Elect. — Status: OK 0000
10-Park/Steer Assist — Status: OK 0000
13-Auto Dist. Reg — Status: OK 0000
15-Airbags — Status: OK 0000
17-Instruments — Status: Malfunction 0010
19-CAN Gateway — Status: OK 0000
2B-Steer. Col. Lock — Status: OK 0000
44-Steering Assist — Status: OK 0000
5F-Information Electr. — Status: OK 0000
——————————————————————————-
Address 01: Engine (J000-CUSB) Labels:. 04B-907-445-V1.clb
Part No SW: 04B 906 027 B HW: 04B 907 445
Component: R3 1.4l TDI H08 9084
Revision: 21006001
Coding: 01114032420415081000
Shop #: WSC 73430 031 00000
ASAM Dataset: EV_ECM14TDI03004B906027B 003027
ROD: EV_ECM14TDI03004B906027_003_VW26.rod
VCID: 204F56813BC3E44AFD-8074
1 Fault Found:
30357 — Intake Air Temp. Sensor (G42)
P0113 00 [032] — Signal too High
Intermittent — Not Confirmed — Tested Since Memory Clear
Freeze Frame:
Fault Status: 00000001
Fault Priority: 2
Fault Frequency: 1
Mileage: 55961 km
Engine speed: 0.00 /min
Normed load value: 0.0 %
Vehicle speed: 0 km/h
Coolant temperature: 18 °C
Intake air temperature: 0 °C
Ambient air pressure: 980 mbar
Voltage terminal 30: 0.078 V
Unlearning counter according OBD: 8
Cylinder charge: spec. value: 0.0 mg/stroke
Coolant temperature at engine outlet: calculated: 18.0 °C
Extern.temp.sens.1 bank 1: raw value: 9.0 °C
Coolant fan 2: activation: 0.00 %
Coolant fan 1: activation: 0.00 %
Fuel temp. sensor 1 bank 1: raw value: 10.5 °C
——————————————————————————-
Address 03: ABS Brakes (J104) Labels:. 6R0-907-37x-ESP90.clb
Part No SW: 6C0 907 379 K HW: 6R0 907 379 BA
Component: ESP9.0i H03 0004
Serial number: 08507132150824
Coding: 41F5287D892933C40914106D0056821491CC9008000BC9F98F00
Shop #: WSC 13765 031 12345
ASAM Dataset: EV_Brake1ESP90iBOSCHPQ26 100020
ROD: EV_Brake1ESP90iBOSCHPQ26.rod
VCID: 377D9DDD8E4D83F22C-8062
No fault code found.
——————————————————————————-
Address 05: Acc/Start Auth. (J518) Labels:| 5Q0-959-435.clb
Part No SW: 5Q0 959 435 A HW: 5Q0 959 435
Component: VWKESSYMQB 021 0604
Revision: 00021000 Serial number: 0376841120
Coding: 000F0F
Shop #: WSC 13765 790 00000
ASAM Dataset: EV_KessyHellaMQBAB 002011
ROD: EV_KessyHellaMQBAB_002.rod
VCID: 3A7B84E9BD5F9E9AD3-806E
No fault code found.
——————————————————————————-
Address 08: Auto HVAC (J255) Labels:| 6C0-907-044.clb
Part No SW: 6V0 907 044 A HW: 6V0 907 044 A
Component: Climatronic H01 0202
Serial number: 1508261A-0390
Coding: 101000001011200201
Shop #: WSC 73430 031 00000
ASAM Dataset: EV_ACClimaValeoPQ26 003001
ROD: EV_ACClimaValeoPQ26.rod
VCID: 356197D5944171E23E-8060
1 Fault Found:
1179905 — Cooling Fan for Housing
B126B 01 [012] — Electrical Failure
Intermittent — Confirmed — Tested Since Memory Clear
Freeze Frame:
Fault Status: 00000001
Fault Priority: 2
Fault Frequency: 1
Reset counter: 109
Mileage: 57062 km
Date: 2019.05.08
Time: 17:45:25
Voltage terminal 30: 12.9 V
——————————————————————————-
Address 09: Cent. Elect. (J519) Labels:| 6C0-937-090-V1.clb
Part No SW: 6C0 937 090 D HW: 6C0 937 090
Component: BCM PQ26 HiKR H08 0094
Serial number: 001388017223
Coding: 0C010840421509FB03A04080B10703080800D800D70A3500000000000000
Shop #: WSC 73430 790 00000
ASAM Dataset: EV_BCMA0 006002
ROD: EV_BCMA0_006_VW26.rod
VCID: 29594BA548F92502AA-807C
Drivers Door Control Module:
Subsystem 1 — Part No SW: 6V1 959 801 B HW: 6V1 959 801 B
Component: FHSG DRV 007 0001
Serial number: 00000000000002084492
Coding: 011200
Sensor For Anti Theft Alarm System:
Subsystem 2 — Part No SW: 5Q0 951 172 HW: 5Q0 951 172
Component: Sensor, DWA 005 0315
Serial number: 000000000ZY150753BX1
Alarm horn:
Subsystem 3 — Part No SW: 5Q0 951 605 HW: 5Q0 951 605
Component: Sirene, DWA 004 0311
Serial number: 00000000000032567702
Relative Air Humidity Interior Sender:
Subsystem 4 — Part No SW: 8U0 955 559 HW: 8U0 955 559
Component: G355_FeuchteS H07 0002
Serial number: 21181359
No fault code found.
——————————————————————————-
Address 10: Park/Steer Assist (J791) Labels:| 5Q0-919-294.clb
Part No SW: 5Q0 919 294 E HW: 5Q0 919 294 A
Component: PARKHILFE 7K H03 0048
Revision: ——— Serial number: 39311523700478
Coding: 0011051041
Shop #: WSC 73430 790 00000
ASAM Dataset: EV_EPHVA18AU3700000 002024
ROD: EV_EPHVA18AU3700000_VW26.rod
VCID: 3D718FF5AC71A9A2F6-8068
No fault code found.
——————————————————————————-
Address 13: Auto Dist. Reg (J428) Labels:| 5Q0-907-572-V1.clb
Part No SW: 5Q0 907 572 F HW: 5Q0 907 572 F
Component: ACC Bosch MQB H05 0400
Serial number: 14071503212098
Coding: 00000000FE0339
Shop #: WSC 73430 031 00000
ASAM Dataset: EV_ACCMRRBoschVW372 001016
ROD: EV_ACCMRRBoschVW372_VW26.rod
VCID: 3A7B84E9BD5F9E9AD3-806E
No fault code found.
——————————————————————————-
Address 15: Airbags (J234) Labels:| 6C0-959-655.clb
Part No SW: 6C0 959 655 F HW: 6C0 959 655 F
Component: VW20Airbag733 001 0360
Revision: ——— Serial number: 003RJ005176P
Coding: 88CCC000000000005C5400CF000800000000
Shop #: WSC 73430 790 00000
ASAM Dataset: EV_AirbaVW20BPAVW26X 001001
ROD: EV_AirbaVW20BPAVW26X.rod
VCID: 366390D989477AFA37-8062
Side Sensor Driver Front:
Subsystem 1 — Part No SW: ———— HW: 410 820 209 15
Component: SideSensor_Df 151 0800
Serial number: 3575H00B31D10C9171FP
Coding: 2D2D2D
Side Sensor Passenger Front:
Subsystem 2 — Part No SW: ———— HW: 410 820 209 15
Component: SideSensor_Pf 151 0800
Serial number: 3585H00B51D10C91706I
Coding: 2D2D2D
Side Sensor Driver Rear:
Subsystem 3 — Part No SW: ———— HW: 442 152 208 15
Component: SideSensor_Dr 1CA 0148
Serial number: 3517A009B1C3DED2F05
Coding: 2D2D2D
Side Sensor Passenger Rear:
Subsystem 4 — Part No SW: ———— HW: 442 152 108 15
Component: SideSensor_Pr 1CA 0148
Serial number: 3527A00C31C52F0343BC
Coding: 2D2D2D
No fault code found.
——————————————————————————-
Address 17: Instruments (J285) Labels:| 5G0-920-XXX-17.clb-SRI3
Part No SW: 6V0 920 741 A HW: 6V0 920 741 A
Component: KOMBI 205 1420
Coding: 07AD01102180000801803A011000000000000000
Shop #: WSC 73430 031 12345
ASAM Dataset: EV_DashBoardVDDMQBAB 009046
ROD: EV_DashBoardVDDMQBAB_SK25.rod
VCID: 3467AAD19F3B68EA09-8060
1 Fault Found:
16777024 — Function Restricted due to Interrupted Communications
U1110 00 [008] — —
[New feature! Extended UDS fault detail is only supported by current gen. interfaces]
Intermittent — Confirmed — Tested Since Memory Clear
Freeze Frame:
Fault Status: 00000001
Fault Priority: 6
Fault Frequency: 1
Reset counter: 81
Mileage: 56050 km
Date: 2019.05.01
Time: 07:01:38
——————————————————————————-
Address 19: CAN Gateway (J533) Labels:| 6C0-909-901-V1.clb
Part No SW: 6C0 909 901 A HW: 6C0 937 090
Component: GW MQB A0 H08 0094
Revision: ——— Serial number: 001388017223
Coding: 030100040F0A590000000000000000010001050000000000000000000000
Shop #: WSC 73430 790 00000
ASAM Dataset: EV_GatewA0Lear 013020
ROD: EV_GatewA0Lear_013_SK25.rod
VCID: 2643409959E70A7A87-8072
Multi Function Steering Wheel Control Module:
Subsystem 1 — Part No SW: 3V0 919 719 A HW: 3V0 919 719 A
Component: E221__MFL-PR6 H02 0150
Serial number: 000000000D0416250815
Battery Monitoring Control Module:
Subsystem 2 — Part No SW: 6C0 915 181 A HW: 6C0 915 181 A
Component: J367-BDM H08 0223
Serial number: 52213H06372821466889
No fault code found.
——————————————————————————-
Address 2B: Steer. Col. Lock (J764) Labels:* 5Q0-905-861.clb
Part No SW: 5Q0 905 861 A HW: 5Q0 905 861 A
Component: ELV-MQBA H01 0120
Revision: 00000000 Serial number: 15000188814005
Coding: 5500000000000000
Shop #: WSC 73430 031 00000
ASAM Dataset: EV_ELVMarquMQB 004111
ROD: EV_ELVMarquMQB.rod
VCID: 3467AAD19F3B68EA09-8060
No fault code found.
——————————————————————————-
Address 44: Steering Assist (J792) Labels:| 6Rx-909-144-V2.clb
Part No SW: 6C1 909 144 AG HW: 6C1 909 144 D
Component: EPS_TRW_ALow 312 3232
Serial number: CF970668
Coding: 000700
Shop #: WSC 73430 790 00000
ASAM Dataset: EV_SteerAssisUDSTRW 016026
ROD: EV_SteerAssisUDSTRW.rod
VCID: 6DD17FB5BC91F92206-8038
No fault code found.
——————————————————————————-
Address 5F: Information Electr. (J794) Labels:| 3V0-035-MIB-ENT2.clb
Part No SW: 6V0 035 871 B HW: 6V0 035 871 B
Component: MU-E—ER 852 6490
Serial number: 20081500020402
Coding: 036200003C0000001111000101000A002F0007C40000010000
Shop #: WSC 73430 790 12345
ASAM Dataset: EV_MUEnt4CGen2LGE 001025
ROD: EV_MUEnt4CGen2LGE_VW12.rod
VCID: 366390D989477AFA37-8062
No fault code found.
Тестирование ВАСЯ диагност
Как только появилась версия ВАСЯ диагност 19.6 + сниффер CAN, работающая с любыми кабелями (огромное спасибо DigitalKR ), я установил его параллельно VCDS для сравнения.
С блоком 1 (ЭБУ/ECU Delphi DCM6.2V) он как и VCDS, работает только в режиме чтения, кодировать и запускать тесты исполнителей не умеет:
В отличии от VCDS, ВАСЯ умеет читать значения бит и байт кодировок блоков из самих блоков (данные ASAM).
Это очень интересная функция и я попытался ею воспользоваться попробовав на блоке 17.
После утвердительного ответа на вопрос об использовании ASAM данных, ВАСЯ выпал в креш и кодирование больше не работало даже в обычном режиме. Таким образом, я пришел к выводу, что ВАСЯ это просто взломанная и руссифицированная версия VCDS 🙂
Но спустя какое-то время, после прошивки в кабель правильного загрузчика 0x44 вместо китайского, я снова попробовал изменить кодировку блока 17 и режим с использованием данных ASAM заработал:
В этом замечательном режиме, ВАСЯ отображает окно помощника кодирования на розовом фоне.
Кроме этого, ВАСЯ умеет расшифровывать расширенную расшифровку сообщения об ошибке как ODIS.
Таким образом у ВАСИ есть два преимущества перед VCDS — умение расшифровывать кодировки блоков без лейбл файлов и умение отображать расширенную расшифровку ошибок.
Смена версии загрузчика с HW 0x46 на 0x44 (или наоборот) при помощи адаптера FT232R
Как только я узнал, что версия загрузчика в кабеле некорректная, сразу заказал на aIiexpress программатор USBasp. К сожалению или к счастью, посылка ко мне так и не дошла.
После приведения в порядок адаптера ELM327, мне не давала покоя мысль, а возможно ли, используя адаптер FT232RL и провода Dupont 2.4 мм, которыми я успешно по SPI протоколу перепрограммировал bluetooth чипы CSR BC03 и BC04, использовать для перепрограммирования загрузчика ATmega162?
Ведь чип FT232R не смотря на его дешевизну (я имею ввиду клоны конечно же) очень мощный.
Он поддерживает Synchronous Bit Bang Mode, позволяющий управлять восемью контактами FT232R на высокой скорости, независимо друг от друга, что позволяет использовать его как универсальный SPI программатор.
Так как Kolimer (автор VCDSLoader), в info.pdf ссылался на avrdude, я стал искать версию поддерживающую FT232R чип.
По состоянию на конец августа 2019 года, avrdude 6.30, поддерживает ft232r чип, но из-за использования устаревшей библиотеки libusb0.1 (и ее Windows версии libusb-win32), bitbang режим FT232R с ним работает некорректно.
avrdude из проекта LoseAVR (обновленный WinAVR) скомпилированный для работы через libusb1.0 (и ее Windows версию libusbK), я не рассматривал, потому, что не хотел менять драйвер в системе с FTDI на libusbK.
Неожиданно, я наткнулся на avrdude-serjtag, который корректно работает c ft232r в bitbang режиме, через официальный драйвер FTDI D2XX.
Процедура смены загрузчика:
С официального сайта компании FTDI, скачиваем и устанавливаем WHQL Certified драйвер версии 2.12.28. Этот дистрибутив содержит сразу оба драйвера VCP и D2XX для чипа FT232R, что нам и нужно.
Качаем и распаковываем avrdude-serjtag 0.3 в папку с содержимым VCDSLoader 9.2.
В в секции id = «ft232r0» avrdude.conf оригинального дистрибутива avrdude-serjtag, были некорректно прописаны соответствия сигналов SPI и контактов FT232R. Исправил так:
programmer
id = «ft232r0»;
desc = «Synchronous BitBang channel 0»;
type = ft245r;
sck = 0; # D0/TXD
miso = 1; # D1/RXD
mosi = 3; # D3/CTS
reset = 4; # D4/DTR
;
А вот в секции с id=»ft232r1″ (которая используется, когда FT232R подключен по альтернативной схеме), все ок:
programmer
id = «ft232r1»;
desc = «Synchronous BitBang channel 1»;
type = ft245r;
miso = 3; # D3/CTS
sck = 5; # D5/DSR
mosi = 6; # D6/DCD
reset = 7; # D7/RI
;
Во время программирования, USB разъем кабеля HEX-CAN+USB к компьютеру/ноутбуку не подключать и
питание на OBD2 разъем кабеля HEX-CAN+USB не подавать!.
Джампер на адаптере FT232RL выставляем в положение 5 вольт.
Контакты FT232RL адаптера, соединяем с разъемом J4 на плате HEX-CAN+USB кабеля по схеме id = «ft232r0».
Дополнительно, соединяем контакты VCC и GND FT232RL c VCC и GND контактами разъема J4.
Запускаем avrdude-GUI 1.0.5.exe:
В «Programmer» выбираем «Synchronous BitBang channel 0» (если FT232RL подключен по схеме ft232r1, нужно соответственно выбрать «Synchronous BitBang channel 1»).
В Device, выбираем «ATmega162 (m162)».
В «Command line Option» указываем порт «-P ft0» без кавычек.
Проверяем подключение нажав Read. В Fuse и Lock bit полях, должны отобразиться значения.
Если интересно, расшифровку значений фьюз, можно посмотреть в онлайн калькуляторе, а описание в datasheet контроллера ATmega162.
На всякий случай, делаем резервную копию hex файла прошивки, нажав кнопку Read в разделе Flash.
Запускаем cmd.exe в папке где находится avrdude и прошиваем eepromavr_HW_0x44.bin и Flash1.96_HW_0x44.bin:
avrdude.exe -P ft0 -p m162 -c ft232r0 -e -U lock:w:0x3f:m -U efuse:w:0xf9:m -U hfuse:w:0xdc:m -U lfuse:w:0xcd:m -U flash:w:Flash1.96_HW_0x44.bin:r -U eeprom:w:eepromavr_HW_0x44.bin:r
avrdude.exe: BitBang OK
avrdude.exe: pin assign miso 1 sck 0 mosi 2 reset 4
avrdude.exe: drain OK
ft245r: bitclk 230400 -> ft baud 115200
avrdude.exe: AVR device initialized and ready to accept instructions
avrdude.exe: Device signature = 0x1e9404
avrdude.exe: erasing chip
ft245r: bitclk 230400 -> ft baud 115200
avrdude.exe: reading input file «0x3f»
avrdude.exe: writing lock (1 bytes):
avrdude.exe: 1 bytes of lock written
avrdude.exe: verifying lock memory against 0x3f:
avrdude.exe: load data lock data from input file 0x3f:
avrdude.exe: input file 0x3f contains 1 bytes
avrdude.exe: reading on-chip lock data:
avrdude.exe: verifying …
avrdude.exe: 1 bytes of lock verified
avrdude.exe: reading input file «0xf9»
avrdude.exe: writing efuse (1 bytes):
avrdude.exe: 1 bytes of efuse written
avrdude.exe: verifying efuse memory against 0xf9:
avrdude.exe: load data efuse data from input file 0xf9:
avrdude.exe: input file 0xf9 contains 1 bytes
avrdude.exe: reading on-chip efuse data:
avrdude.exe: verifying …
avrdude.exe: 1 bytes of efuse verified
avrdude.exe: reading input file «0xdc»
avrdude.exe: writing hfuse (1 bytes):
avrdude.exe: 1 bytes of hfuse written
avrdude.exe: verifying hfuse memory against 0xdc:
avrdude.exe: load data hfuse data from input file 0xdc:
avrdude.exe: input file 0xdc contains 1 bytes
avrdude.exe: reading on-chip hfuse data:
avrdude.exe: verifying …
avrdude.exe: 1 bytes of hfuse verified
avrdude.exe: reading input file «0xcd»
avrdude.exe: writing lfuse (1 bytes):
avrdude.exe: 1 bytes of lfuse written
avrdude.exe: verifying lfuse memory against 0xcd:
avrdude.exe: load data lfuse data from input file 0xcd:
avrdude.exe: input file 0xcd contains 1 bytes
avrdude.exe: reading on-chip lfuse data:
avrdude.exe: verifying …
avrdude.exe: 1 bytes of lfuse verified
avrdude.exe: reading input file «Flash1.96_HW_0x44.bin»
avrdude.exe: writing flash (16376 bytes):
avrdude.exe: 16376 bytes of flash written
avrdude.exe: verifying flash memory against Flash1.96_HW_0x44.bin:
avrdude.exe: load data flash data from input file Flash1.96_HW_0x44.bin:
avrdude.exe: input file Flash1.96_HW_0x44.bin contains 16376 bytes
avrdude.exe: reading on-chip flash data:
avrdude.exe: verifying …
avrdude.exe: 16376 bytes of flash verified
avrdude.exe: reading input file «eepromavr_HW_0x44.bin»
avrdude.exe: writing eeprom (512 bytes):
avrdude.exe: 512 bytes of eeprom written
avrdude.exe: verifying eeprom memory against eepromavr_HW_0x44.bin:
avrdude.exe: load data eeprom data from input file eepromavr_HW_0x44.bin:
avrdude.exe: input file eepromavr_HW_0x44.bin contains 512 bytes
avrdude.exe: reading on-chip eeprom data:
avrdude.exe: verifying …
avrdude.exe: 512 bytes of eeprom verified
avrdude.exe: safemode: Fuses OK
avrdude.exe done. Thank you.
Отключаем адаптер FT232RL, подаем на HEX-CAN+USB кабель питание через OBD2 разъем, подключаем к ноутбуку по USB и при помощи VAGCOM_EEWriteLang.exe из комплекта VCDSLoader 9.2 прошиваем eeprom в «Russia — RUS«.
Проверяем версию загрузчика в VAGCOM_HWType.exe и он показывает приятную глазу картину:
Смена загрузчика без FT232RL адаптера для продвинутых пользователей
Так как кабель HEX-CAN+USB на борту имеет FT232RL или FT232RQ чип, можно подключив его соответствующие ножки по схеме ft232r1 к разъему J4 и подав туда же питание 5В с USB (или другой более удобной точки на плате), с помощью avrdude-serjtag перепрограммировать ATmega162.
Эту увлекательную часть оставляю на реализацию тем, у кого нет ни USBasp ни FT232RL адаптеров.
Схему подключения ft232r0 не рекомендую, так как TXD и RXD ножки чипа FT232RL подключены к ATmega162, а следовательно лучше их не использовать.
Выводы:
1. Сразу после покупки кабеля, необходимо определить какой он аппаратной версии (HW 0x44 или 0x46) и сверить с версией загрузчика в VAGCOM_HWType.
Если версии не совпадают, необходимо прошить правильную версию загрузчика из дистрибутива VCDSLoader.
2. Прошить загрузчик, можно не только с помощью USBasp, но и FT232R адаптера.
3. Любой, даже самый древний кабель-клон можно обновить, если он построен на чипах ATMEGA162 и 16V8H и его аппаратная версия HW 0x44 или 0x46.
4. Перед началом использования кабеля, при помощи VAGCOM_EEWriteLang.exe из комплекта VCDSLoader 9.2, необходимо прошить eeprom в «Russia — RUS«.
Если eeprom не удается прошить из-за заблокированного загрузчика (VAGCOM_HWType выдает bootloader=disabled), значит сначала, необходимо прошить правильный загрузчик (смотри пункт 2).
5. Прошивка eeprom «Russia — RUS» делает кабель совместимым как с русской, так и английской версиями VCDS, и их можно установить и использовать параллельно.
6. Для работы с автомобилями 2019-го модельного года, данный кабель бесперспективен.
Вопросы о покупке кабеля
Многие меня просили дать ссылку на продавца/магазин на aIiexpress, несмотря на то, что они указаны в начале статьи 🙂 Следует знать, что большинство продавцов и магазинов на aIiexpress — это посредники между вами и реальным поставщиком товара, который доступен в каком-то ограниченном количестве.
Как правило, продавец с aIiexpress у которого вы покупаете, в большинстве случаев даже не знает, что внутри кабеля, а вся информация которую он предоставляет на страничке — информация от поставщика, от которого товар идет к вам напрямую (продавец товар вообще не видит). Поэтому искать именно этого продавца и ссылку на конкретно этот товар просто бессмысленно.
Кабель описанный в статье, является клоном кабеля OBD2Cartool.com, который можно купить на их сайте.
Честная цена такого кабеля приблизительно $20. Вам предлагают кабель с таким же или другим чипом дороже и рассказывают, о том, что он обладает какими-то дополнительными магическими или целебными свойствами, произнося при этом «умные фразы»? Обходите таких продавцов стороной 🙂
Не нравится OBD2Cartool.com и хотите купить кабель на aIiexpress?
Используйте в поиске ключевые слова ATmega162, 16V8 и т.п.
Отбирайте продавцов по рейтингу и желательно с фото внутренностей кабеля.
Обращайте внимание на присутствие чипов из списка под фото в начале.
Чип Y5FAQ и джампера J1, J5 — абсолютно не нужны.
Вместо микросхем L9637D могут быть диоды, это абсолютно не критично.
Вместо ATA6561, может быть ATA6560.
Важно отметить, что рынок наводнен китайскими клонами кабеля HEX-V2, не имеющими ничего общего с оригиналом от RossTech. Внутри вас будет ждать сюрприз в виде случайного чипа, в котором по состоянию на август 2020 года, невозможно обновить прошивку.
От приобретения таких кабелей лучше воздержаться.
Хотите знать еще больше о различных типах китайских клонов HEX-CAN+USB и их начинках?
Рекомендую к прочтению статью RiHard .