Обсуждаем электронику на колесах. Нужен увлажнитель воздуха для Камаза? Вам сюда.
Ответить

CAN-USB адаптер.

Вс июл 04, 2021 15:26:25

Купил я себе новую гранту и решил как обычно поковыряться в прошивке и активировать круиз контроль! Но вот не задача для его активации требуется 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 раз.

Re: CAN-USB адаптер.

Вс июл 04, 2021 17:51:01

На STM32F0x2 отлично можно сделать CAN<>USB, УМВР.

Re: CAN-USB адаптер.

Вс июл 04, 2021 18:00:07

На STM32F0x2 отлично можно сделать CAN<>USB, УМВР.

вы наверно про 042 возможно не знаю его я не смог достать... но прошивка одна чужая у меня есть в ней все построено через буфер а не напрямую как могут эти микроконтроллеры... опять же не проверял было бы интересно но не на чем проверить... времена сейчас сами знаете....

Re: CAN-USB адаптер.

Вс июл 04, 2021 18:03:38

do-vitas, вот - на STM32F072. Год назад себестоимость составила 300 рублей…


В отличие от STM32F103 (и, возможно, 105), STM32F0x2 более совершенны и у них не только на CAN и USB разные ноги в LQFP48, но еще и буфер используется более рационально (под CAN выделен кусок буфера в конце, так что, если USB не слишком жирный, то и на CAN памяти хватает).

Re: CAN-USB адаптер.

Вс июл 04, 2021 18:14:18

Eddy_Em, 103 и 105 имеют совершенно разные модули как can так и usb. опять же 072 попробовал бы интересно... но вот 373 меня вообще в разы больше понравился. usb без проблем все просто летало...

Re: CAN-USB адаптер.

Вс июл 04, 2021 19:21:46

Там разве не OTG? Я с OTG еще не работал: там несколько иначе все. Боюсь, минимум вечера 3-4 придется сидеть, чтобы осилить USB на F3.

В общем, мне это пока еще совсем не просто. Лежит десяток F303, думаю как-нибудь таки приступить к ним. Но там вообще непочатый край работы: и USB поднять, и с FPU разобраться... А еще там есть дополнительный кусок оперативки.

Re: CAN-USB адаптер.

Вс июл 04, 2021 22:00:03

Eddy_Em писал(а):Лежит десяток F303,
да вы микромиллионер... :shock:
Eddy_Em писал(а):Там разве не OTG
да и в 105 тоже

Re: CAN-USB адаптер.

Пт июл 09, 2021 17:12:57

А я вот гляжу в сторону stm32g431, камушек с can fd на перспективу так сказать. Работает как обычный can плюс fd. На некоторых авто уже имеется. В CANFD можно слать до 64 байт данных в одном пакете.

Re: CAN-USB адаптер.

Пт июл 09, 2021 18:21:49

Насколько я понимаю в мк все равно что запрограммируешь то и будет хоть 64 бита хоть 29 хоть 11. Тоже со скоростью сколько задашь то и будет. Главное чтоб сам проц не тормозил как говорится и ему хватало собственных ресурсов чтоб обрабатывать без тормозов.

Re: CAN-USB адаптер.

Пт июл 09, 2021 18:33:48

11/29 бит это ID, данные это данные и в простом can их может быть от 1 до 8 байт не более. А в can fd их может быть до 64 байт. Простой can модуль работать в режиме fd не может, а fd в простом режиме легко.

Re: CAN-USB адаптер.

Пт июл 09, 2021 18:54:27

11/29 бит это ID, данные это данные и в простом can их может быть от 1 до 8 байт не более. А в can fd их может быть до 64 байт. Простой can модуль работать в режиме fd не может, а fd в простом режиме легко.

я лишь имел ввиду что мк все ровно какой протокол какой напишешь тот и будет! в fd у кана больше частота и только, все упрется только в приёма передатчик т.к. даже у самого захудалого 042 частота шины APB1 48MHz чего вполне перекроет 12MHz. Будет день будет пища разберемся.

Re: CAN-USB адаптер.

Пт июл 09, 2021 19:41:00

При аппаратном протоколе на борту писать собственный это извращение! У fd не просто частота выше, скорость стандартная в начале и конце кадра и не может быть выше 1 Мбит/с а вот полезная нагрузка это данные частота увеличивается и может достигать 8 Мбит/с. Не думаю что этот переход частот можно реализовать программно на лету не потеряв драгоценного времени.

Re: CAN-USB адаптер.

Пт июл 09, 2021 20:39:54

optima, "аппаратный протокол"-улыбнуло вам пофлудить охота ну вперед! не понимаю когда просто так "небо бьют"... я не разбирался в can fd нужда будет разберусь...

Re: CAN-USB адаптер.

Сб авг 06, 2022 07:23:06

Ну зачем ты мой вопрос проигнорил, видимо даже не посмотрел видео. Ок задам по другому, у меня гранта 16 года, я хочу поставить на неё вместо штатной мультимедиа TEYES 3 но чтобы он отображал остаток топлива, обороты и тд и тп нужен CAN-USB адаптер, но платить 8200 за то что стоит намного дешевле очень не хочется, вот и спрашиваю твой адаптер сработает или нет как на том видео ссылку которого ты убил???
Ответить