Вопрос по CAN шине.

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

Вопрос по CAN шине.

#21

Сообщение DrMario » 30.08.2023{, 08:46}

В библиотеке ESP32-Arduino-CAN-Ok по этой ссылке viewtopic.php?t=6950
есть файл CAN_config.h
В этом файле добавьте скорость 25, должно получится так:
CAN_SPEED_25KBPS = 25, /**< \brief CAN Node runs at 25kBit/s. */
CAN_SPEED_100KBPS = 100, /**< \brief CAN Node runs at 100kBit/s. */
CAN_SPEED_125KBPS = 125, /**< \brief CAN Node runs at 125kBit/s. */
CAN_SPEED_200KBPS = 200, /**< \brief CAN Node runs at 250kBit/s. */
CAN_SPEED_250KBPS = 250, /**< \brief CAN Node runs at 250kBit/s. */
CAN_SPEED_500KBPS = 500, /**< \brief CAN Node runs at 500kBit/s. */
CAN_SPEED_800KBPS = 800, /**< \brief CAN Node runs at 800kBit/s. */
CAN_SPEED_1000KBPS = 1000 /**< \brief CAN Node runs at 1000kBit/s. */
Дописать скорость в блоках дело техники и внимательности

Аватара пользователя
Brama
Рядовой
Сообщения: 56
Зарегистрирован: 02.07.2020{, 14:27}
Репутация: 5
Откуда: Уфа
Имя: Сергей

Вопрос по CAN шине.

#22

Сообщение Brama » 30.08.2023{, 09:01}

DrMario, спасибо. :) Буду пробовать. Закажу трансивер.
__
Не ожидал, что с первого раза заведется.
Для пробы.
СпойлерПоказать
время.jpg
СпойлерПоказать
попытка1.jpg
Предстоит множества данных вывести на дисплей 1602.
Думаю, в проекте будет куча переменных.

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

Вопрос по CAN шине.

#23

Сообщение DrMario » 30.08.2023{, 10:13}

Brama писал(а):
30.08.2023{, 09:01}
Предстоит множества данных вывести на дисплей 1602.
А зачем такие сложности? Данные можно выводить на веб интерфейс, например ESPUI

Аватара пользователя
Brama
Рядовой
Сообщения: 56
Зарегистрирован: 02.07.2020{, 14:27}
Репутация: 5
Откуда: Уфа
Имя: Сергей

Вопрос по CAN шине.

#24

Сообщение Brama » 30.08.2023{, 11:58}

DrMario писал(а):
30.08.2023{, 08:46}
Данные можно выводить на веб интерфейс,
В перспективе есть такое.

Аватара пользователя
Brama
Рядовой
Сообщения: 56
Зарегистрирован: 02.07.2020{, 14:27}
Репутация: 5
Откуда: Уфа
Имя: Сергей

Вопрос по CAN шине.

#25

Сообщение Brama » 01.09.2023{, 14:38}

Brama писал(а):
15.08.2023{, 23:14}
драйвер TJF1051/T3
Что то не велик ассортимент этого девайса в алиэкспресс. В основном опт.
А обычный готовый модуль TJA1050 подойдёт? Порты ESP32 толерантны к потенциалу 5 вольт?
Просто этот модуль есть у меня имеется в наличии.

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

Вопрос по CAN шине.

#26

Сообщение DrMario » 03.09.2023{, 06:23}

Brama писал(а):
01.09.2023{, 14:38}
А обычный готовый модуль TJA1050 подойдёт? Порты ESP32 толерантны к потенциалу 5 вольт?
Для ESP32 TJA1050 не подойдет, выйдет из строя канал Rx в контроллере (проверено). Нужен именно TJA1050/T3 или ее аналог TPT1051V-SO1R.
На алиэкспресс покупал TJA1050/T3 но по факту выслали 5 вольтовый TJA1050. В результате спалил два ESP32.

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

Вопрос по CAN шине.

#27

Сообщение ecoins » 04.09.2023{, 11:43}

DrMario писал(а):
03.09.2023{, 06:23}
ее аналог TPT1051V-SO1R.
А этот чип работает только на 3V или и 5V?

ggen4ik
Рядовой
Сообщения: 19
Зарегистрирован: 09.02.2022{, 17:34}
Репутация: 1
Имя: Evgeny

Вопрос по CAN шине.

#28

Сообщение ggen4ik » 04.09.2023{, 19:43}

DrMario писал(а):
03.09.2023{, 06:23}
Brama писал(а):
01.09.2023{, 14:38}
А обычный готовый модуль TJA1050 подойдёт? Порты ESP32 толерантны к потенциалу 5 вольт?
Для ESP32 TJA1050 не подойдет, выйдет из строя канал Rx в контроллере (проверено). Нужен именно TJA1050/T3 или ее аналог TPT1051V-SO1R.
На алиэкспресс покупал TJA1050/T3 но по факту выслали 5 вольтовый TJA1050. В результате спалил два ESP32.
Если брать на алике, то тогда стоит уже обновленную версию брать TJA1051T/3.
А за TPT1051V-SO1R спасибо, нужно будет попробовать, тем более в чипдипе в наличии за 45 руб.

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

