Набор блоков ESP32 CAN
- DrMario
- Лейтенант
- Сообщения: 378
- Зарегистрирован: 07 ноя 2016, 13:11
- Откуда: Камень-на-Оби
- Имя: Евгений
- Контактная информация:
Набор блоков ESP32 CAN
Есть альтернативный вариант библиотеки для встроенного в ESP32 CAN контроллера (CAN0). Есть возможность работы с внешними CAN контроллерами MCP2517FD или MCP2515 по шине SPI (CAN1).
https://github.com/collin80/esp32_can
Для работы потребуется установить дополнительно
https://github.com/collin80/can_common
Выбор чипа и настройки GPIO в библиотеке esp32_can в файлах esp32_can.cpp и esp32_can.h
В отличие от прежней версии библиотеки для встроенного ESP32 CAN контроллера, эта версия не зависает при физическом отсутствии или неисправной КАН шины.
https://github.com/collin80/esp32_can
Для работы потребуется установить дополнительно
https://github.com/collin80/can_common
Выбор чипа и настройки GPIO в библиотеке esp32_can в файлах esp32_can.cpp и esp32_can.h
В отличие от прежней версии библиотеки для встроенного ESP32 CAN контроллера, эта версия не зависает при физическом отсутствии или неисправной КАН шины.
-
- Полковник
- Сообщения: 3999
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 136 раз
- Поблагодарили: 149 раз
Набор блоков ESP32 CAN
Спасибо. А Вы не подключитесь к теме CAN на уровне тестирования и обучения в т.ч. и для STM32F103C. При необходимости мы были прислали необходимые контроллеры, стенды, MCP2515.DrMario писал(а): 25 мар 2023, 00:13 Есть альтернативный вариант библиотеки для встроенного в ESP32 CAN контроллера (CAN0). Есть возможность работы с внешними CAN контроллерами MCP2517FD или MCP2515 по шине SPI (CAN1).
И если можно, добавьте в тему справочные или учебные материалы для погружения для меня эту новую тему.
Спасибо.
Набор блоков ESP32 CAN
А я бы хотел поучаствовать в тестировании can, возьмете меня в банду?)ecoins писал(а): 25 мар 2023, 00:43Спасибо. А Вы не подключитесь к теме CAN на уровне тестирования и обучения в т.ч. и для STM32F103C. При необходимости мы были прислали необходимые контроллеры, стенды, MCP2515.DrMario писал(а): 25 мар 2023, 00:13 Есть альтернативный вариант библиотеки для встроенного в ESP32 CAN контроллера (CAN0). Есть возможность работы с внешними CAN контроллерами MCP2517FD или MCP2515 по шине SPI (CAN1).
И если можно, добавьте в тему справочные или учебные материалы для погружения для меня эту новую тему.
Спасибо.
-
- Полковник
- Сообщения: 3999
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 136 раз
- Поблагодарили: 149 раз
Набор блоков ESP32 CAN
Конечно в команду. Напишите мне в личку, мы оперативно свяжемся и быстро решим что нужно для начало работы, определим тестовую задачу. Было бы замечательно.
- dmitriydef
- Рядовой
- Сообщения: 20
- Зарегистрирован: 26 апр 2023, 20:59
- Откуда: Архангельск
- Имя: Дмитрий
- Контактная информация:
Набор блоков ESP32 CAN
[ref]DrMario[/ref], с какими трансиверами эти блоки точно работают? Я VD230 никакими бубнами не могу запустить. Пробовал от трёх разных поставщиков... ни в какую... Задача получить данные из CAN шины двигателя. С MCP2515 получается...
UPD: Залил готовый бинарник из ESP_CAN_Monitor.zip, работает с VD230... вижу данные из can шины, как надо. Значит дело не в железе:) Как эти блоки раздуплить? В какую сторону капать? Дайте пример на чтение для теста, плиз:) Которые в этой ветке выложены, не работают в моём случае...
UPD2: Сам с собой поговорю:) Если в блоке CAN Speed на старте поставить скорость 500KBPS, а в SWbps = 3 (нужные 250KBPS), то оно получает один пакет и на этом всё... Если на старте установить скорость отличную от 500KBPS, то ничего не произойдёт:) Что за ппц?
UPD3: А потому что... Если посмотреть код...
То логика получается следующая.
Мы в setup установили CAN_cfg.speed = CAN_SPEED_500KBPS;
Потом в loop прочитали данные.
Потом сделали ESP32Can.CANStop(); case 3: CAN_cfg.speed = CAN_SPEED_250KBPS;
Потом отправили данные.
И дальше по кругу на скорости 250KBPS....
То есть, тот единственный пакет, который я получил... это было на скорости 500KBPS... в то время как CAN шина работает на 250KBPS... Как так?:)
И, короче при CAN_cfg.speed = CAN_SPEED_500KBPS; всё работает:))) Сцуко, два дня убил на ребусы:)))
UPD: Залил готовый бинарник из ESP_CAN_Monitor.zip, работает с VD230... вижу данные из can шины, как надо. Значит дело не в железе:) Как эти блоки раздуплить? В какую сторону капать? Дайте пример на чтение для теста, плиз:) Которые в этой ветке выложены, не работают в моём случае...
UPD2: Сам с собой поговорю:) Если в блоке CAN Speed на старте поставить скорость 500KBPS, а в SWbps = 3 (нужные 250KBPS), то оно получает один пакет и на этом всё... Если на старте установить скорость отличную от 500KBPS, то ничего не произойдёт:) Что за ппц?
UPD3: А потому что... Если посмотреть код...
То логика получается следующая.
Мы в setup установили CAN_cfg.speed = CAN_SPEED_500KBPS;
Потом в loop прочитали данные.
Потом сделали ESP32Can.CANStop(); case 3: CAN_cfg.speed = CAN_SPEED_250KBPS;
Потом отправили данные.
И дальше по кругу на скорости 250KBPS....
То есть, тот единственный пакет, который я получил... это было на скорости 500KBPS... в то время как CAN шина работает на 250KBPS... Как так?:)
И, короче при CAN_cfg.speed = CAN_SPEED_500KBPS; всё работает:))) Сцуко, два дня убил на ребусы:)))
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Лейтенант
- Сообщения: 556
- Зарегистрирован: 04 июн 2022, 04:14
- Имя: Михаил
- Благодарил (а): 4 раза
- Поблагодарили: 9 раз
Набор блоков ESP32 CAN
Как у Вас успехи на этом поприще?
После неудачи с ModBus в своем проекте думаю попробовать CAN.
Есть два модуля MCP2515.
Сразу вопрос: можно ли вешать 2515 на ту же шину spi, что и регистры 165/595, или для CAN нужна отдельная шина?
Или может лучше применить преобразователь на TJA1050 и через UART?
И будет ли работать сеть, когда на одном конце TJA1050, а на другом MCP2515?
Пока темная для меня тема, но сам протокол, на первый взгляд, получше чем ModBus.
Буду разбираться.
-
- Полковник
- Сообщения: 3999
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 136 раз
- Поблагодарили: 149 раз
Набор блоков ESP32 CAN
Modbus будет работать - надо немного подождать.
Можно.WildCat писал(а): 09 мар 2024, 04:19 Сразу вопрос: можно ли вешать 2515 на ту же шину spi, что и регистры 165/595, или для CAN нужна отдельная шина?
Через UART CAN аппаратно не работает, для ESP32 есть блоки программного CAN (без MCP2515), не уверен что для этого нужно именно пины UART.WildCat писал(а): 09 мар 2024, 04:19 Или может лучше применить преобразователь на TJA1050 и через UART?
На мой взгляд лучше использовать аппаратный CAN MCP2515 или некоторые контроллеры имеют встроенный CAN (требуется только трансивер).
TJA1050 - это только трансивер(преобразователь уровней), примерно как RS485 c чипом max485.WildCat писал(а): 09 мар 2024, 04:19 И будет ли работать сеть, когда на одном конце TJA1050, а на другом MCP2515?
MCP2515 - это только чип SPI->CAN без преобразователя уровней.
На синей плате с али установлены MC2515 и трансивер TJA1050.
Пока используем стандартные блоки CAN из FLProg.
-
- Лейтенант
- Сообщения: 556
- Зарегистрирован: 04 июн 2022, 04:14
- Имя: Михаил
- Благодарил (а): 4 раза
- Поблагодарили: 9 раз
Набор блоков ESP32 CAN
[ref]DrMario[/ref],
Ваши блоки на указанной библиотеке поддерживают весь функционал can шины? Арбитраж библиотекой исполняется?
Ваши блоки на указанной библиотеке поддерживают весь функционал can шины? Арбитраж библиотекой исполняется?
-
- Лейтенант
- Сообщения: 556
- Зарегистрирован: 04 июн 2022, 04:14
- Имя: Михаил
- Благодарил (а): 4 раза
- Поблагодарили: 9 раз
Набор блоков ESP32 CAN
А есть ли какой-то способ использовать штатный блок mcp2515 для esp32? При выборе есп32 штатный блок пропадает.
Собрал can шину, на esp32 трансивер TJA1050 с блоками от DrMario, а с другой стороны Ардуино Нано с платой mcp2515.
Проблема в том, что блоки из этой темы для есп32 сильно тормозят контроллер, хотелось использовать апппратный контроллер шины.
- DrMario
- Лейтенант
- Сообщения: 378
- Зарегистрирован: 07 ноя 2016, 13:11
- Откуда: Камень-на-Оби
- Имя: Евгений
- Контактная информация:
Набор блоков ESP32 CAN
На встроенном в ESP32 CAN чипе тормозов со скоростью не замечал. Попробуйте скомпилировать проект с такими настройками, или поставить такую версию ядра.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Полковник
- Сообщения: 3999
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 136 раз
- Поблагодарили: 149 раз
Набор блоков ESP32 CAN
Действительно пропадает - это связано с тем, что изначально он был ориентирован на пины SPI AVR.WildCat писал(а): 11 мар 2024, 01:09 А есть ли какой-то способ использовать штатный блок mcp2515 для esp32? При выборе есп32 штатный блок пропадает.
Под STM, RP2040 - разработчик блоки MCP2515 сделал, а под ESP32 не успел или пропустил..
В новой версии FLProg 8.3.x интерфейсы отвязаны от блоков и наверное это вопрос будет разрешен сам собой.
Набор блоков ESP32 CAN
судя по схемам почему то все используют пины 4-5 это принципиально ?
судя по спецыфикации они даже не уарт и не какиенибудь апаратники
или можно прописать любые пины ?
судя по спецыфикации они даже не уарт и не какиенибудь апаратники
или можно прописать любые пины ?
Re: Набор блоков ESP32 CAN
Добрый день! У кого-то работает на Esp32 can шина хоть в каком то варианте или в какой-то конфигурации ? Перепробовал разные версии флпрог и разные версии подключения ,куча железа результат ноль! Или подскажите как подружить Esp32 и mcp2515 . Пожалуйста)
- fefar51702
- Сержант
- Сообщения: 248
- Зарегистрирован: 26 июн 2022, 07:35
- Имя: Валера
- Благодарил (а): 1 раз
- Поблагодарили: 5 раз
Re: Набор блоков ESP32 CAN
мы в пайтоне тестили кан заняло меньше часа что бы разобраться что это такое и как оно работает
на обычной библиотеке работает вроде как на любых пинах все не пробовали но привязываться к уарту необязательно там как прописано у неё разве что если для максимальной скорости но не каждому нужен такой обьём движения
если автор захочет то вписать кан блок в основу сложностей не составит тем более раз он разобрался как это работает
на обычной библиотеке работает вроде как на любых пинах все не пробовали но привязываться к уарту необязательно там как прописано у неё разве что если для максимальной скорости но не каждому нужен такой обьём движения
если автор захочет то вписать кан блок в основу сложностей не составит тем более раз он разобрался как это работает
Re: Набор блоков ESP32 CAN
Немного разобрался почему-то если esp32-d0wdq6 это старый чип и версия платы в ide до 2.02 то can работает прекрасно с любым трансивером! Но если обновлённый esp32 -d0wd v3 то can не работает практически, или на очень маленькой скорости и то раза с десятого и на короткое время. А найти ESP32 со старым чипом проблематично! Может кто-то может подкорректировать блоки !?
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя