В общем, решил рассказать свою непростую историю инсталляции ДХО на Пассат. Сразу скажу, что история длинная, с описанием всех наступаний на грабли. Возможно, для кого-то история окажется полезной.
Итак, поехали.
Покупка.
Скажу сразу, мысль поставить ДХО родилась совсем недавно. Обычно, я ездил с ближним ксеноном и не парился. Но однажды одна из ламп прожив в пассате 6 лет сказала «извини». Помня, что b6club-сила, через некоторое время купил у ксеноншопа 2 новых «оригинальных» лампы производства «филипс», беру в кавычки, т.к. его «оригиналы» отработали полгода и на этом всё кончилось. В общем, ксеноншоп продаёт дерьмо и отвечать за это не хочет. Пусть данный факт остаётся на его совести. Поменяв лампы в третий раз, а процедура эта не дёшева, учитывая что без снятия бампера этого не сделать, я решил продлить срок службы нового ксенона путём установки ДХО. На али довольно быстро нашёл нужный мне комплект, почитал отзывы – всё хорошо. Заказал.
http://www.aliexpress.com/item/Free-Shipping-LED-CAR-light-DRL-Daytime-Running-Lights-For-VW-Volkswagen-Passat-B6-2007-2008/1998099000.html
Именно в этом предложении подкупило то, что у контроллера был отдельный вывод для подключения ближнего, при включении которого яркость ДХО должна уменьшаться.
Цена вопроса 4837.94 руб.
Получение и проверка
Как это часто бывает при работе с китайцами, пришло немного не то, на что я рассчитывал, а именно у контроллера не было того самого дополнительного провода, для снижения яркости при включении ближнего. Ну да ладно, это решаемо. Решил проверить, работают они вообще или нет. Беру аккумулятор, соединяю все провода, а ничего не горит. Странно. Беру блок питания, выставляю 14.4 вольта, подключаю – засветились. Ну Ок, значит включаются только когда заведён двигатель, подумал я, что в принципе даже не плохо. С китайца я кстати вернул 10%, путём открытия диспута на али и его дальнейшей эскалации.
Инсталляция
Когда увидел, что контроллер «не тот», понял что придётся допились управление самому. Ибо ездить по вечерам и ночам с ярким слепящим светом совсем не хотелось. Очень быстро состряпал схему включения ДХО, в которой ДХО должны отключаться при включении ближнего, но не реагировать на короткие включения дальнего.
Все резисторы типоразмера 1206, номинал 1кОм. Конденсатор – электролит 100мкф х 25В.
После чего спроектировал и изготовил плату, размером 30х33 мм
Запаял, проверил, всё работает. Полез в Elsa смотреть цоколёвку разъёма фары, с целью найти провода на дальний и ближний, и тут облом. В отличии от жигулей, здесь фары представляют собой умные блоки с управлением по двухпроводной CAN- шине. Если упростить, то можно представить, что через весь автомобиль проходит два провода и каждый девайс на своём месте подключается к этим двум проводам. Плату делал зря

Дальше сделал примерно как все, а именно включил через VAG-COM «Скандинавский свет» и «Дневной свет через ПТФ». Поменял решётки на новые – с ДХО, подключил к туманкам, запускаю двигатель, туманки светятся, ДХО – нет. Замеряю напряжение на аккумуляторе – 14.4В. Замеряю на туманках – 12.0В. Блин, не знал что в пассате есть стабилизатор напряжения бортовой сети. Ну чтож, круто, конечно, но придётся переделать. Подключаю ДХО прям к аккумулятору (помню, что они горят только, когда работает двигатель), с целью подумать по то, как потом подключить «правильно». Подключил – не горят. Запустил двигатель – загорелись. Круто! Не придётся лепить управление. Выключаю зажигание – горят!! Думаю, ладно, наверняка стоит таймер и через несколько секунд отключатся. Отключились через 15 минут, когда я отключил их от аккумулятора. Блин, управление всё же делать придётся. Решил сделать управления от туманок, поэтому от туманки вывел провод, связал с проводами от ДХО и на день забыл про них. Через день купил релюшку HLS-T78-H-DC12V и подключил по следующей схеме:
Саму релюшку с проводами поместил внутрь яйца из киндер-сюрприза.
На грязь не обращайте внимание, сейчас всё чисто