Вопрос по CAN шине.

#29

Сообщение DrMario » 05.09.2023{, 02:25}

Проверенные схемы включения драйвера TJA1051. Драйверы на 3,3 вольта, типа VP232 (SN65HVD232) работают хуже. На некоторых КАН шинах нет обмена - не хватает амплитуды CANH-CANL.
Вложения
Снимок экрана 2023-09-05 061316.png

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

Вопрос по CAN шине.

#30

Сообщение ecoins » 05.09.2023{, 04:56}

DrMario писал(а):
05.09.2023{, 02:25}
Проверенные схемы включения драйвера TJA1051. Драйверы на 3,3 вольта, типа VP232 (SN65HVD232) работают хуже. На некоторых КАН шинах нет обмена - не хватает амплитуды CANH-CANL.
Большое спасибо.
Из приведенной схемы для TJA1051 вытекает, что добавление резистора 120 ом вместе со стабилитроном 3.3v на вход RX ESP32 решает проблему согласования уровней.
Немного смущает не понимание параметров быстродействия стабилитрона - на на этих скоростях наверное все будет нормально.
Вопрос 1: мне попадались подобные схемы согласования для ESP32 без стабилитрона - возможно ли это в Вашей схем?
Вопрос 2: По Вашей схеме отсутствует mcp2515? Как-то сказывается это на надежности и быстродействие обмена?

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

Вопрос по CAN шине.

#31

Сообщение DrMario » 05.09.2023{, 14:09}

ecoins писал(а):
05.09.2023{, 04:56}
Из приведенной схемы для TJA1051 вытекает, что добавление резистора 120 ом вместе со стабилитроном 3.3v на вход RX ESP32 решает проблему согласования уровней.
Немного смущает не понимание параметров быстродействия стабилитрона - на на этих скоростях наверное все будет нормально.
Я выше говорил, что схема проверена. Быстродействие стабилитрона не имеет значения, он просто ограничит напряжение до номинального.

Отправлено спустя 4 минуты 11 секунд:
ecoins писал(а):
05.09.2023{, 04:56}
Вопрос 2: По Вашей схеме отсутствует mcp2515? Как-то сказывается это на надежности и быстродействие обмена?
Если использовать встроенный CAN ESP32, то mcp2515 не нужен. Встроенный работает ничуть не хуже

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

Вопрос по CAN шине.

#32

Сообщение Aviacode » 07.09.2023{, 16:50}

DrMario писал(а):
05.09.2023{, 14:13}
Встроенный работает ничуть не хуже
Встроенный жутко тормозит МК, посмотрите мои тесты скорости.

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

Вопрос по CAN шине.

#33

Сообщение DrMario » 08.09.2023{, 09:07}

Aviacode писал(а):
07.09.2023{, 16:50}
Встроенный жутко тормозит МК, посмотрите мои тесты скорости.
Библиотека ESP32-Arduino-CAN занимает немного больше места, чем для MCP2515, но это совсем не критично. Если правильно настроить фильтр и маску, то будут проходить только КАН пакеты с нужным ID а не все подряд, как на снимке в 22 сообщении.
Тесты не нашел где посмотреть.

autoelectronica
Рядовой
Сообщения: 86
Зарегистрирован: 18.10.2016{, 21:46}
Репутация: 6
Откуда: Москва

Вопрос по CAN шине.

#34

Сообщение autoelectronica » 27.09.2023{, 14:38}

Вопрос к DrMario, Какой программой пользуетесь для трансляции кан на телефон. Мне нужен блютуз или вайфай кан сканер. В некоторых случаях не удобно с ноутом

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

Вопрос по CAN шине.

#35

Сообщение Aviacode » 27.09.2023{, 16:14}

DrMario писал(а):
08.09.2023{, 09:07}
Aviacode писал(а):
07.09.2023{, 16:50}
Встроенный жутко тормозит МК, посмотрите мои тесты скорости.
Библиотека ESP32-Arduino-CAN занимает немного больше места, чем для MCP2515, но это совсем не критично. Если правильно настроить фильтр и маску, то будут проходить только КАН пакеты с нужным ID а не все подряд, как на снимке в 22 сообщении.
Тесты не нашел где посмотреть.
Тесты вот: viewtopic.php?f=247&t=8539#p125612
Сомневаюсь, что фильтр с маской помогут в данной ситуации.

