Купил я себе новую гранту и решил как обычно поковыряться в прошивке и активировать круиз контроль! Но вот не задача для его активации требуется USB-CAN адаптер, адаптер по k-line у меня есть разные с гальванической развязкой и без таковой самодельные и заводские. Но вот адаптера по кан у меня не было, и дел я с ним раньше не имел, ну было решено изучить этот вопрос как говорится по полной, собрать самому данный адаптер. Этот адаптер необходим также для диагностики автомобиля и прослушивания кан шины при помощи всем известной программы CANHacker. CANHacker для своего обмены с адаптером и шиной использует протокол «lawicel», при помощи данного протокола программа посылает служебные команды адаптеру, который в свою очередь своеобразным образом должен на них ответить, иначе определения адаптера в программе не произойдет. Также программа посылает различные команды адаптеру такие как скорость обмена разрядность и так далее, по этому протоколу работают не только эта программа, но и другие в том числе платные. В своей прошивке необходимо было учесть все для работы с программы.
Изучив не мало статей, испробовав немало кода пришлось создавать свой использую какие то наработки. Начала я использовал программный комплекс Keil uVision5, ну в принципе как всегда, но обнаружил небольшие тормоза при компиляции проектов. С чем связана такая особенность Keil-ла я не разобрался пока. Но скаченный бесплатный программный комплекс от производителя процессоров компании ST STM32CubeIDE 1.6.0 решил все мои проблемы. Вот и так бывает когда бесплатный софт может все решить, в общем он компилировал проект за секунды в отличии от Keil uVision5, который это делал около 3-4мин.
Теперь о аппаратной части. Изначально было запланировано использовать микроконтроллер STM32F105 ну или вообще f0 серию, но в ходе освоения выяснилось, что у данных микроконтроллеров шины кан и юсб используют одни область памяти и поэтому не могут одновременно работать. Ну как, достаточно быстро не могут, но можно было применив кое какие так называемые программные «костыли» заставить их работать, но это все же «костыли». Всем вам известно о нынешних проблемах с микроконтроллерами вот и тут пришлось выбирать контроллер исходя из имеющихся в наличии по более-менее адекватной цене. Был приобретён не дохлый такой себе «камень» STM32F373CCT6, ранее c F3 серией я дел не имел, тем более интересен был опыт. По ходу освоения я понял, что для отладки донной вещицы одним девайсом я не обойдусь, было необходимо либо держать ЭБУ машины дома, чего мне никто не позволил бы (на машине ездит жена) , либо иметь еще одно устройство такое-же. Я решил выбрать последнее и приобрел еще один микроконтроллер STM32F105VCT6, ну что нашёл. В качестве приемо-передатчика кан была выбрана микросхема с гальванической развязкой iso1050, ну просто была когда-то куплена у братьев наших по рублю за пучек.
Были разведены и изготовлены 2 односторонние платы методом лут под один и под второй микроконтроллер, ну прототипы. Позже т.к. я ранее никогда не заказывал платы в поднебесной решил их заказать только сделал двусторонние и меньшего размера.
Да… классные конечно но их 5 куда 4 девать….
Потом для тестирования подключил обе платы к компу и запустил 2 программы и стал предавать сообщение с одной на другую.
В общем все заработало прошивки под оба микроконтроллера прилагаю:
плата + схема в диптрейсе Прошивка stm32f373 Прошивка stm32f105
Последний раз редактировалось
do-vitas Пн июл 05, 2021 13:29:21, всего редактировалось 1 раз.