работа с can

HighTower,

прошу прощения, пропустил ваше сообщение.
Попробуйте целиком поставить ядро и модули из архивов с гитхаба. Вы поставили только mcp2515a.ko, а ему для работы нужен can_dev.ko. Он у вас есть, но другой версии - отсюда и проблемы.

так в другой теме про я спрашивал как восстановить данные на флеше…
и в итоге целиком ВСЕ файлы что были на гитхабе и залил…
после загрузки lsmod говорит что загружены can_dev & mcp251x
выгружаю их
а вот загрузка mcp2515a уже не идёт, даже если предварительно сделать modprobe can_dev ((

Из вашего листинга:

root@wirenboard:/lib/modules/3.13.0-imxv5-x0.1/kernel/drivers/net/can# ls -lA
total 64
-rw-rw-r-- 1 1000 1000 18184 Sep  7  2014 can-dev.ko
-rw-r--r-- 1 root root 20260 Nov 13  2014 mcp2515a.ko
-rw-rw-r-- 1 1000 1000 21842 Sep  7  2014 mcp251x.ko

Даты у файлов разные, видимо всё-таки залили плохо.
Причём если ядро принимает сентябрьские can-dev.ko и mcp251x.ko, то видимо само ядро тоже несвежее.
Покажите пожалуйста содержимое /boot/, если уверены, что всё сделали правильно. Может быть там что-нибудь плохое случилось.

ну так правильно - разные
Sep 7 - это дата что имеют файлы в архиве 3.13.0-imxv5-x0.1-modules.tar.gz на гитхабе
а
Nov 13 - это когда отдельно модуль mcp2515a.ko ручками с гитхаба качал и подсовывал… ибо в архиве 3.13.0-imxv5-x0.1-modules.tar.gz его нет…

вот содержимое /boot

ls -lA /boot

total 3812
drwxr-xr-x 2 root root 4096 Dec 19 16:56 dtbs
-rw-r–r-- 1 root root 227 May 26 2014 uEnv.txt
-rwxr-xr-x 1 root root 3892504 Nov 13 08:08 zImage

ls -lA /boot/dtbs/

total 420
-rw-rw-r-- 1 1000 1000 10100 Sep 7 21:51 imx23-evk.dtb
-rw-rw-r-- 1 1000 1000 9898 Sep 7 21:51 imx23-olinuxino.dtb
-rw-rw-r-- 1 1000 1000 8857 Sep 7 21:51 imx23-stmp378x_devb.dtb
-rw-rw-r-- 1 1000 1000 10935 Sep 7 21:51 imx23-wirenboard-ac1.dtb
-rw-rw-r-- 1 1000 1000 11162 Sep 7 21:51 imx23-wirenboard-cqc10.dtb
-rw-rw-r-- 1 1000 1000 11676 Sep 7 21:51 imx23-wirenboard-kmon1.dtb
-rw-rw-r-- 1 1000 1000 11736 Sep 7 21:51 imx23-wirenboard28.dtb
-rw-rw-r-- 1 1000 1000 12036 Sep 7 21:51 imx23-wirenboard28_cin.dtb
-rw-rw-r-- 1 1000 1000 12243 Sep 7 21:51 imx23-wirenboard32.dtb
-rw-rw-r-- 1 1000 1000 16353 Sep 7 21:51 imx28-apf28.dtb
-rw-rw-r-- 1 1000 1000 18674 Sep 7 21:51 imx28-apf28dev.dtb
-rw-rw-r-- 1 1000 1000 18629 Sep 7 21:51 imx28-apx4devkit.dtb
-rw-rw-r-- 1 1000 1000 16755 Sep 7 21:51 imx28-cfa10036.dtb
-rw-rw-r-- 1 1000 1000 17647 Sep 7 21:51 imx28-cfa10037.dtb
-rw-rw-r-- 1 1000 1000 22420 Sep 7 21:51 imx28-cfa10049.dtb
-rw-rw-r-- 1 1000 1000 19710 Sep 7 21:51 imx28-cfa10055.dtb
-rw-rw-r-- 1 1000 1000 19226 Sep 7 21:51 imx28-cfa10056.dtb
-rw-rw-r-- 1 1000 1000 18836 Sep 7 21:51 imx28-cfa10057.dtb
-rw-rw-r-- 1 1000 1000 18604 Sep 7 21:51 imx28-cfa10058.dtb
-rw-rw-r-- 1 1000 1000 20951 Sep 7 21:51 imx28-evk.dtb
-rw-rw-r-- 1 1000 1000 19289 Sep 7 21:51 imx28-m28cu3.dtb
-rw-rw-r-- 1 1000 1000 19972 Sep 7 21:51 imx28-m28evk.dtb
-rw-rw-r-- 1 1000 1000 17478 Sep 7 21:51 imx28-sps1.dtb
-rw-rw-r-- 1 1000 1000 25327 Sep 7 21:51 imx28-tx28.dtb

вы сами то тестировали эти модули?
если у вас работает - сделайте дамп карты и я проверю у себя…

ребята!!!

решение то будет???
я с мая месяца прошлого года купленный девайс не могу использовать, т.к. заявленный функционал (в данном случае CAN) не работает!!!

выполните на устройстве depmod и снова попробуйте

modprobe  -r mcp251x
modprobe mcp2515a

(не insmod)

команды прошли без ошибок

root@wirenboard:~# depmod
root@wirenboard:~# modprobe  -r mcp251x
root@wirenboard:~# modprobe mcp2515a
root@wirenboard:~# lsmod
Module                  Size  Used by
mcp2515a               12271  0 
can_dev                10091  1 mcp2515a
sc16is7x2              10782  0 
rtl8192cu              96271  0 
rtl_usb                14208  1 rtl8192cu
rtlwifi                88715  2 rtl_usb,rtl8192cu
smsc95xx               19171  0 
rtl8192c_common        65331  1 rtl8192cu
w1_gpio                 2946  0 
wire                   25336  1 w1_gpio
cn                      4802  1 wire

создаю интерфейс

root@wirenboard:~# modprobe can
root@wirenboard:~# modprobe can-raw
root@wirenboard:~# modprobe can-bcm
root@wirenboard:~# ifconfig can0 down
root@wirenboard:~# ip link set can0 type can bitrate 250000
root@wirenboard:~# ifconfig can0 up
root@wirenboard:~# ifconfig 
can0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          UP RUNNING NOARP  MTU:16  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:10 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

однако он не живой… данных как не получается, так и не возможно отправить…

я сейчас взял две Wiren Board, соединил CAN-интерфейсы между собой.
На одной запустил вашу программку на C, на другой запустил candump. Настройки выставил так же как и вы писали, в 250 kbit/s.
Никаких проблем не заметил: отправилось и соответственно принялось 20 тысяч пакетов, потом я остановил.

mcp2515a действительно не работает, так как вы и описали.

мало времени…
я так же запустил свою тестовую прогу, но только в реальной CAN сети… чтобы было видно на железном устройстве, приходят пакеты или нет…
действительно, 20 тыс пакетов прошли удачно, и 40 и 60 и 100…
оставил на ночь…
полчаса назад проверял - бегало
а сейчас - нет…
причём как не отправляет, так и не получает ничего…
это с модулем mcp251x из ссылки на гитхабе…

в dmesg ничего нет
инфа об интерфейсе

root@wirenboard:~# ifconfig can0
can0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          UP NOARP  MTU:16  Metric:1
          RX packets:87892 errors:1 dropped:0 overruns:0 frame:1
          TX packets:349994 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:10 
          RX bytes:263676 (257.4 KiB)  TX bytes:2799952 (2.6 MiB)
root@wirenboard:~# ip -details -statistics link show can0
3: can0: <NO-CARRIER,NOARP,UP,ECHO> mtu 16 qdisc pfifo_fast state DOWN mode DEFAULT qlen 10
    link/can 
    can state BUS-OFF restart-ms 0 
    bitrate 250000 sample-point 0.875 
    tq 250 prop-seg 6 phase-seg1 7 phase-seg2 2 sjw 1
    mcp251x: tseg1 3..16 tseg2 2..8 sjw 1..4 brp 1..64 brp-inc 1
    clock 8000000
    re-started bus-errors arbit-lost error-warn error-pass bus-off
    0          0          0          110        60         1         
    RX: bytes  packets  errors  dropped overrun mcast   
    263676     87892    1       0       1       0      
    TX: bytes  packets  errors  dropped carrier collsns 
    2799952    349994   0       0       0       0  

ок, попробую оставить на сутки и воспроизвести.

Вообщем на выходных + пятница = трое суток, полёт нормальный…

НО… всегда есть НО… чип отвратительно реагирует на помехи и ёмкость…
если привнести помеху рядом с линией (а она у меня всего метр тестах), то всё встаёт колом, только ребут…
или просто взять отвёртку и просто поставить её на клемник - тоже самое, сразу же всё умирает и только ребут…

как разработчики схемы, что можно сделать чтобы от этой проблемы избавиться? или как то переинициализировать кан модуль или ещё что?

удалось ли вам что нибудь из описанного выше воспроизвести?

у меня в тестах примерно то же самое - на нормальной линии всё работает, если линия не согласована или земля не соединена, то через некоторое время падает. Видимо проблема с какой-то обработкой ошибок в драйвере.

Быстро с этим разобраться не удалось, а долго мы не будем, т.к. CAN пользуется два человека и есть workaround.
Workaround - это сделать

ifconfig can0 down
ifconfig can0 up

. Детектировать зависание можно например по неувеличивающимся счётчикам в статистике. Возможно можно получать и от стека CAN какое-то подтверждение о неотправке пакета, но в этом я не разбираюсь.

Проверьте пожалуйста этот workaround. Если он вас не устроит, то, боюсь, остаётся два варианта: мы за деньги разбираемся в чём дело и это чиним (и начнём не раньше середины февраля), либо вы вовращаете контроллер, а мы возвращаем вам полностью деньги.
К сожалению, CAN оказался совершенно не востребованным, в следующих ревизиях продукта его не будет, поэтому получается только так.

да, софтверное передёргивание помогает…

а СAN’а вообще никак не будет и недоставить будет?
есть ли в загашнике устройства с ним, чтобы можно было заказать?

хотя посмотрел новую цену на устройство, стоит теперь сильно думать…
прескорбно (((

В новой ревизии (Wiren Board 4) есть возможность ставить один модуль расширения внутри корпуса с выводом сигналов на клеммники. Модуль CAN можно сделать таким модулем на точно таком же железе, как и в Wiren Board Smart Home (MCP2515 + MCP2551). Работы там не много, если будет заказ от 15шт - сделаем.

Нигде на сайте не увидел информации о новой ревизии…

какие изменения?
что с ценой?
или пока точной информации нет?

Пока информации нет. Про изменения было на форуме, тех. характеристики (возможны ошибки) тут: http://contactless.ru/wiki/index.php/Wiren_Board_4