Comments 28
У меня есть такая плата, на ней я реализовал gateway can/ethernet для специфических девайсов. Как раз давеча потерял свой canable 2.0, прекрасно служивший мне для моих утилит под python, открывающийся как /dev/cu.тырыпыры последовательный порт, в общем, и мучался с canable 1.0, вроде я его прошивал чем-то под can<->usb-serial, а сегодня не смог её найти, и сайт canable.io чёт не работает. Попробую завтра вашу. А с usb-serial что не получилось? "переходник с USB на RS232"
А с usb-serial что не получилось? "переходник с USB на RS232"
Это следующим этапом.
А с usb-serial что не получилось? "переходник с USB на RS232"
Вот. Та же прошивка ,только добавлен виртуальный COM порт на USB mini
https://github.com/aabzel/Artifacts/tree/main/jz_f407vet6_usb_can_gcc_m
Привет, мне с производства на следующий день утром написали - нашёлся мой usb-can)) Сейчас посмотрел - после трансфера на новый макбук с год назад перестали открываться некоторые проги, в т.ч. segger, которым я эти платы прошивал.
Нашёл инсталляшку 8.16, нашёл segger свой 12й, прошил, 1 диод горит постоянно, второй раз в секунду моргает, третий 5 раз в 1 секунду. Нашёл miniUSB кабель, в портах прибавилось в папке /dev/cu*,

перестали открываться некоторые проги, в т.ч. segger, которым я эти платы прошивал.
Прошивайте ST-Link-ом
Программатор из обломка платы Nucleo
https://habr.com/ru/articles/975880/
Дык я ж на фотке всё разместил, чтоб было понятно, что всё нашел-подключил итд
Не дописал, извиняюсь.
Под screen-ом подключился к девайсу, пока скорость не настроишь - он ловит пакеты на непонятной скорости и с непонятными ID. Было бы здорово в протоколе slcan для CAN, и в режиме uart для rs485, но это чисто для меня. Столько данных лучше наверное и правда заворачивать в пакеты некоего протокола, к которому удобный парсер сделать со скомпилированной либой. Судя по количеству портов - это должно быть что-то над UDP. Нейросеть говорит, что это реализуемо с некоторыми ограничениями - LWIP (lightweight IP) with RAW API (not socket API), но я думаю - сессию и железяку надо сначала сконфигурировать по TCP, закрыть сессию и стартанёт UDP с обработчиками rx и tx
А чтоб ловить их под виндой, либа при инициализации должна timeBeginPeriod(1) выставлять. Доселе я пробовал только 5мс UDP пакеты обрабатывать, получится ли с 1мс...вопрос

