Еще раз собрал все вместе и мое понимание процесса выглядит так:
1. При проведении теста в D-PDUAPI_Test.exe, адаптер опрашивается и если версия прошивки (Module FW-Version) в нем отличается от версии в файле VCFUSBLU.BIN (в нем версия находится в трех байтах по смещению 0x2C), микроконтроллеру передается на выполнение Flash54.bin
2. Код Flash54 принимает от D-PDUAPI_Test.exe файлы BOOT54.bin и SYS54.bin которые пытается шить в flash память находящуюся на борту микроконтроллера, а SYS54BK.bin и VCFUSBLU.BIN во внешний flash чип. Если микроконтроллер защищен от прошивки, либо flash чип отличается от AMD или Fujitsu с Device ID=0x22D8 (например AMD AM29LV160DB или ST M29F160BB), прошивка становится невозможной и процесс прерывается с ошибкой IFH-0036: LOAD ERROR (в самотесте это ошибка 200.46)
3. Если все успешно прошилось, микроконтроллер перезаружается и запускает из внешнего flash чипа файл VCFUSBLU.BIN, содержащий операционную систему CMX-RTXS RTOS V5.30D, которая в зависимости от версии содержит различные проверки на оригинальность адаптера:
FW 2.10.48 не делает ни каких проверок;
FW 2.20.20 проверяет серийник в eeprom FW 2.20.41 содержит дополнительные проверки eeprom;
FW 2.20.42 проверяет eeprom на присутствие строк VAS505 и VW, проверяет manufactuter и device ID внешнего flash чипа на соответствие AMD 0x22D8, тестирует чипы OKI M6636, AU5780A, TJA1054TA, проверяется" сигнатура "A55A" (возможно тоже в eeprom, проверка происходит до теста типа флеш-памяти), усиленно щупает-дергает 9-ый порт микроконтроллера, а также возможно содержит прочие проверки.
Если какие либо проверки провалились, тестирование прерывается с ошибкой PDU_ERR_MODULE_FW_OUT_OF_DATE: Firmware software out of date (Программное обеспечение прошивки устарело).
Отсутствие, либо присутствие фейковой платы блютуз в процессе проверок не участвует и влияет только на возможность редактирования настроек связанных с блютуз (активацию звукового сигнала если адаптер забыли в OBD2 разъеме и мощность) в ODIS. Настройки записываются в eeprom.
Таким образом, если плата содержит заблокированный от перезаписи микроконтроллер, либо eeprom c некорректным содержимым, либо flash чип который flash54.bin не умеет шить, может понадобиться перепрограммирование eeprom и flash чипа вручную, так как PDU не сможет их обновить.
Flash54.bin в PDU от версии 1.10.48 до 1.20.42 не менялся (CRC16=4992). Возможно его тоже можно подлечить патчем и тогда он будет шить все остальное, что отличается от AMD и Fujitsu?
Заранее благодарен за исправления и уточнения информации приведенной выше.
|