Open main menu

DAVE Developer's Wiki β

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

< DESK-MX6UL-L
 
(8 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[File:TBD.png|thumb|center|200px|Work in progress]]
+
<section begin="History" />
 
 
<section begin=History/>
 
 
{| style="border-collapse:collapse; "
 
{| style="border-collapse:collapse; "
!colspan="4" style="width:100%; text-align:left"; border-bottom:solid 2px #ededed"|History
+
! colspan="4" style="width:100%; text-align:left" ; border-bottom:solid 2px #ededed" |History
 
|-  
 
|-  
!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"|Version
+
! 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" |Issue Date
!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"|Issue Date
+
! 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" |{{oldid|14243|2021/07/20}}
 +
| 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-MX6UL-L 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" |{{oldid|16322|2022/03/16}}
 +
| 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" |DESK-MX6UL-L 3.0.0 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"|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:#ededed; padding:5px; color:#000000" |2023/05/04
|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:#ededed; padding:5px; color:#000000" |DESK-MX6UL-L 4.0.0 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"|First DESK release
+
 
 
|-
 
|-
 
|}
 
|}
<section end=History/>
+
<section end="History" />
<section begin=Body/>
+
<section begin="Body" />
  
 
==Peripheral CAN ==
 
==Peripheral CAN ==
 +
{{ImportantMessage|text=The CAN peripheral is not available on [[AXEL_ULite_SOM/AXEL_ULite_Evaluation_Kit | AXEL ULite EVK]]. This peripheral is available on the i.MX6UL standard product [[SBC_Lynx_SBC | SBCLynx]]}}
  
 
=== Device tree configuration ===
 
=== Device tree configuration ===
 
Here below an example of device tree configuration used on standard DAVE's kit for the [[AXEL ULite SOM]]:
 
Here below an example of device tree configuration used on standard DAVE's kit for the [[AXEL ULite SOM]]:
  
From <code>imx6ul-lynx-som0013-cb00XX.dts</code>:
+
From <code>imx6ul-lynx-som0013-cb002f.dts</code>:
  
 
<pre>
 
<pre>
Line 57: Line 61:
 
...
 
...
 
...
 
...
[    2.717142] flexcan 2090000.flexcan: 2090000.flexcan supply xceiver not found, using dummy regulator
+
[    3.047454] can: controller area network core
[    2.728107] flexcan 2090000.flexcan: device registered (reg_base=a099c000, irq=24)
+
[    3.057221] can: raw protocol
 +
[    3.069417] can: broadcast manager protocol
 +
[    3.073846] can: netlink gateway - max_hops=1
 
...
 
...
 
...
 
...
[    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
 
 
</pre>
 
</pre>
  
 
====Enable the interface and check status====
 
====Enable the interface and check status====
 
<pre class="workstation-terminal">
 
<pre class="workstation-terminal">
root@desk-mx6ul-axelulite:~# ip link set can0 type can bitrate 500000
+
root@desk-mx6ul-lynx:~# ip link set can0 type can bitrate 500000
root@desk-mx6ul-axelulite:~# ifconfig can0 up
+
root@desk-mx6ul-lynx:~# ifconfig can0 up
root@desk-mx6ul-axelulite:~# ifconfig can0
+
root@desk-mx6ul-lynx:~# ifconfig can0
can0     Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
+
can0: flags=193<UP,RUNNING,NOARP> mtu 16
          UP RUNNING NOARP MTU:16 Metric:1
+
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 10 (UNSPEC)
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
+
        RX packets 0 bytes 0 (0.0 B)
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
+
        RX errors 0 dropped 0 overruns 0 frame 0
          collisions:0 txqueuelen:10
+
        TX packets 0 bytes 0 (0.0 B)
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
+
        TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
          Interrupt:24
+
        device interrupt 33
 
 
root@desk-mx6ul-axelulite:~#
 
 
</pre>
 
</pre>
  
 
==== Usage with [https://github.com/linux-can/can-utils can-utils] ====
 
==== Usage with [https://github.com/linux-can/can-utils can-utils] ====
 
''TBD: reference verso eventuali informazioni sul web''
 
  
 
<pre class="workstation-terminal">
 
<pre class="workstation-terminal">
root@desk-mx6ul-axelulite:~# ip link set can0 type can bitrate 500000 triple-sampling on
+
root@desk-mx6ul-lynx:~# ip link set can0 type can bitrate 500000 triple-sampling on loopback on
root@desk-mx6ul-axelulite:~# ifconfig can0 up
+
root@desk-mx6ul-lynx:~# ifconfig can0 up
root@desk-mx6ul-axelulite:~# cansend can0 128#1122334455667788
+
root@desk-mx6ul-lynx:~# candump can0 &
root@desk-mx6ul-axelulite:~# candump can0
+
[1] 291
  can0 128  [8] 11 22 33 44 55 66 77 88
+
interface = can0, family = 29, type = 3, proto = 1
root@desk-mx6ul-axelulite:~#
+
root@desk-mx6ul-lynx:~# cansend can0 -i 0x7ff 00 01 02 03 04 05 06 07
 +
interface = can0, family = 29, type = 3, proto = 1
 +
<0x7ff> [8] 00 01 02 03 04 05 06 07
 +
<0x7ff> [8] 00 01 02 03 04 05 06 07
 
</pre>
 
</pre>
  
Line 99: Line 100:
 
Each CAN port appears like a networking interface in the form <code>canX</code> where <b><i>X</i></b> is the port number.  
 
Each CAN port appears like a networking interface in the form <code>canX</code> where <b><i>X</i></b> is the port number.  
  
Information about programming the CAN socket interface is given in the kernel tree under ''Documentation/networking/can.txt''
+
Information about programming the CAN socket interface is given in the kernel tree under ''Documentation/networking/can.rst''
<section end=Body/>
+
<section end="Body" />
 
 
 
----
 
----
  
 
[[Category:AXEL ULite]]
 
[[Category:AXEL ULite]]

Latest revision as of 17:58, 11 January 2024

History
Issue Date Notes

2021/07/20

First DESK-MX6UL-L release

2022/03/16

DESK-MX6UL-L 3.0.0 release
2023/05/04 DESK-MX6UL-L 4.0.0 release


Contents

Peripheral CANEdit

The CAN peripheral is not available on AXEL ULite EVK. This peripheral is available on the i.MX6UL standard product SBCLynx

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-cb002f.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

...
...
[    3.047454] can: controller area network core
[    3.057221] can: raw protocol
[    3.069417] can: broadcast manager protocol
[    3.073846] can: netlink gateway - max_hops=1
...
...

Enable the interface and check statusEdit

root@desk-mx6ul-lynx:~# ip link set can0 type can bitrate 500000
root@desk-mx6ul-lynx:~# ifconfig can0 up
root@desk-mx6ul-lynx:~# ifconfig can0
can0: flags=193<UP,RUNNING,NOARP>  mtu 16
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 10  (UNSPEC)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 33

Usage with can-utilsEdit

root@desk-mx6ul-lynx:~# ip link set can0 type can bitrate 500000 triple-sampling on loopback on
root@desk-mx6ul-lynx:~# ifconfig can0 up
root@desk-mx6ul-lynx:~# candump can0 &
[1] 291
interface = can0, family = 29, type = 3, proto = 1
root@desk-mx6ul-lynx:~# cansend can0 -i 0x7ff 00 01 02 03 04 05 06 07 
interface = can0, family = 29, type = 3, proto = 1
<0x7ff> [8] 00 01 02 03 04 05 06 07 
<0x7ff> [8] 00 01 02 03 04 05 06 07

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.rst