2011/1/14 Willy Lambert <[email protected]> > 2011/1/14 Wolfgang Grandegger <[email protected]> > >> On 01/14/2011 10:37 AM, Willy Lambert wrote: >> > 2011/1/14 Wolfgang Grandegger <[email protected]> >> > >> >> On 01/14/2011 12:57 AM, Willy Lambert wrote: >> >>> 2011/1/13 Willy Lambert <[email protected]> >> >> ... >> >>> I am stuck with the test case setup, candump shows error messages when >> I >> >> try >> >>> a cansend. I already have tricks with extended or standard data frame >> >>> formats with Ixxat drivers. My motors seems to only accept standard >> >> frames. >> >>> Is there a way to configure this ? >> >>> >> >>> I booted my target with Ixxat driver and run my test cases to validate >> >>> everything is in order. (BIOS options, jumpers, IRQ, wiring). I only >> use >> >> one >> >>> controller on IRQ11 (as it is said as "reserved" in my CPU board IRQ >> >>> mapping) >> >>> I may run my motor and receive SDO from him, everything seems to be >> OK. >> >> >> >> The hardware seem to work. That's a good starting point. >> >> >> >>> Without changing anything except my init script which load can drivers >> >> (in >> >>> order to load socket can drivers instead of Ixxat ones), I rebooted my >> >> CPU. >> >>> >> >>> Here is the load script : >> >>> >> >>>> modprobe sja1000_isa irq=11 mem=0xD0000 >> >>>> ip link set can0 type can bitrate 250000 restart-ms 1000 >> >>>> ifconfig can0 up >> >>>> >> >>> >> >>> Here is dmesg answer (which seems correc) : >> >>> >> >>>> [ 3.928467] sja1000_isa sja1000_isa.0: sja1000_isa device >> registered >> >>>> (reg_base=0xc00d0000, irq=11) >> >>>> [ 3.928646] Legacy sja1000_isa driver for max. 8 devices >> registered >> >>>> [ 3.938877] sja1000_isa sja1000_isa.0: setting BTR0=0x01 BTR1=0x1c >> >>>> >> >>> >> >>> Here is ifconfig result : >> >>> >> >>>> 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:2 errors:0 dropped:0 overruns:0 frame:0 >> >>>> TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 >> >>>> collisions:0 lg file transmission:10 >> >>>> RX bytes:16 (16.0 B) TX bytes:0 (0.0 B) >> >>>> Interruption:11 >> >>>> >> >>> >> >>> Here is /proc/iomem >> >>> >> >>>> 00000000-00000fff : reserved >> >>>> 00001000-0009fbff : System RAM >> >>>> 0009fc00-0009ffff : reserved >> >>>> 000a0000-000bffff : Video RAM area >> >>>> 000c0000-000c7fff : Video ROM >> >>>> 000d0000-000d001f : sja1000_isa >> >>>> ... >> >>>> >> >>> >> >>> Here is /proc/interrupts >> >>> >> >>>> CPU0 >> >>>> 0: 215 IO-APIC-edge timer >> >>>> 1: 8 IO-APIC-edge i8042 >> >>>> 2: 0 XT-PIC-XT cascade >> >>>> 8: 97 IO-APIC-edge rtc0 >> >>>> 11: 1 IO-APIC-edge can0 >> >>>> 12: 7 IO-APIC-edge i8042 >> >>>> 14: 0 IO-APIC-edge ata_piix >> >>>> 15: 1017 IO-APIC-edge ata_piix >> >>>> 19: 0 IO-APIC-fasteoi uhci_hcd:usb3 >> >>>> 23: 14 IO-APIC-fasteoi ehci_hcd:usb1, uhci_hcd:usb2 >> >>>> 40: 411 PCI-MSI-edge eth0 >> >>>> NMI: 0 Non-maskable interrupts >> >>>> LOC: 293000 Local timer interrupts >> >>>> SPU: 0 Spurious interrupts >> >>>> PMI: 0 Performance monitoring interrupts >> >>>> PND: 0 Performance pending work >> >>>> TRM: 0 Thermal event interrupts >> >>>> THR: 0 Threshold APIC interrupts >> >>>> MCE: 0 Machine check exceptions >> >>>> MCP: 1 Machine check polls >> >>>> ERR: 0 >> >>>> MIS: 0 >> >>>> >> >>> >> >>> I write this command to wake up everybody : >> >>> >> >>>> ./cansend can0 000#0100 >> >>>> >> >>> >> >>> And at the same time, in another terminal, I run candump with theses >> >> results >> >>> : >> >>> >> >>>> ./candump any,0:0,#FFFFFFFF >> >>>> can0 20000040 [8] 00 00 00 00 00 00 00 00 ERRORFRAME >> >>>> can0 20000100 [8] 00 00 00 00 00 00 00 00 ERRORFRAME >> >>>> can0 20000004 [8] 00 04 00 00 00 00 00 71 ERRORFRAME >> >>>> can0 20000004 [8] 00 10 00 00 00 00 00 81 ERRORFRAME >> >> >> >> The controller goes bus-off. >> > >> > >> > May I ask you how you decode the candump ERRORFRAME ? does the >> > 20000040/20000100/20000004 makes sens ? What the date behind ? >> >> See http://lxr.linux.no/#linux/include/linux/can/error.h >> >> Also "ip -d -s link show can0" should provide some useful statistics. >> > > Here is the result of the command, just after booting (no ocr, cdr tuning), > with my 2nd can node poweredOff. So Nothing is received, nothing is sent. > > root@alpha:~# ip -d -s link show can0 >> 3: can0: <NOARP,UP,LOWER_UP,ECHO> mtu 16 qdisc pfifo_fast state UNKNOWN >> qlen 10 >> link/can >> can state ERROR-ACTIVE (berr-counter tx 0 rx 0) restart-ms 1000 >> bitrate 250000 sample-point 0.875 >> tq 250 prop-seg 6 phase-seg1 7 phase-seg2 2 sjw 1 >> sja1000: tseg1 1..16 tseg2 1..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 0 0 0 >> RX: bytes packets errors dropped overrun mcast >> 0 0 0 0 0 0 >> TX: bytes packets errors dropped carrier collsns >> 0 0 0 0 0 0 >> root@alpha:~# >> > > Is it normal that it's already in an error state ? > > > After have add ocr + cdr tuning as suggested I have this (my motor has a node ID of 0x21) :
root@alpha:/opt/can# ./cansend can0 721#R > root@alpha:/opt/can# ./cansend can0 000#0121 > root@alpha:/opt/can# ./cansend can0 721#R > root@alpha:/opt/can# ./cansend can0 000#0221 > root@alpha:/opt/can# ./cansend can0 721#R > root@alpha:/opt/can# ./cansend can0 000#0121 > root@alpha:/opt/can# ./cansend can0 721#R > root@alpha:/opt/can# ./cansend can0 000#8121 > root@alpha:/opt/can# ./cansend can0 000#8221 > > root@alpha:/opt/can# ./candump any,0:0,#FFFFFFFF > can0 721 [1] 00 > can0 721 [0] remote request > can0 721 [1] 7F > can0 0 [2] 01 21 > can0 1A1 [2] 60 00 > can0 721 [0] remote request > can0 721 [1] 85 > can0 0 [2] 02 21 > can0 721 [0] remote request > can0 721 [1] 04 > can0 0 [2] 01 21 > can0 1A1 [2] 60 00 > can0 721 [0] remote request > can0 721 [1] 85 > can0 0 [2] 81 21 > can0 721 [1] 00 > can0 0 [2] 82 21 > can0 721 [1] 00 > So it seems to communicating :) > > > > >> >> Wolfgang. >> > >
_______________________________________________ Socketcan-users mailing list [email protected] https://lists.berlios.de/mailman/listinfo/socketcan-users
