海思3559平台MCP2515 SPI转CAN驱动配置

2024-02-01 01:58

本文主要是介绍海思3559平台MCP2515 SPI转CAN驱动配置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 转载前言

由于海思平台需要接入CAN设备,而3559平台的CAN接口没有驱动支持; 但是标准Linux是支持mcp2515驱动,作为CAN设备接入的

2. 需要修改内容

  • SPI pinmux复用配置
  • 内核开启mcp2515驱动
  • dts配置

3. SPI pinmux 复用配置

由于mcp2515驱动加载时,是需要通过spi接口读取硬件状态的,所以必须提前配置。 这里有两种方法: 方法一:uboot里面配置 【这里我采用这种方法,方法如下】 方法二: mcp2515驱动probe函数里面添加pinmux复用配置

(1)修改uboot 参数表

(2)制作reg_info.bin

有两种方法,一种使用表格直接生成,另一种使用提供工具生成; 由于我这边WPS缺少库,所以只能使用工具生成,如下:

osdrv/tools/pc/uboot_tools目录下
解压
tar -zxvf hiregbin-v5.0.1.tgz
查看readme修改工具执行权限
chmod 777 hiregbin./hiregbin ./Hi3559AV100-DMEBLITE_8L_T-LPDDR4_2664M_8GB_32bitx2-A73_1608M.xlsm ./reg_info.bin
生成reg_info.bin

(3)生成uboot

将临时文件 reg_info.bin 拷贝到 SDK 中的“osdrv/opensource/uboot/u-boot-2016.11/”目
录下, 并命名为: .reg
make CROSS_COMPILE=aarch64-himix100-linux- u-boot-z.bin

烧写uboot即可

4. 内核开启mcp2515驱动

进入menuconfig make ARCH=arm64 menuconfig 步骤如下:

5. 内核设备树dts配置

修改路径: arch/arm64/boot/dts/hisilicon 硬件连接: MCP2515是挂在SPI1的片选0上的

(1)SPICAN设备配置

&spi_bus1{status = "okay";#if 0spidev@0 {compatible = "rohm,dh2228fv";reg = <0>;pl022,interface = <0>;pl022,com-mode = <0>;spi-max-frequency = <24750000>;};
#endif
#if 1can0: can@0 {compatible = "microchip,mcp2515";reg = <0>;clocks = <&clk_16m>;spi-max-frequency = <2000000>;interrupt-parent = <&gpio_chip17>;interrupts = <5 0x2>;reset-gpios = <&gpio_chip17 6 0>;status = "okay";};#endif

(2) 中断脚和复位脚配置

按照上面,中断脚和复位脚对照硬件,配置好GPIO

中断脚对应: GPIO17-5 复位脚对应: GPIO17-6

(3) 时钟配置

要注意的晶振时钟配置要与MCP2515一致,SPI的最大频率根据MCP2515接收端的承受能力来配置,驱动中会默认设置好传输速率

    soc {#address-cells = <1>;#size-cells = <1>;compatible = "simple-bus";device_type = "soc";interrupt-parent = <&gic>;ranges = <0x0 0x00000000 0x0 0xffffffff>;clk_3m: clk_3m {compatible = "fixed-clock";#clock-cells = <0>;clock-frequency = <3000000>;};
//addclk_16m: clk_16m {compatible = "fixed-clock";#clock-cells = <0>;clock-frequency = <16000000>;};

这篇关于海思3559平台MCP2515 SPI转CAN驱动配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/665736

相关文章

Android开发环境配置避坑指南

《Android开发环境配置避坑指南》本文主要介绍了Android开发环境配置过程中遇到的问题及解决方案,包括VPN注意事项、工具版本统一、Gerrit邮箱配置、Git拉取和提交代码、MergevsR... 目录网络环境:VPN 注意事项工具版本统一:android Studio & JDKGerrit的邮

在.NET平台使用C#为PDF添加各种类型的表单域的方法

《在.NET平台使用C#为PDF添加各种类型的表单域的方法》在日常办公系统开发中,涉及PDF处理相关的开发时,生成可填写的PDF表单是一种常见需求,与静态PDF不同,带有**表单域的文档支持用户直接在... 目录引言使用 PdfTextBoxField 添加文本输入域使用 PdfComboBoxField

SpringBoot3.4配置校验新特性的用法详解

《SpringBoot3.4配置校验新特性的用法详解》SpringBoot3.4对配置校验支持进行了全面升级,这篇文章为大家详细介绍了一下它们的具体使用,文中的示例代码讲解详细,感兴趣的小伙伴可以参考... 目录基本用法示例定义配置类配置 application.yml注入使用嵌套对象与集合元素深度校验开发

IntelliJ IDEA 中配置 Spring MVC 环境的详细步骤及问题解决

《IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决》:本文主要介绍IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决,本文分步骤结合实例给大... 目录步骤 1:创建 Maven Web 项目步骤 2:添加 Spring MVC 依赖1、保存后执行2、将新的依赖

SpringBoot基于配置实现短信服务策略的动态切换

《SpringBoot基于配置实现短信服务策略的动态切换》这篇文章主要为大家详细介绍了SpringBoot在接入多个短信服务商(如阿里云、腾讯云、华为云)后,如何根据配置或环境切换使用不同的服务商,需... 目录目标功能示例配置(application.yml)配置类绑定短信发送策略接口示例:阿里云 & 腾

如何为Yarn配置国内源的详细教程

《如何为Yarn配置国内源的详细教程》在使用Yarn进行项目开发时,由于网络原因,直接使用官方源可能会导致下载速度慢或连接失败,配置国内源可以显著提高包的下载速度和稳定性,本文将详细介绍如何为Yarn... 目录一、查询当前使用的镜像源二、设置国内源1. 设置为淘宝镜像源2. 设置为其他国内源三、还原为官方

usb接口驱动异常问题常用解决方案

《usb接口驱动异常问题常用解决方案》当遇到USB接口驱动异常时,可以通过多种方法来解决,其中主要就包括重装USB控制器、禁用USB选择性暂停设置、更新或安装新的主板驱动等... usb接口驱动异常怎么办,USB接口驱动异常是常见问题,通常由驱动损坏、系统更新冲突、硬件故障或电源管理设置导致。以下是常用解决

CentOS7更改默认SSH端口与配置指南

《CentOS7更改默认SSH端口与配置指南》SSH是Linux服务器远程管理的核心工具,其默认监听端口为22,由于端口22众所周知,这也使得服务器容易受到自动化扫描和暴力破解攻击,本文将系统性地介绍... 目录引言为什么要更改 SSH 默认端口?步骤详解:如何更改 Centos 7 的 SSH 默认端口1

Maven的使用和配置国内源的保姆级教程

《Maven的使用和配置国内源的保姆级教程》Maven是⼀个项目管理工具,基于POM(ProjectObjectModel,项目对象模型)的概念,Maven可以通过一小段描述信息来管理项目的构建,报告... 目录1. 什么是Maven?2.创建⼀个Maven项目3.Maven 核心功能4.使用Maven H

SpringBoot多数据源配置完整指南

《SpringBoot多数据源配置完整指南》在复杂的企业应用中,经常需要连接多个数据库,SpringBoot提供了灵活的多数据源配置方式,以下是详细的实现方案,需要的朋友可以参考下... 目录一、基础多数据源配置1. 添加依赖2. 配置多个数据源3. 配置数据源Bean二、JPA多数据源配置1. 配置主数据