Open main menu

DAVE Developer's Wiki β

DESK-MX6UL-L/Peripherals/CAN

< DESK-MX6UL-L
Revision as of 09:56, 21 April 2021 by U0007 (talk | contribs)

History
Version Issue Date Notes
1.0.0 Apr 2021 First DESK release


Contents

Peripheral CANEdit

Device tree configurationEdit

Here below an example of device tree configuration used on standard DAVE's kit for the AXEL ULite SOM:

From imx6ul-lynx-som0013-cb00XX.dts:

&can1 {
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_flexcan1>;
    status = "okay";
};

From imx6ul-lynx-som0013.dtsi:

&iomuxc {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_hog_gpios>;

        imx6ul-lynx {
...
...
            pinctrl_flexcan1: flexcan1grp{
                    fsl,pins = <
                            MX6UL_PAD_LCD_DATA09__FLEXCAN1_RX       0x1b020
                            MX6UL_PAD_LCD_DATA08__FLEXCAN1_TX       0x1b020
                    >;
            };
};

Accessing the peripheralEdit

Linux messages at boot timeEdit

...
...
[    2.717142] flexcan 2090000.flexcan: 2090000.flexcan supply xceiver not found, using dummy regulator
[    2.728107] flexcan 2090000.flexcan: device registered (reg_base=a099c000, irq=24)
...
...
[    5.067979] can: controller area network core (rev 20170425 abi 9)
[    5.079006] can: raw protocol (rev 20170425)
[    5.083391] can: broadcast manager protocol (rev 20170425 t)
[    5.089108] can: netlink gateway (rev 20170425) max_hops=1

Enable the interface and check statusEdit

root@desk-mx6ul-axelulite:~# ip link set can0 type can bitrate 500000
root@desk-mx6ul-axelulite:~# ifconfig can0 up
root@desk-mx6ul-axelulite:~# 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:24

root@desk-mx6ul-axelulite:~#

Usage with can-utilsEdit

TBD: reference verso eventuali informazioni sul web

root@desk-mx6ul-axelulite:~# ip link set can0 type can bitrate 500000 triple-sampling on
root@desk-mx6ul-axelulite:~# ifconfig can0 up
root@desk-mx6ul-axelulite:~# cansend can0 128#1122334455667788
root@desk-mx6ul-axelulite:~# candump can0
  can0  128   [8]  11 22 33 44 55 66 77 88
root@desk-mx6ul-axelulite:~# 

Additional informationEdit

Each CAN port appears like a networking interface in the form canX where X is the port number.

Information about programming the CAN socket interface is given in the kernel tree under Documentation/networking/can.txt