Набор блоков ESP32 CAN

Отправка, прием и фильтрация пакетов CAN Bus

Блоки с разделением на ESP32/ESP8266 а так же совместные
Аватара пользователя
DrMario
Лейтенант
Сообщения: 371
Зарегистрирован: 07.11.2016{, 13:11}
Репутация: 58
Откуда: Камень-на-Оби
Имя: Евгений
Контактная информация:

Набор блоков ESP32 CAN

#21

Сообщение DrMario » 25.03.2023{, 00:13}

Есть альтернативный вариант библиотеки для встроенного в 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 контроллера, эта версия не зависает при физическом отсутствии или неисправной КАН шины.

ecoins
Полковник
Сообщения: 2924
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Набор блоков ESP32 CAN

#22

Сообщение ecoins » 25.03.2023{, 00:43}

DrMario писал(а):
25.03.2023{, 00:13}
Есть альтернативный вариант библиотеки для встроенного в ESP32 CAN контроллера (CAN0). Есть возможность работы с внешними CAN контроллерами MCP2517FD или MCP2515 по шине SPI (CAN1).
Спасибо. А Вы не подключитесь к теме CAN на уровне тестирования и обучения в т.ч. и для STM32F103C. При необходимости мы были прислали необходимые контроллеры, стенды, MCP2515.
И если можно, добавьте в тему справочные или учебные материалы для погружения для меня эту новую тему.
Спасибо.

Aviacode
Рядовой
Сообщения: 37
Зарегистрирован: 15.02.2021{, 15:04}
Репутация: 1
Имя: Серго

Набор блоков ESP32 CAN

#23

Сообщение Aviacode » 25.03.2023{, 00:51}

ecoins писал(а):
25.03.2023{, 00:43}
DrMario писал(а):
25.03.2023{, 00:13}
Есть альтернативный вариант библиотеки для встроенного в ESP32 CAN контроллера (CAN0). Есть возможность работы с внешними CAN контроллерами MCP2517FD или MCP2515 по шине SPI (CAN1).
Спасибо. А Вы не подключитесь к теме CAN на уровне тестирования и обучения в т.ч. и для STM32F103C. При необходимости мы были прислали необходимые контроллеры, стенды, MCP2515.
И если можно, добавьте в тему справочные или учебные материалы для погружения для меня эту новую тему.
Спасибо.
А я бы хотел поучаствовать в тестировании can, возьмете меня в банду?)

ecoins
Полковник
Сообщения: 2924
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Набор блоков ESP32 CAN

#24

Сообщение ecoins » 25.03.2023{, 01:06}

Aviacode писал(а):
25.03.2023{, 00:51}
меня в банду?)
Конечно в команду. Напишите мне в личку, мы оперативно свяжемся и быстро решим что нужно для начало работы, определим тестовую задачу. Было бы замечательно.

Аватара пользователя
dmitriydef
Рядовой
Сообщения: 20
Зарегистрирован: 26.04.2023{, 20:59}
Репутация: 2
Откуда: Архангельск
Имя: Дмитрий
Контактная информация:

Набор блоков ESP32 CAN

#25

Сообщение dmitriydef » 01.03.2024{, 09:58}

DrMario, с какими трансиверами эти блоки точно работают? Я 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; всё работает:))) Сцуко, два дня убил на ребусы:)))
Вложения
ESP32_SN65HVD230_CAN_Read_for_test.flp
(2.7 МБ) 8 скачиваний
ESP_CAN_Monitor.zip
(2.38 МБ) 13 скачиваний

WildCat
Лейтенант
Сообщения: 425
Зарегистрирован: 04.06.2022{, 04:14}
Репутация: 48
Имя: Михаил

Набор блоков ESP32 CAN

#26

Сообщение WildCat » 09.03.2024{, 04:19}

ecoins писал(а):
24.03.2023{, 21:51}
Мы пока начнем пробовать с MCP2515.
Как у Вас успехи на этом поприще?

После неудачи с ModBus в своем проекте думаю попробовать CAN.
Есть два модуля MCP2515.
Сразу вопрос: можно ли вешать 2515 на ту же шину spi, что и регистры 165/595, или для CAN нужна отдельная шина?
Или может лучше применить преобразователь на TJA1050 и через UART?
И будет ли работать сеть, когда на одном конце TJA1050, а на другом MCP2515?

Пока темная для меня тема, но сам протокол, на первый взгляд, получше чем ModBus.

Буду разбираться.

