Not sure if you solved this yet...
Try this, it worked for me:
1. disable the default overlay on slot 4:
sudo sh -c "echo '-4' > /sys/devices/platform/bone_capemgr/slots"
2. add the CAN cape device
sudo sh -c "echo 'BB-CAN1' > /sys/devices/platform/bone_capemgr/slots"
otherwise, you may get the following error:
root@beaglebone:/# sudo sh -c "echo 'BB-CAN1' >
/sys/devices/platform/bone_capemgr/slots"
[ 494.986203] bone_capemgr bone_capemgr: slot #6: BB-CAN1 conflict
P9.24 (#4:cape-universaln)
[ 494.995099] bone_capemgr bone_capemgr: slot #6: Failed verification
sh: echo: I/O error
On Monday, May 2, 2016 at 1:39:18 PM UTC-7, David Miller Lowe wrote:
>
> Hi Folks,
>
> I am easily able to receive CAN traffic with my Peak USB-CAN interface on
> my linux workstation. I know our device is producing regular updates at
> 250000 and it dumps find using candump.
>
> For a couple days I have been trying (without success) to duplicate the
> behavior on my Element Rev B6 Beaglebone. I've read many posts and have
> worked bast a bunch of issues but still get no can traffic.
>
> The results are the same with a WaveShare CAN Cape or a discrete NXP
> TJA1051 High-speed CAN transceiver that I have connected on a breadboard.
> If I hook a scope to the input RX signal I can see the external CAN traffic
> but nothing gets through.
>
> I did modify ~/bb.org-overlays/src/arm/cape-universaln-00A0.dts to remove
> references to pins P9_24 and P9_26 (UART1 RX/TX)
>
> For clarity's sake here is the script that I run after rebooting the
> Beaglbone.
>
> set -x
> echo "# make sure, I'm running as root, unmolested
> bone-debian-8.3-lxqt-4gb-armhf-2016-01-24-4gb.img image"
> id
> uname -a
>
> echo "# look, can pin muxing for P9_24 and P9_26 are at default (GPIO,
> mode 7)"
> devmem2 0x44E10980 w
> devmem2 0x44E10984 w
>
> echo "# cat my overlay File, has been built/installed/rebooted
> successfully"
> cat /hone/debian/bb.org-overlays/src/arm/BB-CAN1-00A0.dts
>
> echo "# install my overlay to setup the CAN pins"
> sh -c "echo 'BB-CAN1' > /sys/devices/platform/bone_capemgr/slots"
>
> echo "# see that the overlay was installed and make sure pins went to
> mode 2"
> cat /sys/devices/platform/bone_capemgr/slots
> devmem2 0x44E10980 w
> devmem2 0x44E10984 w
>
> echo "#load the can drivers"
> modprobe can
> modprobe can-dev
> modprobe can-raw
>
> echo "# show what's loaded"
> lsmod
>
> echo "# fire up the interface"
> ip link set can0 type can bitrate 250000 triple-sampling on
> ip link set can0 up
>
> echo "# see that we're up"
> ifconfig can0
>
> echo "#Shoud receive can data, same as my linux workstation..."
> candump can0
>
>
> Here is the output from the script..
>
> debian@beaglebone:~$ sudo ./canSetup.sh
> + echo # make sure, I'm running as root, unmolested
> bone-debian-8.3-lxqt-4gb-armhf-2016-01-24-4gb.img image
> # make sure, I'm running as root, unmolested
> bone-debian-8.3-lxqt-4gb-armhf-2016-01-24-4gb.img image
> + id
> uid=0(root) gid=0(root) groups=0(root)
> + uname -a
> Linux beaglebone 4.1.15-ti-rt-r43 #1 SMP PREEMPT RT Thu Jan 21 20:13:58
> UTC 2016 armv7l GNU/Linux
> + echo # look, can pins P9_24 and P9_26 are at default (GPIO, mode 7)
> # look, can pins P9_24 and P9_26 are at default (GPIO, mode 7)
> + devmem2 0x44E10980 w
> /dev/mem opened.
> Memory mapped at address 0xb6f93000.
> Value at address 0x44E10980 (0xb6f93980): 0x37
> + devmem2 0x44E10984 w
> /dev/mem opened.
> Memory mapped at address 0xb6f9b000.
> Value at address 0x44E10984 (0xb6f9b984): 0x37
> + echo # cat my overlay File, has been built/installed/rebooted
> successfully
> # cat my overlay File, has been built/installed/rebooted successfully
> + cat /home/debian/bb.org-overlays/src/arm/BB-CAN1-00A0.dts
> /*
> * Copyright (C) 2015 Robert Nelson <[email protected] <javascript:>>
> *
> * Virtual cape for CAN1 on connector pins P9.24 P9.26
> *
> * This program is free software; you can redistribute it and/or modify
> * it under the terms of the GNU General Public License version 2 as
> * published by the Free Software Foundation.
> */
> /dts-v1/;
> /plugin/;
>
> #include <dt-bindings/board/am335x-bbw-bbb-base.h>
> #include <dt-bindings/pinctrl/am33xx.h>
>
> / {
> compatible = "ti,beaglebone", "ti,beaglebone-black",
> "ti,beaglebone-green";
>
> /* identification */
> part-number = "BB-CAN1";
> version = "00A0";
>
> /* state the resources this cape uses */
> exclusive-use =
> /* the pin header uses */
> "P9.24", /* can1_rx */
> "P9.26", /* can1_tx */
> /* the hardware ip uses */
> "dcan1";
>
> fragment@0 {
> target = <&am33xx_pinmux>;
> __overlay__ {
> bb_dcan1_pins: pinmux_dcan1_pins {
> pinctrl-single,pins = <
> BONE_P9_24 (SLEWCTRL_FAST | PIN_INPUT_PULLUP |
> MUX_MODE2) /* uart1_txd.d_can1_rx */
> BONE_P9_26 (SLEWCTRL_FAST | PIN_OUTPUT_PULLUP |
> MUX_MODE2) /* uart1_rxd.d_can1_tx */
> >;
> };
> };
> };
>
> fragment@1 {
> target = <&dcan1>;
> __overlay__ {
> status = "okay";
> pinctrl-names = "default";
> pinctrl-0 = <&bb_dcan1_pins>;
> };
> };
> };
> + echo # install my overlay to setup the CAN pins
> # install my overlay to setup the CAN pins
> + sh -c echo 'BB-CAN1' > /sys/devices/platform/bone_capemgr/slots
> + echo # see that the overlay was installed and make sure pins went to
> mode 2
> # see that the overlay was installed and make sure pins went to mode 2
> + cat /sys/devices/platform/bone_capemgr/slots
> 0: PF---- -1
> 1: PF---- -1
> 2: PF---- -1
> 3: PF---- -1
> 4: P-O-L- 0 Override Board Name,00A0,Override Manuf,cape-universaln
> 5: P-O-L- 1 Override Board Name,00A0,Override Manuf,BB-CAN1
> + devmem2 0x44E10980 w
> /dev/mem opened.
> Memory mapped at address 0xb6f21000.
> Value at address 0x44E10980 (0xb6f21980): 0x12
> + devmem2 0x44E10984 w
> /dev/mem opened.
> Memory mapped at address 0xb6fa5000.
> Value at address 0x44E10984 (0xb6fa5984): 0x32
> + echo #load the can drivers
> #load the can drivers
> + modprobe can
> + modprobe can-dev
> + modprobe can-raw
> + echo # show what's loaded
> # show what's loaded
> + lsmod
> Module Size Used by
> can_raw 5408 0
> can 28227 1 can_raw
> c_can_platform 6564 0
> c_can 9605 1 c_can_platform
> can_dev 11455 1 c_can
> spidev 6739 0
> pwm_tiecap 3492 0
> pwm_tiehrpwm 4546 0
> tieqep 8510 0
> 8021q 17336 0
> garp 5975 1 8021q
> mrp 7322 1 8021q
> stp 1911 1 garp
> llc 5257 2 stp,garp
> snd_soc_evm 5749 0
> pruss_remoteproc 15296 0
> snd_soc_davinci_mcasp 17266 2
> snd_soc_edma 1150 1 snd_soc_davinci_mcasp
> omap_rng 4358 0
> rng_core 7437 1 omap_rng
> tilcdc 26254 0
> spi_omap2_mcspi 10681 0
> usb_f_acm 7180 1
> u_serial 10596 3 usb_f_acm
> usb_f_rndis 22734 1
> g_multi 5316 0
> usb_f_mass_storage 42745 2 g_multi
> u_ether 12028 2 usb_f_rndis,g_multi
> libcomposite 43810 4 usb_f_acm,usb_f_rndis,g_multi,
> usb_f_mass_storage
> tda998x 11749 0
> snd_soc_hdmi_codec 2474 1
> uio_pdrv_genirq 3521 0
> uio 8463 1 uio_pdrv_genirq
> + echo # fire up the interface
> # fire up the interface
> + ip link set can0 type can bitrate 250000 triple-sampling on
> + ip link set can0 up
> + echo # see that we're up
> # see that we're up
> + ifconfig can0
> 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)
> Interrupt:208
>
> + echo #Shoud receive can data, same as my linux workstation...
> #Shoud receive can data, same as my linux workstation...
> + candump can0
>
> .... Nothing produced.
>
>
>
>
> Here is the dmesg output while the script is running...
>
> [ 101.514143] bone_capemgr bone_capemgr: part_number 'BB-CAN1', version
> 'N/A'
> [ 101.514196] bone_capemgr bone_capemgr: slot #5: override
> [ 101.514222] bone_capemgr bone_capemgr: Using override eeprom data at
> slot 5
> [ 101.514250] bone_capemgr bone_capemgr: slot #5: 'Override Board
> Name,00A0,Override Manuf,BB-CAN1'
> [ 102.998539] c_can_platform 481d0000.can: c_can_platform device
> registered (regs=fa1d0000, irq=209)
> [ 103.002556] bone-pinmux-helper ocp:P8_09_pinmux: could not find
> pctldev for node /ocp/l4_wkup@44c00000/prcm@200000/clocks/dpll_per_m2_ck,
> deferring probe
> [ 103.003340] bone_capemgr bone_capemgr: slot #5: dtbo
> 'BB-CAN1-00A0.dtbo' loaded; overlay id #1
> [ 104.557399] can: controller area network core (rev 20120528 abi 9)
> [ 104.557665] NET: Registered protocol family 29
> [ 105.965220] can: raw protocol (rev 20120528)
> [ 106.107030] c_can_platform 481cc000.can can0: setting BTR=1c05 BRPE=
> 0000
>
>
> If anyone can tell me why I can't get the IO to work I'd be grateful!
>
>
--
For more options, visit http://beagleboard.org/discuss
---
You received this message because you are subscribed to the Google Groups
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/beagleboard/c699d156-8b20-402c-b2c7-3eff3b6fe701%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.