View difference between Paste ID: mJWqnX9H and 6hn8bZ1h
SHOW: | | - or go back to the newest paste.
1
  (c) SYSTEC electronic GmbH, D-07973 Greiz, August-Bebel-Str. 29
2
        www.systec-electronic.com
3
4
                                                       2012-03-08
5
6
        SocketCAN Driver for USB-CANmodul series
7
        =========================================
8
9
Requirements
10
-------------
11
12-
CONFIG_CAN_CALC_BITTIMING=y
12+
13
14
* Following kernel options have to be set:
15
16
CONFIG_CAN=m
17
CONFIG_CAN_RAW=m
18
CONFIG_CAN_BCM=m
19
CONFIG_CAN_DEV=m
20
CONFIG_CAN_CALC_BITTIMING=y
21
22
* CAN utilities from the SocketCAN repository for first tests
23
24
$ git clone git://gitorious.org/linux-can/can-utils.git
25
$ cd can-utils
26
$ make
27
28
  Old repository on berlios:
29
	$ svn checkout svn://svn.berlios.de/socketcan/trunk socketcan
30
	$ cd socketcan/can-utils
31
	$ make
32
33
34
Limitations
35
------------
36
37
* Firmware version >=4.06 must be installed on USB-CANmodul.
38
  In case of an older firmware version, please connect the USB-CANmodul to a
39
  Windows PC with a recent driver version.
40
* There is currently no way to read out or set the digital I/Os of the
41
  user port or the CAN port (signals EN, /STB, /ERR, /TRM).
42
* No support for the obsolete modules GW-002 and GW-001.
43
  This is not planned at all.
44
45
46
Build the driver
47
-----------------
48
49
Run make within the source directory
50
51
$ cd systec_can
52
$ make
53
54
55
Load the driver from the local source directory
56
------------------------------------------------
57
58
1. Load basic CAN drivers
59
60
$ sudo modprobe can_raw
61
$ sudo modprobe can_dev
62
63
2. Install firmware
64
65
$ sudo make firmware_install
66
67
3. Load USB-CANmodul driver
68
69
$ sudo insmod systec_can.ko
70
71
- OR -
72
73
Install the driver and firmware system-wide
74
--------------------------------------------
75
76
$ sudo make modules_install
77
$ sudo make firmware_install
78
79
The kernel module should now be loaded automatically by udev
80
when the device is connected.
81
82
83
Run basic tests
84
----------------
85
86
1. Connect the USB-CANmodul to the PC
87
88
2. Set up bitrate and start up the CAN interface
89
90
$ ip link set can0 type can bitrate 125000
91
- OR if CONFIG_CAN_CALC_BITTIMING is undefined -
92
$ ip link set can0 type can tq 500 prop-seg 6 phase-seg1 7 phase-seg2 2
93
94
$ ifconfig can0 up
95
96
3. Dump the traffic on the CAN bus
97
98
$ cd can-utils
99
$ ./candump can0
100
101
to display error frames (option -e is supported in newer candump versions only):
102
103
$ ./candump -e can0,0:0,#FFFFFFFF
104
105
4. Transmit one CAN frame
106
107
$ cd can-utils
108
$ ./cangen -n 1 -I 640 -L 8 -D 4000100000000000 can0
109
110
5. Print out some statistics
111
112
$ ip -details -statistics link show can0
113
114
6. Restart CAN channel in case of bus-off (i.e. short circuit)
115
116
$ ip link set can0 type can restart
117
118
119
Hardware address
120
-----------------
121
122
The hardware address (like the MAC address of Ethernet controllers)
123
of each CAN channel as shown with
124
`ip link show can0` or `ifconfig can0` is formed the following way:
125
126
S0:S1:S2:S3:DN:CN
127
128
Sx - Serial Number in Hex with S0 contains the most significant byte
129
DN - Device Number
130
CN - Channel Number (00 - CAN1, 01 - CAN2)
131
132
The unique hardware address can be used by a special udev rule to
133
assign stable interface names and numbers.