ecoins
Полковник
Сообщения: 2924
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Набор блоков ESP32 CAN

#27

Сообщение ecoins » 09.03.2024{, 09:08}

WildCat писал(а):
09.03.2024{, 04:19}
После неудачи с ModBus в своем проекте думаю попробовать CAN.
Modbus будет работать - надо немного подождать.
WildCat писал(а):
09.03.2024{, 04:19}
Сразу вопрос: можно ли вешать 2515 на ту же шину spi, что и регистры 165/595, или для CAN нужна отдельная шина?
Можно.
WildCat писал(а):
09.03.2024{, 04:19}
Или может лучше применить преобразователь на TJA1050 и через UART?
Через UART CAN аппаратно не работает, для ESP32 есть блоки программного CAN (без MCP2515), не уверен что для этого нужно именно пины UART.
На мой взгляд лучше использовать аппаратный CAN MCP2515 или некоторые контроллеры имеют встроенный CAN (требуется только трансивер).
WildCat писал(а):
09.03.2024{, 04:19}
И будет ли работать сеть, когда на одном конце TJA1050, а на другом MCP2515?
TJA1050 - это только трансивер(преобразователь уровней), примерно как RS485 c чипом max485.
MCP2515 - это только чип SPI->CAN без преобразователя уровней.
На синей плате с али установлены MC2515 и трансивер TJA1050.
WildCat писал(а):
09.03.2024{, 04:19}
Как у Вас успехи на этом поприще?
Пока используем стандартные блоки CAN из FLProg.

WildCat
Лейтенант
Сообщения: 425
Зарегистрирован: 04.06.2022{, 04:14}
Репутация: 48
Имя: Михаил

Набор блоков ESP32 CAN

#28

Сообщение WildCat » 09.03.2024{, 21:28}

DrMario,
Ваши блоки на указанной библиотеке поддерживают весь функционал can шины? Арбитраж библиотекой исполняется?

WildCat
Лейтенант
Сообщения: 425
Зарегистрирован: 04.06.2022{, 04:14}
Репутация: 48
Имя: Михаил

Набор блоков ESP32 CAN

#29

Сообщение WildCat » 11.03.2024{, 01:09}

ecoins писал(а):
09.03.2024{, 09:08}
Пока используем стандартные блоки CAN из FLProg.
А есть ли какой-то способ использовать штатный блок mcp2515 для esp32? При выборе есп32 штатный блок пропадает.

Собрал can шину, на esp32 трансивер TJA1050 с блоками от DrMario, а с другой стороны Ардуино Нано с платой mcp2515.

Проблема в том, что блоки из этой темы для есп32 сильно тормозят контроллер, хотелось использовать апппратный контроллер шины.

Аватара пользователя
DrMario
Лейтенант
Сообщения: 371
Зарегистрирован: 07.11.2016{, 13:11}
Репутация: 58
Откуда: Камень-на-Оби
Имя: Евгений
Контактная информация:

Набор блоков ESP32 CAN

#30

Сообщение DrMario » 11.03.2024{, 03:39}

На встроенном в ESP32 CAN чипе тормозов со скоростью не замечал. Попробуйте скомпилировать проект с такими настройками, или поставить такую версию ядра.
Снимок экрана 2024-03-11 073605.png
Ядро
Снимок экрана 2024-03-11 073605.png (8.56 КБ) 266 просмотров
Снимок экрана 2024-03-11 073318.png
Настройки IDE

WildCat
Лейтенант
Сообщения: 425
Зарегистрирован: 04.06.2022{, 04:14}
Репутация: 48
Имя: Михаил

Набор блоков ESP32 CAN

#31

Сообщение WildCat » 11.03.2024{, 03:57}

DrMario, спасибо, завтра попробую.

ecoins
Полковник
Сообщения: 2924
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Набор блоков ESP32 CAN

#32

Сообщение ecoins » 11.03.2024{, 07:08}

WildCat писал(а):
11.03.2024{, 01:09}
А есть ли какой-то способ использовать штатный блок mcp2515 для esp32? При выборе есп32 штатный блок пропадает.
Действительно пропадает - это связано с тем, что изначально он был ориентирован на пины SPI AVR.
Под STM, RP2040 - разработчик блоки MCP2515 сделал, а под ESP32 не успел или пропустил..
В новой версии FLProg 8.3.x интерфейсы отвязаны от блоков и наверное это вопрос будет разрешен сам собой.

Ответить

Вернуться в «Блоки для ESP32/ESP8266»