Вопрос или проблема
У меня есть эта замечательная шляпа pi
С этой конфигурацией:
enable_uart=1
kernel=u-boot.bin
[all]
device_tree=bcm2711-rpi-4-b.dtb
dtparam=spi=on
dtoverlay=i2c0
dtoverlay=spi1-3cs
dtoverlay=sc16is752-spi1,int_pin=25
dtoverlay=mcp2515,spi0-0,oscillator=16000000,interrupt=23
dtoverlay=mcp251xfd,spi0-1,interrupt=24
И оба интерфейса can не отображаются одновременно, не уверен, почему. Когда я закомментирую один из них, другой появляется в ifconfig
Кроме того, mcp2515 работает, но mcp251xfd выдает следующую ошибку:
[ 52.157476] IPv6: ADDRCONF(NETDEV_CHANGE): can0: link становится готовым
[ 52.167715] NOHZ tick-stop ошибка: В ожидании локальная softirq работа, обработчик #08!!!
[ 53.040857] mcp251xfd spi0.1 can0: bus-off, перезапуск запланирован через 100 мс
[ 53.047739] NOHZ tick-stop ошибка: В ожидании локальная softirq работа, обработчик #08!!!
[ 53.167475] IPv6: ADDRCONF(NETDEV_CHANGE): can0: link становится готовым
[ 54.038527] mcp251xfd spi0.1 can0: bus-off, перезапуск запланирован через 100 мс
[ 54.045380] NOHZ tick-stop ошибка: В ожидании локальная softirq работа, обработчик #08!!!
[ 54.164644] NOHZ tick-stop ошибка: В ожидании локальная softirq работа, обработчик #08!!!
[ 54.177464] IPv6: ADDRCONF(NETDEV_CHANGE): can0: link становится готовым
[ 55.038128] mcp251xfd spi0.1 can0: bus-off, перезапуск запланирован через 100 мс
[ 55.187477] IPv6: ADDRCONF(NETDEV_CHANGE): can0: link становится готовым
[ 56.040062] mcp251xfd spi0.1 can0: bus-off, перезапуск запланирован через 100 мс
[ 56.197468] IPv6: ADDRCONF(NETDEV_CHANGE): can0: link становится готовым
Это на Venus OS для RPI
Я в растерянности и не имею ни малейшего представления, как решить эти две проблемы
Спасибо заранее!
Ответ или решение
Анализ и решение проблем с RS232-RS485-CAN-Board
Для решения сообщений о проблемах, касающихся платы RS232-RS485-CAN, рассмотрим два основных аспекта: совместное использование интерфейсов CAN и корректная работа MCP251FD.
1. Проблемы с одновременной работой интерфейсов CAN
Вы столкнулись с ситуацией, когда оба CAN интерфейса (MCP2515 и MCP251FD) не отображаются одновременно в системе. При этом, если один из них закомментирован, другой работает корректно и отображается в ifconfig
. Это может указывать на конфликты адресации шины или ограниченные ресурсы SPI.
Решения:
- Проверка SPI-адресов: Убедитесь, что MCP2515 и MCP251FD настроены на разные шины SPI. В вашем конфигурационном файле указано, что MCP2515 использует
spi0-0
, а MCP251FD используетspi0-1
. Проверьте, что конфигурация соответствует аппаратному подключению. - Ограничение ресурсами: Проверьте, достаточно ли выделено ресурсов для работы обоих драйверов. Это может потребовать оптимизации конфигурации или перераспределения ресурсов. Обратите внимание на любые другие устройства, подключенные к шинам SPI и I2C.
- Обновление и тестирование прошивки: Убедитесь в актуальности прошивки вашего устройства. Иногда производители предоставляют обновления для устранения известных проблем.
2. Проблемы с MCP251FD
В логах системы вы видите сообщения об ошибках, связанных с MCP251FD, включая bus-off
и NOHZ tick-stop error
. Эти ошибки указывают на проблемы с передачей данных по шине CAN.
Решения:
- Проверка подключения: Убедитесь в корректности подключения к сети CAN. Соединения могут быть разорваны или неправильно установлены, что приводит к сбоям в передаче.
- Конфигурация CAN: Проверьте параметры конфигурации CAN, такие как скорость передачи данных и настройки фильтрации. Несоответствие параметров может привести к состоянию
bus-off
. - Включение CAN-терминаторов: Если ваш CAN-сетевой кабель длинный или в системе есть несколько устройств, убедитесь, что на обоих концах сети установлены терминаторы, чтобы предотвратить отражение сигналов.
- Обновление драйвера: Рассмотрите возможность обновления драйвера для MCP251FD. Иногда проблемы с совместимостью могут быть устранены обновлением программного обеспечения.
- Мониторинг шины: Используйте осциллограф или CAN-анализатор для мониторинга шины в реальном времени. Это может помочь выявить возможные проблемы с передачей данных или конфликты на шине.
Заключение
Несмотря на сложность возникающих проблем, применение систематического подхода к диагностике и устранению неполадок поможет выявить решение для вашего RS232-RS485-CAN-Board. Тщательная проверка конфигурации, оборудования и программного обеспечения является ключевым фактором для эффективной работы вашей системы. Если после выполнения вышеуказанных рекомендаций проблемы сохраняются, возможно, стоит обратиться к технической поддержке производителя за дополнительной помощью.