嵌入式爱好者

嵌入式爱好者 门户 知识库 查看内容

9352适配spi转can-mcp2518芯片

2023-11-30 17:43| 发布者: 奥卡姆剃刀| 查看: 719| 评论: 0

类目:  >  知识库     文档编号: 1228

MCP2518这个芯片包含can以及canfd功能,相比于mcp2517芯片来说,新增了ECC校验功能,保障了传输过程的稳定性。

说明:OKMX93开发板内核源码中已经包含了2518的驱动,直接修改设备树及驱动配置即可。

驱动路径:OKMX93-linux-sdk/OKMX93-linux-kernel/drivers/net/can/spi/mcp251xfd-core.c

1添加驱动配置

Make menuconfig打开图形配置界面,搜索“MCP251XFD

将这一行选成编译成模块:

(M) Microchip MCP251xFD SPI CAN controllers

2修改设备树

forlinx@ubuntu:~/OKMX93-linux-sdk/OKMX93-linux-kernel/$ vi arch/arm64/boot/dts/freescale/\

OK-MX93-C.dts

3添加时钟节点:

[……]

/ {

clk20M: oscillator-0 {

compatible = "fixed-clock";

#clock-cells = <0>;

clock-frequency = <20000000>;

};

[……]

新增lpspi3节点,在此节点下增加mcp2518节点:

[……]

&lpspi3 {

pinctrl-names = "default";

pinctrl-0 = <&pinctrl_lpspi3>;

pinctrl-1 = <&pinctrl_lpspi3>;

cs-gpios = <&gpio2 8 GPIO_ACTIVE_LOW>;

status = "okay";

spican:can@0 {

compatible = "microchip,mcp2518fd";

reg = <0>;

clocks = <&clk20M>;                      //使用刚刚写的时钟

spi-max-frequency = <10000000>;  //spi最大频率设置,此处为1MHz

interrupts-extended = <&gpio2 16 IRQ_TYPE_LEVEL_LOW>;//中断引脚配置,中断引脚是GPIO2_IO16

/*interrupt-parent = <&gpio2>;

interrupts = <16 IRQ_TYPE_LEVEL_LOW>;*/

/*vdd-supply = <&vdc_5v>;

xceiver-supply = <&vdc_5v>;*/

/*status = "okay";*/

};

};

 

[……]

5添加中断引脚配置:

[……]

pinctrl_inte:mcp2518fdrp{

fsl,pins = <

MX93_PAD_GPIO_IO16__GPIO2_IO16 0x31e

>;

};[……]

6编译源码并烧写。

7开机验证

在开发板上SPI3接口处接上2518转接板,启动开发板。

查看驱动是否成功挂载:

root@ok-mx93:~# lsmod

Module Size Used by

can_raw 20480 1

can 28672 1 can_raw

vvcam_video 32768 0

moal 716800 1

mlan 499712 1 moal

cdc_acm 32768 0

xr_usb_serial_common 45056 0

vvcam_isp 69632 1

vvcam_dwe 20480 1

imx8_media_dev 20480 0

basler_camera_driver 16384 0

crct10dif_ce 16384 1

edt_ft5x06 24576 0

basler_camera_driver_vvcam 16384 0

goodix 24576 0

mcp251xfd 24576 0

flexcan 32768 0

can_dev 36864 2 mcp251x,flexcan

8查看是否生成节点:

root@ok-mx93:~# ifconfig can2 

can2 Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  

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:32 

[……]

 

 


已解决

未解决

只是看看

最新评论

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2025-7-11 14:38

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

返回顶部