USB-CAN адаптер.

Купил я себе новую гранту и решил как обычно поковыряться в прошивке и активировать круиз контроль! Но вот не задача для его активации требуется USB-CAN адаптер, адаптер по k-line у меня есть разные с гальванической развязкой и без таковой самодельные и заводские. Но вот адаптера по кан у меня не было, и дел я с ним раньше не имел, ну было решено изучить этот вопрос как говорится по полной, собрать самому данный адаптер. Этот адаптер необходим также для диагностики автомобиля и прослушивания кан шины при помощи всем известной программы CANHacker. CANHacker для своего обмены с адаптером и шиной использует протокол «lawicel», при помощи данного протокола программа посылает служебные команды адаптеру, который в свою очередь своеобразным образом должен на них ответить, иначе определения адаптера в программе не произойдет. Также программа посылает различные команды адаптеру такие как скорость обмена разрядность и так далее, по этому протоколу работают не только эта программа, но и другие в том числе платные. В своей прошивке необходимо было учесть все для работы с программы.

Изучив не мало статей, испробовав немало кода пришлось создавать свой использую какие то наработки. Cyачала я использовал программный комплекс Keil uVision5, ну в принципе как всегда, но обнаружил небольшие тормоза при компиляции проектов. С чем связана такая особенность Keil-ла я не разобрался пока. Но скаченный бесплатный программный комплекс от производителя процессоров компании ST STM32CubeIDE 1.6.0 решил все мои проблемы. Вот и так бывает когда бесплатный софт может все решить, в общем он компилировал проект за секунды в отличии от Keil uVision5, который это делал около 3-4мин.

Теперь о аппаратной части. Изначально было запланировано использовать микроконтроллер STM32F105 ну или вообще f0 серию, но в ходе освоения выяснилось, что у данных микроконтроллеров шины кан и юсб используют одни область памяти и поэтому не могут одновременно работать. Ну как, достаточно быстро не могут, но можно было применив кое какие так называемые программные «костыли» заставить их работать, но это все же «костыли». Всем вам известно о нынешних проблемах с микроконтроллерами вот и тут пришлось выбирать контроллер исходя из имеющихся в наличии по более-менее адекватной цене. Был приобретён не дохлый такой себе «камень» STM32F373CCT6, ранее c F3 серией я дел не имел, тем более интересен был опыт. По ходу освоения я понял, что для отладки донной вещицы одним девайсом я не обойдусь, было необходимо либо держать ЭБУ машины дома, чего мне никто не позволил бы (на машине ездит жена), либо иметь еще одно устройство такое-же. Я решил выбрать последнее и приобрел еще один микроконтроллер STM32F105VCT6, ну что нашёл. В качестве приемо-передатчика кан была выбрана микросхема с гальванической развязкой iso1050, ну просто была когда-то куплена у братьев наших по рублю за пучек.
Были разведены и изготовлены 2 односторонние платы методом лут под один и под второй микроконтроллер, ну прототипы. Позже т.к. я ранее никогда не заказывал платы в поднебесной решил их заказать только сделал двусторонние и меньшего размера.



Да… классные конечно но их 5 куда 4 девать….
Потом для тестирования подключил обе платы к компу и запустил 2 программы и стал предавать сообщение с одной на другую.



Прошивку допиливаю постоянно, нужно сделать переключение скоростей ну сразу не сделал т.к. для АвтоВАЗа это ненужно, там все тупо на 500кb/с. Сам интерфейс мне понравился в принципе на его основе можно делать сопряжение любых устройств. Еще думаю написать прогу под винду для прошивки блоков m86, сейчас шью стандартной программой инфинион, а она работает по k-line очень уж медленно, а бесплатного ничего нет. Плата диптрейс, прошивки.
Прошивка на 373 Прошивка на 105

Комментарии (17)

RSS свернуть / развернуть
Правильно я понял что чисто спортивный интерес? Можно же было купить USB-CAN адаптер да софт прикладной строчить только.
0
Ну как сказать 373 мне 450р. и iso1050 30р. итого в расходах с платой рублей 700 где-то ну это мне. А если с пспвей то да тут уже спорно. Но я как-то покупал по 500р. can-k-line в китае ничего из этого адекватно не работало. само дешёвое что нормально работает из поднебесной стоило 2.5р. а тут дак вообще цены не сложишь. Вот такие расклады. Да и не все у нас деньгами меряется. Мне проще собрать. Хотя-бы ремонтопригоно будет. Сейчас еще по мультиметру думаю, тоже собрать а то больше 2лет не живут. Все барахло китайское. Схему искал долго, помог китаец как не странно, писанина с ним была долгой переводить приходилось много. Сами китайцы кстати не сильно любят то барахло что ним продают.
0
Ну тут есть нюанс… сейчас за один чип стм32 просят от… 5 до 10 ТЫСЯЧ рублей. :)))) Либо ожидание от года :)
0
Надеюсь это однажды закончится.
0
И да, на будущее. В редакторе постов есть кнопка с ножницами. Она вставляет тэг cut который сворачивает длинный пост по этому месту, чтобы он не разрывал общую ленту. Я тут добавил, а вы на будущее ставьте сами.
0
Интересно, а где взять исходный код ЭБУ чтоб там активировать круиз контроль?
0
Ну это как раз просто в прошивке эбу. Тут труднее заставить приборку это увидеть. Но это тема другой статьи.
0
Так вопрос был в том где взять прошивку?
0
У АвтоВаза этот алгоритм сейчас есть во всех стандартных прошивках!

Вот например моя стандартная прошивка!
0
Так автоваз просто вот так раздает прошивки от ЭБУ? На бери?
0
Это маркетинг ничего хитрого. Сейчас Автоваз перешёл ЭБУ m74m полный аналог вестовского м86 и все стандартные прошивки идут такие тока в комплектациях пониже как моя нет ручки под рулем с круизом и все докупаешь ее за 700р активируешь эту функцию и ездишь радуешься.
0
А в какой программе рисовалась плата? Я дико извиняюсь, но отчего бы не залить пустое место на плате земляным полигоном?
0
А зачем? Не всегда много земли хорошо. Да и не к чему тут много дорожек от мк отходит!
0
Программа диптрейс:
0
Изначально было запланировано использовать микроконтроллер STM32F105 ну или вообще f0 серию, но в ходе освоения выяснилось, что у данных микроконтроллеров шины кан и юсб используют одни область памяти и поэтому не могут одновременно работать.
В STM32F042 работают. Проект UCCB, например.
0
Был бы STM32F042 попробовал бы. Немого ничего сказать т.к. сейчас такие времена микроконтроллеры трудно доставать.
0
Прошлым летом, когда делал, ещё были. :)
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.