Здорово, что удалось накатить и стартануть прошивку!
Если найдете в ней баги, то пишите.
Так коллекционирование сообщений до задания конфигурации сети - это ж баг :) Фишка в том, что мой workflow заключается в том, что я разрабатываю обработчики трафика на мощных машинах, и уже потом запихиваю обработки в embedded, посему в моих процессах подход консольных манипуляций трафиком не применим, и глубже с этим девайсом я не полезу
Раз у вас есть плата JZ-F407VET6, то возьмите и портируйте на нее open-source проект PCAN-Pro-X.
Вот репозитории на выбор
https://github.com/mkelehk/pcan_pro_x_g431
https://github.com/moonglow/pcan_pro_x
https://github.com/eeshuibuxing/pcan_pro_x
Далее устанавливаете клиентский софт от Peak Systems, получаете бесплатный драйвер, бесплатную нормальную Windows клиентскую программу для прошивки (PCAN-View).
Вам не надо будет отдельно разрабатывать клиентскую утилиту. Вы просто берёте утилиту PCAN-View и драйвера.
Как бонус Win драйвер позволяет подключаться к прибору из нескольких приложений
Клиент на ПК для этих переходников используется для того, чтобы иметь достаточную вычислительную мощность, чтобы обрабатывать входящий и/или исходящий поток в режиме реального времени + его накапливать. На МК такое сделать проблематично. А файл с записью может быть легко более гигабайта за 1 сессию. Особенно в случае с FD и/или работе с целой сетью CAN, например, у автомобиля, где постоянно общаются десяток устройств. Поэтому, ваша схема интересна, но чтобы она имела хотя-бы какой-то практический смысл нужно как минимум добавлять ОЗУ (FSMC позволит вам прикрутить дешёвую и ёмкую SDRAM), прикручивать серьёзный скоростной накопитель (хотя-бы скоростную uSD, SDIO вам поможет) и плотно изучить набортное оборудование МК, чтобы разрулить все пути данных внутри по шинам под управлением DMA, высвобождая само ядро на, собственно, обработку данных и общение с пользователем.
Исходя из упомянутого выше резюмирую: если вы хотите автономное но в то же время достаточно полезное устройство, то используйте тандем из обычного и мощного МК. Например, RP2040+STM407. Или любую маленькую малинку с прикрученным CAN адаптером. Там вы сможете достаточно быстро и точно по времени управлять CANом и в то же время у вас будет достаточно вычислительной мощности для анализа и накопления данных. И при этом вы никак не будете привязаны к обычному ПК, вот буквально, к малинке же можно свой монитор прикрутить, верно?
поскольку некоторые пытаются использовать малинки и репки как десктоп, а can бывает интегрирован в чипсет то это уже даже и сделано. только linux очень хочет видеть can как сетевой адаптер то некоторая сокетная прослойка все таки возникает
тандем из обычного и мощного МК. Например, RP2040+STM407. Или любую маленькую малинку с прикрученным CAN адаптером.
Да. Видел такое решение на прошлой работе.
Там с Raspberry PI + CAN трансивера управляли тестировочным оборудованием внутри test-jig-и (8 отдельных плат) по CAN.
К test jig-е поочередно подключался ECU и так проверяли собранные на конвейре ECU (для управления кузовной электроникой).
Поэтому, ваша схема интересна
Спасибо.
А исходные файлы будут опубликованы ?
https://github.com/aabzel/Artifacts/tree/main/jz_f407vet6_can_gcc_m
кстати вспомнил из предыдущих обсуждений вообще esp32 с веб интерфейсом предлагали для такого, типа еще удобнее, нужен только смартфон. но через wifi/bt можно и обычную консоль
Оффтоп-вопрос: какой можете посоветовать CAN клиент на ПК, который на клиент будет похож, а не на студенческую курсовую? Сейчас пользуюсь Cangaroo и сильно страдаю(
Из требований: отображение трафика, возможность отправки своих пакетов (одноразово и циклически), возможность группировки и фильтрации пакетов по ID
Я пользуюсь аскетическим CANary, который в статье не заявлен. Он использует свои донглы, но я научился ими притворяться, поэтому делаю себе клоны сам.
Картинки
У него простой и понятный бинарный файл лога, который можно посмотреть родным же анализатором.
CANalyzer
Только вот он тормозной жутко почему-то. Учитывая, что софт канарейки может писать более 100МБ данных на диск, а анализатор даже 5МБ файл кубатурит минут 5, а если там много ID то и того дольше я тупо перестал использовать канализатор и написал свой.
Мой анализатор
Он умеет всё, что умеет CANalyzer, только открывает файлы логов почти всех самых известных CAN логгеров, грузит быстро лог даже под гигабайт размером, быстро работает GUI, количество цветов ID не ограничено (в оригинале только 4 ID можно раскрасить), добавил дельту времени, причём учитывается дельта между отображаемыми (отфильтрованными) ID. Есть сборщик пакетов KWP2000, UDS и т.д. Ну и я всегда могу туда что угодно добавить. Работает без установки.
По хорошему, нужно написать аналог и самого CANary, но пока времени нет. Дело в том, что CANary фильтрует устройства по издателю драйвера. Учитывая, что канарейка собрана на STM32F1, то фильтруются только vCOM от STMicrielectronics. А аналог хочу сделать чтобы он работал вообще с любым донглом, даже китайским.
Сейчас пользуюсь Cangaroo и сильно страдаю(
Аналогично.
BusMuster на всякий случай. в нем есть встроенный компилятор для плагинов.
В 26 году всё легко наруливается с помощью нейросетей и python, какой хотите клиент пилите, хоть графики, хоть трафики, хоть чего показывать будет
Переходник с USB на CAN из Отладочной Платы JZ-F407VET6