Аватара пользователя
Brama
Рядовой
Сообщения: 56
Зарегистрирован: 02.07.2020{, 14:27}
Репутация: 5
Откуда: Уфа
Имя: Сергей

Вопрос по CAN шине.

#36

Сообщение Brama » 20.12.2023{, 11:41}

Доброго всем.
Устройство сделано и вполне функционирует.
СпойлерПоказать
Устройство процессе формирования. Необходимо добавит еще пару блоков.
Спасибо форуму и участникам. Без вас нереально было бы сотворить подобное.
Сам проект.
7_5_2_can_kpd.rar
(1.27 МБ) 25 скачиваний

Аватара пользователя
Brama
Рядовой
Сообщения: 56
Зарегистрирован: 02.07.2020{, 14:27}
Репутация: 5
Откуда: Уфа
Имя: Сергей

Вопрос по CAN шине.

#37

Сообщение Brama » 03.02.2024{, 10:02}

Всем доброго.
Устройство начал приобретать популярность у электромехаников, обслуживающих локомотивы..
Единственное неудобство в повторении, это замена кварцевого резонатора с 8 МГц на 10 МГц в плате MCP2515. Так как в настройках чтения CAN шины отсутствует скорость шины 25 кбит/с. В данное время, путем установок скорости программно 20 частота кварца 8 МГц, но в железе кварц на 10 МГц, мы как бы обманываем процесс и действительную скорость получаем 25 кбт/с.
Вопрос:
Как можно добавить в библиотеку скорость 25 кбт/с и уже обойтись без перепаивания кварцев на плате MCP2515?

fefar51702
Рядовой
Сообщения: 40
Зарегистрирован: 26.06.2022{, 07:35}
Репутация: 0
Имя: Валера

Вопрос по CAN шине.

#38

Сообщение fefar51702 » 04.02.2024{, 04:49}

Brama, правильно ли я понимаю что вы пытаетесь получить самую низкую скорость для того что бы слейвы подключались к мастеру веером а не гирляндой притом на длинное растояние ?
к примеру веером можно подключить без проблем имея длину около 30см но если понизить скорость то можно и подлинее сделать согласно статьям

Аватара пользователя
Brama
Рядовой
Сообщения: 56
Зарегистрирован: 02.07.2020{, 14:27}
Репутация: 5
Откуда: Уфа
Имя: Сергей

Вопрос по CAN шине.

#39

Сообщение Brama » 07.02.2024{, 21:37}

fefar51702 писал(а):
04.02.2024{, 04:49}
Brama, правильно ли я понимаю что вы пытаетесь получить самую низкую скорость для того что бы слейвы подключались к мастеру веером а не гирляндой притом на длинное растояние ?
Приветствую.
Нет, не совсем. В блоке чтения САN отсутствует скорость 25кбт/с.
СпойлерПоказать
меню флпрог.jpg
Замена числа 20 на 25 в скетче не канает.При компиляции пишет ошибку. Потому как в самой библиотеке отсутствует установка скорости 25.
СпойлерПоказать
библ.jpg
В данный момент принимаю скорость 25 путем замены кварца с 8 на 10 МГц. А в настройках устанавливаю 20.
Было так:
СпойлерПоказать
кварц 8.jpg
Стало так:
СпойлерПоказать
кварц 10.jpg
Вопрос: как изменить (или добавить в) библиотеку MCP2515 скорость 25 кбт/с?
Как я понял, для определенной скорости необходимо указать коэффициент деления трех делителей. (см выше картинку библиотеки)
Может кто знает готовый калькулятор делителей для микросхемы MCP2515?

Аватара пользователя
Brama
Рядовой
Сообщения: 56
Зарегистрирован: 02.07.2020{, 14:27}
Репутация: 5
Откуда: Уфа
Имя: Сергей

Вопрос по CAN шине.

#40

Сообщение Brama » 11.02.2024{, 10:07}

Всем доброго.
Все же удалось подобрать значения в двух регистрах, чтоб назначить скорость 25 кбтс программно со своим штатным кварцем 8 МГц в модуле MCP2515. :)
Необходимо в библиотеке mcp2515.h изменить значения двух регистров.
__
#define MCP_8MHz_20kBPS_CFG1 (0x07)
#define MCP_8MHz_20kBPS_CFG2 (0xBF) // <- заменить на (0xB4)
#define MCP_8MHz_20kBPS_CFG3 (0x87) // <- заменить на (0x86)

__
Таким способом изменили коэфф. деления прескалера.
Программу в ФЛПроге пишется как обычно. Выбираем кварц 8 МГц, скорость 20 кбтс. А действительная скорость окажется 25 кбтс.
___
Естественно ,эту редактированную библиотеку используем только для разового ( необходимого случая).
Думаю, такой способ пригодится в случае, где необходимы нестандартные скорости обмена CAN шины.

Ответить

Вернуться в «Начинающим»