И еще, перед тем как придумывать свой протокол поверх CAN, гляньте ISO-TP, может понравится.
Из того, что сразу приходит на ум ещё, добавьте флаг перехода в загрузчик. Или просто в ram по заранее установленному адресу (при сбросе содержимое не сбрасывается) или флажок в backup-регистрах. Для перехода в бут просто ставим флаг и дергаем reset. Из загрузчика так же - снимаем флаг и дергаем reset. Это проще, чем сбрасывать всю переферию перед переходом :)
Под этот переходник есть candleLight. Это открытая прошивка, которая реализует драйвер gs_usb. В линуксе устройство будет работать через socket can. Я именно таким адаптером чаще всего пользуюсь. Когда прошивал, в основном коде candleLight поддержки этого МК не было, но на гитхабе есть форк с реализованной поддержкой. Возможно уже и в основную ветку влили.
А что за устройство, этот vector? Это какое-то общедоступное устройство, или конкретно для вас делают? Если делают для вас, то как они могут без согласования изменить протокол?
И не очень понятно, как команды загружаются с сервера. Клиент вышел к машине, нет интернета у него и у блока в автомобиле. Как приложение загрузит команды?
Просто поделиться способом: я для совмещения шаблона использую "кондуктор" напечатанный на 3д принтере. Я в солиде сделал параметрическую модель. Достаточно в уравнениях указать размеры платы и модель перестраивается. Ну плюс пол часа на печать.
При заказе шаблона у jlcpcb можно указать его габаритный размер. При этом сама плата размещается в центре шаблона.
В итоге шаблон можно не зажимать, он в кондукторе не шевелится.
Jlink не подойдёт для прошивки? Из bluepill можно сделать jlink-ob, возможно тогда не понадобится патчить openocd? Если конечно у jlink-ob есть поддержка jtag, а не только swd.
Экспортировать из kicad лучше в step. Вы получите нормальную геометрию с плоскостями и гранями, а не набор треугольников. Просто удобнее работать.
Ещё, из "удобных штук", мне понравилось использовать световоды. Можно использовать smd светодиод (я последнее время ws2812 предпочитаю) и разместить его где удобно, а на поверхность корпуса потом световодом вытащить.
Мы используем двухдиапазонные (L1+L2) приёмники uBlox F9P, но в будущем перейдём на более современные трёхдиапазонники (L1+L2+L5).
Пару лет назад экспериментировал с z9p и rtk, они по 200+$ стоили. В итоге отказался, частота обновления оказалась нужнее и вопрос передачи поправок часто стоял.
А какой приемник хотите использовать? И что на практике даст трехдиапазонник? Повышение точности?
Немного не по теме статьи, просто хотел бы поделиться, вдруг вам понравится. Я светодиоды применяю в smd виде. А для вывода на корпус использую световод диаметром 4мм. Из корпуса ничего не торчит, проще моделировать и паять, приятно светится. Просто как альтернатива запаянному выводному светодиоду.
Прочитав ваш комментарий пошел попробовать Lychee. У меня есть коллекция фото разложенная по папкам "Год -> Мероприятие". Судя по описанию, Lychee не умеет использовать произвольную структуру папок и надо все фотографии импортировать в базу Lychee. Оно там создает какую-то свою структуру папок не понятную. А что делать, если вдруг надо будет от Lychee отказаться? Ну там другой менеджер фото, или просто дать доступ к фото с телевизора или еще что угодно. Я не представляю, как потом из каши папок с непонятными именами вытаскивать и рассортировывать фото.
Поскольку вы фотограф (я вообще нет), возможно вы как-то решали эту проблему? Красивая и удобная вебморда к архиву фоток это здорово. Но хотелось бы их при этом в понятной структуре хранить.
Подозреваю, что там уже реализована поддержка протокола UBX и можно просто через device tree указать на каком uart приемник и использовать устройство /dev/gnss для получения координат.
У вас получилось настроить RTT на RISC-V? Я собрал китайский форк openocd с поддержкой RTT, но столкнулся с проблемой, что читать память можно только при остановленном ядре.
Если надумаете освоить stm32, есть готовый проект https://github.com/candle-usb/candleLight_fw Там вроде и по железу готовые есть проекты, но я себе свой собрал, с изолированным каном. Удобство этого в том, что в ядре линукса есть поддержка этого драйвера (gs_usb). Просто подключаете к ноуту, компьютеру, малине или чему удобно по usb, ifconfig и готово. Для простых задач есть cantools, а если его не хватает Savvycan. Ну и бонусом там всякие вещи, типа записи лога и последующего проигрывания его в виртуальный кан.
Если вам удобнее использовать esp32-c3, возможно есть готовая реализация gs_usb для этой платформы.
Как пример работы загрузчика через CAN, посмотрите OpenBLT https://www.feaser.com/openblt/doku.php?id=homepage
И еще, перед тем как придумывать свой протокол поверх CAN, гляньте ISO-TP, может понравится.
Из того, что сразу приходит на ум ещё, добавьте флаг перехода в загрузчик. Или просто в ram по заранее установленному адресу (при сбросе содержимое не сбрасывается) или флажок в backup-регистрах. Для перехода в бут просто ставим флаг и дергаем reset. Из загрузчика так же - снимаем флаг и дергаем reset. Это проще, чем сбрасывать всю переферию перед переходом :)
https://github.com/romainreignier/candleLight_fw/tree/add_weactstudio_usb2canfdv1
В ветке add_weactstudio_usb2canfdv1 есть цель для сборки WeActStudio_USB2CANFDV1_fw
Под этот переходник есть candleLight. Это открытая прошивка, которая реализует драйвер gs_usb. В линуксе устройство будет работать через socket can. Я именно таким адаптером чаще всего пользуюсь. Когда прошивал, в основном коде candleLight поддержки этого МК не было, но на гитхабе есть форк с реализованной поддержкой. Возможно уже и в основную ветку влили.
А что за устройство, этот vector? Это какое-то общедоступное устройство, или конкретно для вас делают? Если делают для вас, то как они могут без согласования изменить протокол?
И не очень понятно, как команды загружаются с сервера. Клиент вышел к машине, нет интернета у него и у блока в автомобиле. Как приложение загрузит команды?
Да, именно оно. Только у вас колонка sourced отключена.
Отличный плагин, очень удобно.
Да, очень удобно. Я с кикадом использую.
Если мы об одном и том же, то плагин готовит таблицу компонентов и для каждого компонента есть два чекбокса: sourced и placed.
Я сначала ищу пакетики с компонентами. Нашел - поставил галочку в sourced. Пакетики складываю в том порядке, как они в списке идут.
Потом наношу пасту и по очереди беру пакетик, высыпаю нужное количество компонентов, расставляю, ставлю галку placed.
Состояние "галочек" сохраняется, поэтому можно сегодня подобрать компоненты и сложить их, а паять потом.
Учитывая стоимость шаблона, я часто паяю так даже когда нужна всего одна небольшая плата. Просто удобнее процесс.
Просто поделиться способом: я для совмещения шаблона использую "кондуктор" напечатанный на 3д принтере. Я в солиде сделал параметрическую модель. Достаточно в уравнениях указать размеры платы и модель перестраивается. Ну плюс пол часа на печать.
При заказе шаблона у jlcpcb можно указать его габаритный размер. При этом сама плата размещается в центре шаблона.
В итоге шаблон можно не зажимать, он в кондукторе не шевелится.
Jlink не подойдёт для прошивки? Из bluepill можно сделать jlink-ob, возможно тогда не понадобится патчить openocd? Если конечно у jlink-ob есть поддержка jtag, а не только swd.
Добрый день. А целиком таблицей не поделитесь? У меня судя по набору пакетов такой же протокол обмена.
Они готовые есть, метражом продаются. Я использую диаметром 2 и 4 мм. Просто отрезаю сколько нужно.
Вот пример https://aliexpress.ru/item/1005003186394069.html
Схема на p-канальном мосфете не нравится?
Экспортировать из kicad лучше в step. Вы получите нормальную геометрию с плоскостями и гранями, а не набор треугольников. Просто удобнее работать.
Ещё, из "удобных штук", мне понравилось использовать световоды. Можно использовать smd светодиод (я последнее время ws2812 предпочитаю) и разместить его где удобно, а на поверхность корпуса потом световодом вытащить.
Пару лет назад экспериментировал с z9p и rtk, они по 200+$ стоили. В итоге отказался, частота обновления оказалась нужнее и вопрос передачи поправок часто стоял.
А какой приемник хотите использовать? И что на практике даст трехдиапазонник? Повышение точности?
Немного не по теме статьи, просто хотел бы поделиться, вдруг вам понравится. Я светодиоды применяю в smd виде. А для вывода на корпус использую световод диаметром 4мм. Из корпуса ничего не торчит, проще моделировать и паять, приятно светится. Просто как альтернатива запаянному выводному светодиоду.
Прочитав ваш комментарий пошел попробовать Lychee. У меня есть коллекция фото разложенная по папкам "Год -> Мероприятие". Судя по описанию, Lychee не умеет использовать произвольную структуру папок и надо все фотографии импортировать в базу Lychee. Оно там создает какую-то свою структуру папок не понятную. А что делать, если вдруг надо будет от Lychee отказаться? Ну там другой менеджер фото, или просто дать доступ к фото с телевизора или еще что угодно. Я не представляю, как потом из каши папок с непонятными именами вытаскивать и рассортировывать фото.
Поскольку вы фотограф (я вообще нет), возможно вы как-то решали эту проблему? Красивая и удобная вебморда к архиву фоток это здорово. Но хотелось бы их при этом в понятной структуре хранить.
Для этого АЦП есть драйвер в ядре. Зачем его на питоне то опрашивать из userspace? Проще же один раз настроить и просто читать из "файла".
А можно ссылку на модуль с М10?
В ядре линукса есть какая-то поддержка Ublox https://www.kernel.org/doc/Documentation/devicetree/bindings/gnss/u-blox.txt
Подозреваю, что там уже реализована поддержка протокола UBX и можно просто через device tree указать на каком uart приемник и использовать устройство /dev/gnss для получения координат.
У вас получилось настроить RTT на RISC-V? Я собрал китайский форк openocd с поддержкой RTT, но столкнулся с проблемой, что читать память можно только при остановленном ядре.
"Продолжаем открывать консоли и запускать телнеты. Запуск на порту 4444, позволит нам увидеть лог программы, полученный по RTT."
Видимо имеется ввиду порт 9090?
Если надумаете освоить stm32, есть готовый проект https://github.com/candle-usb/candleLight_fw Там вроде и по железу готовые есть проекты, но я себе свой собрал, с изолированным каном. Удобство этого в том, что в ядре линукса есть поддержка этого драйвера (gs_usb). Просто подключаете к ноуту, компьютеру, малине или чему удобно по usb, ifconfig и готово. Для простых задач есть cantools, а если его не хватает Savvycan. Ну и бонусом там всякие вещи, типа записи лога и последующего проигрывания его в виртуальный кан.
Если вам удобнее использовать esp32-c3, возможно есть готовая реализация gs_usb для этой платформы.