Difference between revisions of "DESK-MX6UL-L/Peripherals/CAN"

From DAVE Developer's Wiki
Jump to: navigation, search
(Created page with "{{subst:Peripheral | nome-som=AXEL Lite | nome-peripheral = CAN}}")
 
Line 7: Line 7:
 
!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white"|Notes
 
!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white"|Notes
 
|-
 
|-
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|X.Y.Z
+
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|1.0.0
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|Month Year
+
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|Apr 2021
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|TBD
+
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|First DESK release
|-
 
|-
 
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|[TBD_link X.Y.Z]
 
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|Month Year
 
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|TBD
 
|-
 
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|...
 
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|...
 
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|...
 
 
|-
 
|-
 
|}
 
|}
Line 25: Line 16:
  
 
==Peripheral CAN ==
 
==Peripheral CAN ==
 
''TBD: sostituire tutti i dump con le informazioni sull'uso della periferica''
 
  
 
=== Device tree configuration ===
 
=== Device tree configuration ===
Here below an example of device tree configuration used on standard DAVE's kit for the AXEL Lite SOM:
+
Here below an example of device tree configuration used on standard DAVE's kit for the [[AXEL ULite SOM]]:
  
From <code>''carrier.dts''</code>:
+
From <code>imx6ul-lynx-som0013-cb00XX.dts</code>:
  
 
<pre>
 
<pre>
 
&can1 {
 
&can1 {
 
     pinctrl-names = "default";
 
     pinctrl-names = "default";
     pinctrl-0 = <&pinctrl_flexcan1_axel>;
+
     pinctrl-0 = <&pinctrl_flexcan1>;
 
     status = "okay";
 
     status = "okay";
 
};
 
};
 
</pre>
 
</pre>
  
From <code>''carrier-common.dtsi''</code>:
+
From <code>imx6ul-lynx-som0013.dtsi</code>:
  
 
<pre>
 
<pre>
    can1 {
+
&iomuxc {
         pinctrl_flexcan1_axel: flexcan1axelgrp-1 {
+
         pinctrl-names = "default";
             fsl,pins = <
+
        pinctrl-0 = <&pinctrl_hog_gpios>;
                MX6QDL_PAD_GPIO_7__FLEXCAN1_TX 0x80000000
+
 
                MX6QDL_PAD_GPIO_8__FLEXCAN1_RX 0x80000000
+
        imx6ul-lynx {
            >;
+
...
        };
+
...
    };
+
             pinctrl_flexcan1: flexcan1grp{
 +
                    fsl,pins = <
 +
                            MX6UL_PAD_LCD_DATA09__FLEXCAN1_RX      0x1b020
 +
                            MX6UL_PAD_LCD_DATA08__FLEXCAN1_TX      0x1b020
 +
                    >;
 +
            };
 +
};
 
</pre>
 
</pre>
  
Line 60: Line 55:
 
...
 
...
 
...
 
...
[    1.807495] flexcan 2090000.flexcan: 2090000.flexcan supply xceiver not found, using dummy regulator
+
[    2.717142] flexcan 2090000.flexcan: 2090000.flexcan supply xceiver not found, using dummy regulator
[    1.817366] flexcan 2090000.flexcan: device registered (reg_base=c0a30000, irq=31)
+
[    2.728107] flexcan 2090000.flexcan: device registered (reg_base=a099c000, irq=24)
 
...
 
...
 
...
 
...
[    3.952659] can: controller area network core (rev 20170425 abi 9)
+
[    5.067979] can: controller area network core (rev 20170425 abi 9)
[    3.963413] can: raw protocol (rev 20170425)
+
[    5.079006] can: raw protocol (rev 20170425)
[    3.967717] can: broadcast manager protocol (rev 20170425 t)
+
[    5.083391] can: broadcast manager protocol (rev 20170425 t)
[    3.973397] can: netlink gateway (rev 20170425) max_hops=1
+
[    5.089108] can: netlink gateway (rev 20170425) max_hops=1
 
</pre>
 
</pre>
  
 
====Enable the interface and check status====
 
====Enable the interface and check status====
 
<pre class="workstation-terminal">
 
<pre class="workstation-terminal">
root@imx6qxelk:~# ip link set can0 type can bitrate 500000
+
root@desk-mx6ul-axelulite:~# ip link set can0 type can bitrate 500000
root@imx6qxelk:~# ifconfig can0 up
+
root@desk-mx6ul-axelulite:~# ifconfig can0 up
root@imx6qxelk:~# ifconfig can0
+
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
 
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
 
           UP RUNNING NOARP  MTU:16  Metric:1
Line 81: Line 76:
 
           collisions:0 txqueuelen:10
 
           collisions:0 txqueuelen:10
 
           RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
 
           RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
           Interrupt:31
+
           Interrupt:24
  
root@imx6qxelk:~#
+
root@desk-mx6ul-axelulite:~#
 
</pre>
 
</pre>
  
Line 91: Line 86:
  
 
<pre class="workstation-terminal">
 
<pre class="workstation-terminal">
root@imx6qxelk:~# ip link set can0 type can bitrate 500000 triple-sampling on
+
root@desk-mx6ul-axelulite:~# ip link set can0 type can bitrate 500000 triple-sampling on
root@imx6qxelk:~# ifconfig can0 up
+
root@desk-mx6ul-axelulite:~# ifconfig can0 up
root@imx6qxelk:~# cansend can0 128#1122334455667788
+
root@desk-mx6ul-axelulite:~# cansend can0 128#1122334455667788
root@imx6qxelk:~# candump can0
+
root@desk-mx6ul-axelulite:~# candump can0
 
   can0  128  [8]  11 22 33 44 55 66 77 88
 
   can0  128  [8]  11 22 33 44 55 66 77 88
root@imx6qxelk:~#  
+
root@desk-mx6ul-axelulite:~#  
 
</pre>
 
</pre>
  
Line 107: Line 102:
 
----
 
----
  
[[Category:AXEL Lite]]
+
[[Category:AXEL ULite]]

Revision as of 09:56, 21 April 2021

History
Version Issue Date Notes
1.0.0 Apr 2021 First DESK release


Peripheral CAN[edit | edit source]

Device tree configuration[edit | edit source]

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 peripheral[edit | edit source]

Linux messages at boot time[edit | edit source]

...
...
[    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 status[edit | edit source]

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-utils[edit | edit source]

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 information[edit | edit source]

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