Запускаю двигатель, ДХО светятся. Глушу – тухнут. Но слышу, что релюшка трещит на частоте герц 50-100. Получается, что лампы питаются через ШИМ. И может там и 14 вольт в пиках, но действующее – 12. Понимаю, что в таком режиме реле долго не проживёт немного меняю схему, добавляю конденсатор:
Дребезг прекратился, всё работает как нужно.
Но хочется другого. У ПТФ цветовая температура 4300К, у ДХО 6000К. Если включить одновременно, не красиво. Кроме того, хотелось туманки подключить назад, что бы на приборке погасла ошибка по лампочкам и мне перестали напоминать про сгоревшие лампы туманок при каждом включении зажигания. Решил сделать дополнительный контроллер, примерно по следующему ТЗ:
1. Контроллер подключается к CAN –шине.
2. При включении питания проверяется состояние ближнего/дальнего света. Если включено – ДХО обесточено. Иначе- подаём питание на ДХО.
3. Если по шине приходит команда включения ближнего или дальнего света, ждём секунды-полторы и проверяем состояние снова. Если состояние не изменилось, выключаем ДХО.
4. Если по шине приходит команда выключения ближнего, включаем ДХО.
5. Если включены туманки, выключаем ДХО.
6. ДХО не должен выключаться, если я кому-то поморгаю дальним.
Добавил пункт по рекомендации Измаила
7. При постановки на ручной тормоз, ДХО отключаются.
При этом туманкам возвращается их штатная функция.
В принципе, задание не сложное, но есть одно но. Нужно понять, как управляется фара по штатной шине. Нужно понять какие использовать команды и на какие ID их отправлять. Поэтому, исходная задача разделяется на два этапа:
1. Изготовление снифера шины и анализ трафика CAN – шины
2. Изготовление и подключение дополнительного контроллера ДХО.
CAN Sniffer
Требования к железу были в принципе простые –поддержка Сan-шины и USB на аппаратном уровне. USB нужна для организации виртуального COM-порта, что бы можно было получать данные с шины прямо на комп. В качестве основы для железа решил использовать микроконтроллеры STM32, а с учётом хотелок купил макетку, из того что было, с уже распаянным микроконтроллером STM32F103C8T6 где на борту и USB и GPIO:
В качестве хардварного Can-трансивера взял готовый модуль из имеющегося в закромах, который когда-то был куплен в составе одной из development board, на чипе SN65HVD230, вот такой:
Посмотрел, вроде всё устроило. Решил залезть в Reference Manual на STM32F103C8 и тут на странице 658 обнаружил следующую фразу: «In low, medium-, high- and XL-density devices the USB and CAN share a dedicated 512-byte SRAM memory for data transmission and reception, and so they cannot be used concurrently (the shared SRAM is accessed through CAN and USB exclusively). The USB and CAN can be used in the same application but not at the same time». Проще говоря, CAN и USB одновременно в этом микроконтроллере не работают. Не страшно, буду менять контроллер. Заказываю новый контроллер STM32F373CCT6, у которого нет данного недостатка, плюс это ARM Cortex-M4, против STM32F103C8T6 на ядре Cortex-M3, и куча памяти. Т.е. пригодится и для других целей.
Перепаиваю контроллер, старый кладу на полку и начинаю программировать. Стартовые коды инициализации, а также HAL сформировал через STM32CubeMX, который по заявлению STM «to ease developers life by reducing development efforts, time and cost», что в принципе так и есть. Прошил, убедился что USB поднялся, значит можно писать основную программу. В этот момент решил поискать что-нибудь похожее на мою цель и на хабрахабре нашёл отличный проект «CAN-USB адаптер из stm32vldiscovery» https://geektimes.ru/post/255534/ По сути это адаптер между шиной CAN и программой – анализатором CAN-трафика CAN Hacker (http://www.mictronics.de/projects/usb-can-bus/) Как раз то, что нужно! Вязл его за основу и переписал проект (за проект с исходниками автору огромное спасибо!!!) под свой контроллер, залил, работает. Дополнительно добавил в программу выбор скорости CAN из интерфейса программы CAN Hacker на компе. Запускаю CAN Hacker, интерфейс определяется как родной. К слову, VAG-COM CAN Hacker не видит. Осталось припаять разъём OBD-II
Попытка подключения к шине Пассата номер раз.
Собрав всё в кучу, иду в машину, подключаю, включаю и….ничего. Вообще. Возвращаюсь домой, понимаю, что нужен второй девайс с CAN-интерефейсом для тестирования/настройки снифера. В идеале, было бы конечно классно иметь на столе какой-нибудь блок от Пассата, но за неимением такового я собрал такой девайс на другой плате с запаянным STM32F207. Запрограммировал эту плату на постоянную отправку CAN – пакетов, подцепил снифер и увидел, что результат совсем не тот, который должен был быть. Принимается совсем не то, что я отправляю. После этого были различные танцы с бубном, наступание на грабли Куба, исправление косяков и наконец-то на столе всё заработало как нужно. Всё что отправляется, принимается. Идём в машину!
Попытка подключения к шине Пассата номер два.
Собрав всё в кучу, иду в машину, подключаю, включаю и….опять ничего. Вообще. Переключаю скорости – ничего. Ок, нужно думать.
Пошарившись в интернете, особой практически применимой инфы по вопросу не нашёл. Однако, на одном из форумов прозвучала мысль, что CAN в диагностическом разъёме не фонит в эфир постоянно, а выдаёт данные только по запросу. Значит нужно подключиться к шине в другом месте. Таким местом я решил выбрать RDS-300, т.к. доступ к ней довольно простой и в теории, можно засунуть провода прям в разъём, не разрезая провода.
Попытка подключения к шине Пассата номер три.
Собрав всё в кучу, иду в машину, вытаскиваю RDS-300, подключаю, включаю и….опять ничего. Вообще. Переключаю скорости – ничего. Ок, нужно думать.
Лезу опять в интернет, смотрю куда советуют подключаться производители разных умных девайсов, например FUN-Control, который у меня уже установлен. В инструкции к девайсу сказано, что идеальное место подключения – за блоком управления климата. Ок, будем пробовать там. Дополнительно купил два крокодила с обжатыми проводами, что бы было удобней подключаться. Перед тем как идти в машину, решил проверить цепи. Проверяю – контакта нет ни в Can-L, ни в CAN-H! Как оказалось, внутри провода, под изоляцией разорваны жилы. Китайцы смогли меня удивить, молодцы
