SSD20X SPI转CAN适配

基于SSD20X 核心板适配 MCP2515 SPI转CAN芯片。

一、kernel配置

1、开启MCP2515 驱动

Networking support  --->

    <*>   CAN bus subsystem support  ---> 

         CAN Device Drivers  ---> 

             CAN SPI interfaces  --->

                <M> Microchip MCP251x SPI CAN controllers  

attachments-2022-10-sRJ2Dfp86344d06dc2a2a.png


2、开启SPI 

Device Drivers  ---> 

    [*] SStar SoC platform drivers  ---> 

         <*>   MS SPI driver 

attachments-2022-10-1CahHmsR6344d0ebed3e3.png


注意:配置好kernel后,需要cp  .config 至对应的xxxxdefconfig,否则编译配置不会生效。

二、DTS配置

1、配置SPI DTS。

vi kernel/arch/arm/boot/dts/infinity2m-ssc011a-s01a-padmux-rgb565-rmii-doublenet.dtsi 

attachments-2022-10-ude0C7If6344d12f465bd.png


 vi kernel/arch/arm/boot/dts/infinity2m-doublenet.dtsi   

attachments-2022-10-Zuo1n0WA6344d1c4ae9f5.png


2、配置MCP2515的DTS

attachments-2022-10-PtgPS4NX6344d2a510131.png


重新编译,会发现找不到clocks = <&CLK_xtali_16m>; 

我们可以在一下位置添加即可。

vi kernel/arch/arm/boot/dts/infinity2m-clks.dtsi 

attachments-2022-10-ugMtP2AG6344d33ea75fd.png

重新编译后,将kernel编译成功的mcp2515.ko拷贝至开发板。

insmod  mcp2515.ko

成功安装驱动后,ifconfig就可以看到can0出来了。

出现问题,可以从以下几点排查。
1、SPI接线是否正确,mosi miso不要接反了。
2、kernel配置是否开启,注意同步kernel配置。
3、mcp2515.ko是否安装成功,可以在驱动源码的probe函数中添加打印进行调试。
4、can收发测试不正常,注意检查IO中断防止该IO复用了其他功能。
5、ifconfig can0 up 提示:ifconfig: SIOCSIFFLAGS: No such device

可以按照一下方式修改配置。

vi kernel/drivers/sstar/spi/infinity2m/mspi.c

修改SPI0,把master->max_speed_hz = 54000000改为master->max_speed_hz = 16000000。
attachments-2022-10-gvCvtoVR6344d8d2837b5.png

  • 发表于 2022-10-11 10:45
  • 阅读 ( 140 )
  • 分类:SSD20X

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
BBelephant
BBelephant

12 篇文章

作家榜 »

  1. BBelephant 12 文章
  2. ronnie 11 文章
  3. FU 9 文章
  4. toca 4 文章
  5. 大飞 3 文章
  6. Vivek 3 文章
  7. jack-fang 2 文章
  8. Bin 1 文章