Страница 2 из 2

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

Добавлено: 25 мар 2023, 00:13
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 контроллера, эта версия не зависает при физическом отсутствии или неисправной КАН шины.

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

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

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

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

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

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

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

Добавлено: 01 мар 2024, 09:58
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; всё работает:))) Сцуко, два дня убил на ребусы:)))

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

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

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

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

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

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

Добавлено: 09 мар 2024, 09:08
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.

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

Добавлено: 09 мар 2024, 21:28
WildCat
[ref]DrMario[/ref],
Ваши блоки на указанной библиотеке поддерживают весь функционал can шины? Арбитраж библиотекой исполняется?

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

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

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

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

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

Добавлено: 11 мар 2024, 03:39
DrMario
На встроенном в ESP32 CAN чипе тормозов со скоростью не замечал. Попробуйте скомпилировать проект с такими настройками, или поставить такую версию ядра.
Снимок экрана 2024-03-11 073605.png
Снимок экрана 2024-03-11 073318.png

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

Добавлено: 11 мар 2024, 03:57
WildCat
[ref]DrMario[/ref], спасибо, завтра попробую.

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

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

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

Добавлено: 25 июн 2024, 11:16
Mazur
судя по схемам почему то все используют пины 4-5 это принципиально ?
судя по спецыфикации они даже не уарт и не какиенибудь апаратники

или можно прописать любые пины ?

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

Добавлено: 09 июл 2024, 18:47
diman27
А можно в блоки добавить поддержку ESP32-S2? Нет возможности выбора пинов.

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

Добавлено: 10 окт 2024, 12:19
ostamah
Добрый день! У кого-то работает на Esp32 can шина хоть в каком то варианте или в какой-то конфигурации ? Перепробовал разные версии флпрог и разные версии подключения ,куча железа результат ноль! Или подскажите как подружить Esp32 и mcp2515 . Пожалуйста)

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

Добавлено: 11 окт 2024, 10:09
fefar51702
мы в пайтоне тестили кан заняло меньше часа что бы разобраться что это такое и как оно работает
на обычной библиотеке работает вроде как на любых пинах все не пробовали но привязываться к уарту необязательно там как прописано у неё разве что если для максимальной скорости но не каждому нужен такой обьём движения
если автор захочет то вписать кан блок в основу сложностей не составит тем более раз он разобрался как это работает

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

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