• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Нужна помощь CAN в ESP32

Andrey_w

New member
Подскажите где найти примеры использования шины CAN на ESP32.

У ESP32 заявлена апаратная поддержка CAN 2.0 но пинов под неё нигде не показано, да и примеров или библиотек в нете найти не удалось, всё что есть только с помощью сторонних чипов....

Есть elm327, можно по блютусу с него читать, но так не интересно.
 

ШВЕД

New member
Уважаемые господа,
Прошу помощи по аналогичному вопросу - ESP32 WROOM32 умеет работать с CAN или нет?????? В ситуации видится какой-то заговор посвященных! С одной стороны, на сайте espressif вдоль и поперек упоминается поддержка CAN2.0 на всех чипах ESP-32 (без каких-либо ограничений по маркировке). Там же есть SDK, в котором прописан API по работе с CAN: https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/can.html
Но в то же время в даташите на ESP32 WROOM-32 нету ни одной ноги, промаркированной хотя бы с отдаленным намеком на CAN!
Дальнейшие попытки найти распиновку с CAN ногами ни к чему не привели (яндекс+гугл картинки тоже).
У меня есть на руках ESP32 WROOM32 devkit V1, но там тоже нету никаких маркировок CAN.

3885.750@2x[1].jpg


Наконец, встречаются посты у буржуев, из которых следует, что CAN у кого-то все же есть.
В частности тут: http://www.iotsharing.com/2017/09/how-to-use-arduino-esp32-can-interface.html
Однако там упоминается "ESP32 VP231". Такого зверя найти не удалось.
Есть еще какая-то плата без антенны (?), но на ней CAN у одного буржуя-дипломника работал:

13907-01[1].jpg

Очень прошу опытных товарищей дать 3 ответа:
(1) на ESP32 WROOM32 есть аппаратный контроллер CAN? Если да, то какие ноги?
(2) если нет, то на какие альтернативы среди чипов ESP32 стоит попытаться перейти?
(3) наконец, на кого стоит обратить внимание помимо ESP32/ESP8266 в случае, если с CAN тут беда?
// для всех случаев необходим WiFi и хотя бы один железный CAN и SPI.

Надеюсь на вашу помощь.
 

kvarc

New member
В примерах isp-idf (isp-idf/examples/peripherals/can) указаны GPIO 21/22 как TX/RX для CAN. Но все равно требуется внешний приемопередатчик, например mcp2551 или, как указано в в вашей же ссылке от espressif, SN65HVD23X. Да и писать обработчик придется писать самому - реализаций протоколов обмена у производителей очень много и без реверса не обойтись. Много времени как-то потратил, пытаясь соорудить читалку в машину. Что-то получилось, что-то нет... Бросил.
 

kvarc

New member
Добавлю - был вопрос про наличие/отсутствия аппаратного can-котнтроллера в esp32. Его нет. CAN-протокол, как, сосбно, и почти все в esp, реализован ногодрыгом )
 

ШВЕД

New member
Спасибо большое, что откликнулись!

Под "железным" CAN я подразумевал аналогичную периферию, как, например, у STM32 (3 слота на отправку, 2 буфера на прием, пучок фильтров итд). Естественно, это не снимает необходимость внешнего трансивера (MCP/SN65/TJA/итд).
Мне важно, чтобы я мог 2 ноги (RX/TX) ESP32 соединить с трансивером, и они друг друга поняли. А уж как это реализовано внутри ESP32 (хардварно или программно) - мне без разницы. Главное, чтобы API предоставлял мне возможность работы с CAN.

В общем, делаю вывод, что CAN в таком качестве работать должен. Это хорошо.
Плохо то, что явно и четко нигде не указано, какие ноги под это дело нужно использовать. У буржуев видел GPIO04/05. Вы упомялнули 21/22.
Что ж, буду экспериментировать.
Больше спасибо за быстрый ответ! Всем удачи!
 

nabiullin

New member
поделитесь пожалуйста, кто что смог сделать по использованию CAN на ESP32
 
Сверху Снизу