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

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

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

Сообщение DrMario »

Есть альтернативный вариант библиотеки для встроенного в 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
Полковник
Сообщения: 3999
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 136 раз
Поблагодарили: 149 раз

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

Сообщение ecoins »

DrMario писал(а): 25 мар 2023, 00:13 Есть альтернативный вариант библиотеки для встроенного в ESP32 CAN контроллера (CAN0). Есть возможность работы с внешними CAN контроллерами MCP2517FD или MCP2515 по шине SPI (CAN1).
Спасибо. А Вы не подключитесь к теме CAN на уровне тестирования и обучения в т.ч. и для STM32F103C. При необходимости мы были прислали необходимые контроллеры, стенды, MCP2515.
И если можно, добавьте в тему справочные или учебные материалы для погружения для меня эту новую тему.
Спасибо.
Aviacode
Рядовой
Сообщения: 41
Зарегистрирован: 15 фев 2021, 15:04
Имя: Серго
Благодарил (а): 1 раз

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

Сообщение Aviacode »

ecoins писал(а): 25 мар 2023, 00:43
DrMario писал(а): 25 мар 2023, 00:13 Есть альтернативный вариант библиотеки для встроенного в ESP32 CAN контроллера (CAN0). Есть возможность работы с внешними CAN контроллерами MCP2517FD или MCP2515 по шине SPI (CAN1).
Спасибо. А Вы не подключитесь к теме CAN на уровне тестирования и обучения в т.ч. и для STM32F103C. При необходимости мы были прислали необходимые контроллеры, стенды, MCP2515.
И если можно, добавьте в тему справочные или учебные материалы для погружения для меня эту новую тему.
Спасибо.
А я бы хотел поучаствовать в тестировании can, возьмете меня в банду?)
ecoins
Полковник
Сообщения: 3999
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 136 раз
Поблагодарили: 149 раз

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

Сообщение ecoins »

Aviacode писал(а): 25 мар 2023, 00:51 меня в банду?)
Конечно в команду. Напишите мне в личку, мы оперативно свяжемся и быстро решим что нужно для начало работы, определим тестовую задачу. Было бы замечательно.
Аватара пользователя
dmitriydef
Рядовой
Сообщения: 20
Зарегистрирован: 26 апр 2023, 20:59
Откуда: Архангельск
Имя: Дмитрий
Контактная информация:

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

Сообщение dmitriydef »

[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; всё работает:))) Сцуко, два дня убил на ребусы:)))
У вас нет необходимых прав для просмотра вложений в этом сообщении.
WildCat
Лейтенант
Сообщения: 556
Зарегистрирован: 04 июн 2022, 04:14
Имя: Михаил
Благодарил (а): 4 раза
Поблагодарили: 9 раз

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

Сообщение WildCat »

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

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

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

Буду разбираться.
ecoins
Полковник
Сообщения: 3999
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 136 раз
Поблагодарили: 149 раз

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

Сообщение ecoins »

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

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

Сообщение WildCat »

[ref]DrMario[/ref],
Ваши блоки на указанной библиотеке поддерживают весь функционал can шины? Арбитраж библиотекой исполняется?
WildCat
Лейтенант
Сообщения: 556
Зарегистрирован: 04 июн 2022, 04:14
Имя: Михаил
Благодарил (а): 4 раза
Поблагодарили: 9 раз

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

Сообщение WildCat »

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

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

Проблема в том, что блоки из этой темы для есп32 сильно тормозят контроллер, хотелось использовать апппратный контроллер шины.
Аватара пользователя
DrMario
Лейтенант
Сообщения: 378
Зарегистрирован: 07 ноя 2016, 13:11
Откуда: Камень-на-Оби
Имя: Евгений
Контактная информация:

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

Сообщение DrMario »

На встроенном в ESP32 CAN чипе тормозов со скоростью не замечал. Попробуйте скомпилировать проект с такими настройками, или поставить такую версию ядра.
Снимок экрана 2024-03-11 073605.png
Снимок экрана 2024-03-11 073318.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.
WildCat
Лейтенант
Сообщения: 556
Зарегистрирован: 04 июн 2022, 04:14
Имя: Михаил
Благодарил (а): 4 раза
Поблагодарили: 9 раз

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

Сообщение WildCat »

[ref]DrMario[/ref], спасибо, завтра попробую.
ecoins
Полковник
Сообщения: 3999
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 136 раз
Поблагодарили: 149 раз

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

Сообщение ecoins »

WildCat писал(а): 11 мар 2024, 01:09 А есть ли какой-то способ использовать штатный блок mcp2515 для esp32? При выборе есп32 штатный блок пропадает.
Действительно пропадает - это связано с тем, что изначально он был ориентирован на пины SPI AVR.
Под STM, RP2040 - разработчик блоки MCP2515 сделал, а под ESP32 не успел или пропустил..
В новой версии FLProg 8.3.x интерфейсы отвязаны от блоков и наверное это вопрос будет разрешен сам собой.
Mazur
Рядовой
Сообщения: 71
Зарегистрирован: 31 авг 2023, 13:43
Имя: Денис

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

Сообщение Mazur »

судя по схемам почему то все используют пины 4-5 это принципиально ?
судя по спецыфикации они даже не уарт и не какиенибудь апаратники

или можно прописать любые пины ?
Аватара пользователя
diman27
Сержант
Сообщения: 291
Зарегистрирован: 06 сен 2015, 07:33
Откуда: Белово
Благодарил (а): 4 раза

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

Сообщение diman27 »

А можно в блоки добавить поддержку ESP32-S2? Нет возможности выбора пинов.
ostamah
Рядовой
Сообщения: 5
Зарегистрирован: 10 янв 2020, 14:41
Имя: Алекс

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

Сообщение ostamah »

Добрый день! У кого-то работает на Esp32 can шина хоть в каком то варианте или в какой-то конфигурации ? Перепробовал разные версии флпрог и разные версии подключения ,куча железа результат ноль! Или подскажите как подружить Esp32 и mcp2515 . Пожалуйста)
Аватара пользователя
fefar51702
Сержант
Сообщения: 248
Зарегистрирован: 26 июн 2022, 07:35
Имя: Валера
Благодарил (а): 1 раз
Поблагодарили: 5 раз

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

Сообщение fefar51702 »

мы в пайтоне тестили кан заняло меньше часа что бы разобраться что это такое и как оно работает
на обычной библиотеке работает вроде как на любых пинах все не пробовали но привязываться к уарту необязательно там как прописано у неё разве что если для максимальной скорости но не каждому нужен такой обьём движения
если автор захочет то вписать кан блок в основу сложностей не составит тем более раз он разобрался как это работает
ostamah
Рядовой
Сообщения: 5
Зарегистрирован: 10 янв 2020, 14:41
Имя: Алекс

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

Сообщение ostamah »

Немного разобрался почему-то если esp32-d0wdq6 это старый чип и версия платы в ide до 2.02 то can работает прекрасно с любым трансивером! Но если обновлённый esp32 -d0wd v3 то can не работает практически, или на очень маленькой скорости и то раза с десятого и на короткое время. А найти ESP32 со старым чипом проблематично! Может кто-то может подкорректировать блоки !?
Ответить

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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя