企业号介绍

全部
  • 全部
  • 产品
  • 方案
  • 文章
  • 资料
  • 企业

飞凌嵌入式

141内容数 29608浏览量 71粉丝

专注智能设备核心平台研发与制造

工程师讲解 | T507实现SPI转CAN 全过程

01-14 206浏览量

 

作者|牛志超

来源 | 飞凌嵌入式

题图|飞凌嵌入式 FETT507-C核心板

 

 

全志T507处理器本身不支持CAN功能,那有什么方法可以实现CAN功能呢?

我们已知FETT507-C核心板是支持SPI接口的,但底板没有引出该接口,所以小编打算通过引脚复用方式,复用出SPI接口并做成SPI转CAN,来实现CAN功能。

本文所采用的方法是通过添加MCP2515驱动及配置,实现SPI转CAN功能。

 

一、选择引脚
 

首先确认要使用的引脚,由于开发板默认没有配置SPI,因此既要选用于SPI功能的引脚,也要选择用于can模块的中断引脚。

SPI需要CS0、CLK、MOSI、MISO四个引脚,can模块需要一个中断引脚。中断引脚可以随便使用一个具有中断功能的引脚。打开硬件资料中的FETT507-C核心板引脚复用对照表,先确认哪些引脚可以用做SPI,我们搜索SPI可以找到两组引脚

 

 

因为PC3、PC4和启动相关这里不考虑使用SPI0,我们用SPI1,SPI1使用的引脚默认为音频接口使用的引脚,音频将不能使用。所以我们的中断引脚也从音频使用的引脚中选择,我们选择PH9(用户可根据实际情况选择具有中断功能的引脚)。

 

 

我们需要的引脚已经确定了(加粗的5个引脚),现在进行软件修改

 

二、相关设备
 

首先查看设备树,本次使用到的设备树如下:

kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi

kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1.dtsi

kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-pinctrl.dtsi

kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-clk.dtsi

 

三、去掉所选引脚原有配置
 

从核心板引脚功能复用表格可以看到,选用的引脚原本配置的功能:

 

 

sun50iw9p1-pinctrl.dtsi搜索PH5引脚,可以看到ahub_daudio3_pins_a和ahub_daudio3_pins_b是用于音频,在设备树路径使用grep"ahub_daudio3_pins_a" ./ -nr指令可以查到,在sun50iw9p1.dtsi里有调用:

 

 

打开sun50iw9p1.dtsi,可以看到在ahub_daudio3节点有调用,将status设置为disabled(默认即为disablded状态)

 

 

这个设备树里设置的disabled,继续查找该设备树的上级设备树:OKT507-C-Common.dtsi。OKT507-C-Common.dtsi有做开启设置,需要将ahub_daudio3关掉,status= "disabled"。PH5、PH6、PH7、PH8、PH9的占用都解除了。

 

 

四、配置SPI1
 

4.1使能SPI1配置

 

搜索SPI1相关内容,在sun50iw9p1.dtsi中可以看到

 

 

这个是对SPI1的注册,将status改为okay,这里对相关引脚和时钟做了配置。

 

4.2 SPI1的时钟及引脚配置

 

时钟:我们通过查看sun50iw9p1-clk.dtsi可以看到clk_pll_periph0和clk_spi1的内容,我们使用默认配置即可。这里不再贴图,可自行查看

引脚:我们查看sun50iw9p1-pinctrl.dtsi可以看到spi1_pins_a、spi1_pins_b和spi1_pins_c的内容,使用引脚为PH5、PH6、PH7、PH8。

 

 

 

五、配置SPI转CAN设备
 

5.1 添加设备

 

在OKT507-C-Common.dtsi中SPI0节点后添加SPI转CAN相关节点,添加内容如下:

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
spi1: spi@05011000 {  pinctrl-0 = <&spi1_pins_a &spi1_pins_b>;  pinctrl-1 = <&spi1_pins_c>;  spi_slave_mode = <0>;  status = "okay";
    can0: can@0 {      compatible = "microchip,mcp2515";      pinctrl-names = "default";      pinctrl-0 = <&mcp2515_int>;      reg = <0>;      spi-max-frequency = <1000000>;      clocks = <&clk_osc8m>;      interrupt-parent = <&pio>;      interrupts = ;      status = "okay";    };};

左右滑动查看完整代码

 

其中中断引脚配置,请根据实际配置的引脚进行修改。

 

 

5.2 时钟配置

 

我们在注册can的时候用到了时钟和中断引脚,前边关掉音频时PH9已经可以使用了,但是我们用到的8M时钟clk_osc8m还没有注册。

打开sun50iw9p1-clk.dtsi,添加clk_osc8m到clk_osc48m下边

 

  •  
  •  
  •  
  •  
  •  
  •  
clk_osc8m: osc8m {  #clock-cells = <0>;  compatible = "allwinner,fixed-clock";  clock-frequency = <8000000>;  clock-output-names = "osc8m";};

左右滑动查看完整代码

 

如果是选择24M晶振,也可注册clk_osc24m,clock-frequency改为24000000

 

 

5.3 中断引脚配置

 

在OKT507-C-Common.dtsi中添加,在该设备树中搜索:pio:pinctrl@0300b000,将以下配置添加到该节点里边。

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
mcp2515_int: can0@0 {  allwinner,pins = "PH9";  allwinner,pname = "mcp2515_int";  allwinner,function = "irq";  allwinner,muxsel = <6>;  allwinner,drive = <1>;  allwinner,pull = <0>;};

左右滑动查看完整代码

 

5.4 mcp2515驱动配置

 

到此,我们在设备树中的修改已经完成接下来,我们添加mcp2515驱动配置,驱动位于kernel/linux-4.9/drivers/net/can/spi/,可以看到mcp251x.c,我们可以打开该目录里的Makefile文件,Makefile文件中已经配置了CONFIG_CAN_MCP251X

进入kernel/linux-4.9目录中,执行如下命令:

 

  •  
  •  
make sun50iw9p1smp_longan_defconfigmake menuconfig ARCH=arm64

左右滑动查看完整代码

 

进入图形配置界面,我们添加mcp2515的编译,每一级目录选如下选项:

 

  •  
  •  
  •  
  •  
  •  
[*] Networking support  --->  <*>CAN bus subsystem support  --->    CAN Device Drivers  --->      CAN SPI interfaces  --->        <*> Microchip MCP251x SPI CAN controllers

左右滑动查看完整代码

 

前边括号里的内容通过空格键修改,“*”是编译进内核,“M”是编译成模块,空的是不编译。此处需要编译进内核

修改完成后按Esc键退出,最后选yes保存配置为.config。

 

修改完成,按照手册编译源码,生成镜像

 

注:

  • 配置menuconfig后保存为.config,使用./build.shkernel单步编译内核,会使用该.config

  • 若使用./build.sh进行全编译,会重新把sun50iw9p1smp_longan_defconfig加载为.config,之前的配置将不生效。因此通过menuconfig修改完后,保存的.config要做好备份,在全编译前需要将文件,将其重命名为sun50iw9p1smp_longan_defconfig,并替换kernel/linux-4.9/arch/arm64/configs下的同名文件

 

 

六、CAN测试
 

 

将编译好的镜像烧录到核心板中,并将资料里的相关测试工具:ip、cansend和candump拷贝到开发板根目录。

硬件接好SPI转CAN模块,与PC机接好,使用USB转CAN插在电脑上

启动开发板执行以下程序进行测试:

 

  •  
  •  
  •  
  •  
  •  
ifconfig can0 down/ip link set can0 up type can bitrate 125000 triple-sampling onifconfig can0 up/cansend can0 123#12345678     //发送数据/candump can0                  //接收数据

左右滑动查看完整代码

 

七、硬件修改方法
 

 

在OKT507-C开发板上移植使用SPI转CAN模块

首先要在开发板上去掉C132/U18这两个器件,之后通过飞线的方式将SPI转CAN的模块连接至开发板,连接方式如下:

 

 

SPI转CAN的5V主供电可以通过音频芯片正下方的R194和R199上获得,位置如下图:

 

CAN

最近浏览过的用户(0查看全部

为你推荐

  • FET-G2LD-C核心板及开发板上手评测2022-05-27 11:05

    5月18日,飞凌嵌入式发布了基于瑞萨电子RZ/G2L处理器开发的FET-G2LD-C核心板和OK-G2LD-C开发板。RZ/G2L处理器有着丰富的外设接口,在具有较高的性能表现的同时还兼具低功耗的特点。由于这款处理器上市时间较短,还有很多的工程师朋友对它不够了解,存在很多疑问,为解答大家反馈较多的问题,今天小编专门针对FET-G2LD-C核心板和OK-G2L
    开发板 6浏览量
  • 未来已来 | 万物互联让农业更智慧2022-05-27 11:04

    今年一月,中央网信办、农业农村部等10个部门联合印发了《数字乡村发展行动计划(2022-2025年)》,将“智慧农业创新发展行动”列入重点任务。作为发展数字乡村建设的关键,智慧农业对于我国农业现代化建设和实施乡村振兴战略具有重大引领与推动作用。农业如何变得智慧?“智慧农业”是农业生产的高级阶段,是集新兴的互联网、移动互联网、云计算和物联网技术为一体,依托部署
    物联网 6浏览量
  • 重磅新品丨飞凌FET-G2LD-C工业级核心板发布!2022-05-26 10:31

    谈及瑞萨电子,相信大部分工程师对其印象是全球领先的微控制器、模拟功率器件和SoC供应商,技术实力雄厚。RZ/G2L是瑞萨电子在泛工业领域推出的一颗高性能、超高效处理器,亮点颇多,其采用Cortex-A55+Cortex-M33多核异构,功能接口资源丰富,多媒体性能出众,具有很强的泛用性和易用性。为了让更多工程师用户可以更好的了解这颗稳定易用的处理器,更便捷的
    核心板 5浏览量
  • 用智慧照亮生活—FET1046A-C核心板打造智慧灯杆方案2022-05-21 09:24

    智慧灯杆是集照明、视频监控、交通管理、环境监测、通信等多功能于一体的新型信息基础设施,是构建新型智慧城市的重要载体。5G的普及,为智慧灯杆发展创造了新机遇,作为新一代城市信息基础设施的智慧灯杆,与“新基建”中的不少领域相关,比如5G基站、新能源汽车充电桩和车联网等。智慧灯杆作为智慧城市的一个重要组成部分和重要入口,是智慧城市信息化建设天然的搭载平台。可以说在
    智慧灯杆 核心板 16浏览量
  • 干货分享 | Debian系统移植USBWiFi RTL8192EU驱动并设置开机自启2022-05-21 09:24

    作者:donatello1996来源:电子发烧友题图:飞凌嵌入式原文标题:【飞凌嵌入式OKMX8MP-C开发板试用体验】移植USBWIFIRTL8192EU驱动并设置开机自启动我(笔者)在飞凌OKMX8MP-C开发板上移植了自行搭建的Debian系统之后,发现板卡原有的WiFi模块无法使用,在内核里面添加了支持项也没用,后面跟飞凌的技术支持工程师王工沟通,了
    驱动器 19浏览量
  • 瑞萨RZ/G2L系列-飞凌嵌入式FET-G2LD-C核心板新品发布2022-05-18 16:37

    RZ/G2L是瑞萨电子在泛工业领域推出的一颗高性能、超高效处理器,亮点颇多,其采用Cortex-A55+Cortex-M33多核异构,功能接口资源丰富,多媒体性能出众,具有很强的泛用性和易用性。作为国内主流嵌入式ARM板卡供应商的飞凌嵌入式与瑞萨电子强势合作,正式推出搭载RZ/G2L处理器的FET-G2LD-C核
  • iMX6ULL动态评测-老将新甲 29*40mm的iMX6ULL 够小2022-05-05 11:58

    iMX6ULL核心板尺寸仅29*40mm,采用NXP iMX6ULL低功耗处理器设计,小尺寸,高性能应用领域更加广泛
    NXP arm 开发板 74浏览量
  • iMX6ULL功能介绍|框架图|功耗|核心板硬件设计说明|原理图2022-04-30 09:55

    NXPi.MX6ULL扩展了i.MX6系列,它是一个高性能、超高效、低成本处理器子系列,采用先进的ARMCortex-A7内核,运行速度高达800MHz。i.MX6ULL应用处理器包括一个集成的电源管理模块,降低了外接电源的复杂性,并简化了上电时序,目标应用有:汽车远程信息处理、IoT网关、人机界面、家庭能源管理系统、智能能源信息集中器、智能工业控制系统、电子POS设备、便携医疗设备、打印机和2D
    arm 开发板 58浏览量
  • 赋能安防监控智能化升级 | 由嵌入式板卡实现的NVR方案2022-04-29 09:53

    随着网络技术的不断发展,通过网络对视频数据进行存储的需求越来越多,这直接推动了DVR(硬盘录像机)发展为具有网络功能的NVR(网络视频录像机)。NVR是NetVideoRecorder的缩写,主要负责网络视音频信号的接入和存储、转发、解码、预览等功能。纵观视频监控系统的技术变革,从第一代的模拟监控到第二代的数字监控,再到现在盛行的网络监控,视频监控系统已成功
    嵌入式 26浏览量
  • 先睹为快! FETMX6ULL-C核心板开箱2022-04-21 11:25

    飞凌嵌入式于4月11日发布了一款新品FETMX6ULL-C核心板。作为飞凌基于NXPi.MX6U系处理器所开发的第三款核心板,它有什么独特优势?让我们通过视频一睹为快!钩沉新生匠心可见FETMX6ULL-C核心板基于NXPi.MX6ULL处理器设计开发,ARMCortex-A7架构,在保持低功耗的同时主频高达800MHz。FETMX6ULL-C核心板接口资源
    核心板 49浏览量
  • 基于A40i平台在RTK接收机上的应用-RTK接收机解决方案-飞凌嵌入式2021-10-28 10:33

    RTK接收机是一款通过无线通信设备接收单基站或者网络 RTK 播发的北斗/GNSS 载波相位实时动态差分数据,自主进行实时解算,提供高精度定位结果的终端设备。本文介绍了一款基于国产A40i设计RTK接收机的应用方案
    RTK 89浏览量
  • 激光喷码机-基于ARM+FPGA的控制系统设计方案-飞凌嵌入式2021-10-28 10:11

    激光喷码机-基于ARM+FPGA的控制系统设计方案。激光喷码机是通过高能量的激光直接聚焦到物体表面,使之发生物理化学变化而形成的,并随着激光束的焦点在打标物体表面上有规律地移动,同时控制激光的有无,就在物体表面形成了指定的打标图案。 激光打标具有非接触式标记,标记速度快,污染小,无耗材损失和标识清晰、永久等优点,具有强大的竞争能力,正在逐渐地取代传统的油墨喷码机
    63浏览量
  • 一种基于ARM核心板设计的无线示教器解决方案-飞凌嵌入式2021-10-28 10:04

    目前机器人示教器通过摇杆;按键;旋钮等方式对机器人的运动做出控制,结合示教器内部的系统软件,将数据发送至机器人控制系统,以此达到示教器的输入目的,当机器人运动时,其运动状态等信息需要展示给用户,则机器人系统将数据传输到示教器,示教器对机器人运动状态进行相关的显示,以此达到人际交互的目的。
    63浏览量
  • ARM核心板在3D打印机中的解决方案推荐-飞凌嵌入式2021-10-28 10:01

    3D打印机通常是采用数字技术材料打印机来实现的。常在模具制造、工业设计等领域被用于制造模型,后逐渐用于一些产品的直接制造,在珠宝、鞋类、工业设计、建筑、工程和施工(AEC)、汽车,航空航天、牙科和医疗产业、教育、地理信息系统、土木工程、枪支以及其他领域都有所应用。
    3D打印机 63浏览量
  • 环保数采仪|环保监测数采仪|生态环境监测数据采集器解决方案-飞凌嵌入式2021-10-27 17:27

    环保数采仪采用高性能ARM高端处理器,嵌入式Linux操作系统和嵌入式实时数据库。飞凌嵌入式推出ARM核心板广泛应用于环保数采仪|环保监测数采仪|生态环境监测数据采集器,为环保监测提供硬件解决方案
    81浏览量
  • ARM核心板应用于在线水质检测仪器解决方案2021-10-27 17:08

    ARM核心板应用于在线水质检测仪器解决方案。飞凌嵌入式ARM嵌入式核心板除了应用于在线水质监测,还可应用于大气有害气体监测、扬尘监测、废弃监测、噪声扬尘、气象等多种环境监测领域;面对多种不同的监测需求,飞凌嵌入式可根据客户需求进行定制开发
  • 特高压输电线路在线监测系统方案-A40i 核心板 应用解析-飞凌嵌入式2021-10-27 16:45

    本文中介绍的特高压输电线路在线监测系统,不仅能提高输电线路运行的可靠性,还能实现数据的融合共享,因此成为了输电线路中必不可少的一部分。基于特高压输电线在线监测系统的原理及系统组成,推荐飞凌嵌入式基于全志A40i设计的FETA40i-C核心板,首先是国产工业级的稳定性,再加上成本上的优势,让其在众多产品中脱颖而出
    34浏览量
  • 卡车高级驾驶辅助系统 (ADAS) 解决方案 -飞凌嵌入式2021-10-27 16:31

    卡车高级驾驶辅助系统 (ADAS) 解决方案,汽车ADAS指的是高级驾驶辅助系统,ADAS是Advanced Driver Assistance System的简称。该系统的核心在于“驾驶辅助”,可以为驾驶员提供更安全的驾驶体验。辅助驾驶系统,作为车车辆安全管理中的一个非常重要的内容。
  • 解决方案:核心板在自助加油机上的应用 - 飞凌嵌入式2021-10-27 15:51

    加油站的智能化解决方案。 加油站是多元的,应用场景也简单明了,给车加油。加油站的智能化方案中自助加油系统的广泛性和便利性,使得其应用越来越多地受到青睐。飞凌嵌入式为您提供智慧自助加油机显控终端主控板,智能加油机解决方案
    37浏览量
  • 车联网车载T-BOX系统解决方案_汽车TBOX 嵌入式arm应用-飞凌嵌入式2021-10-27 15:31

    车联网车载T-BOX系统解决方案_嵌入式arm在汽车TBOX 中的应用,飞凌嵌入式推出基于嵌入式arm技术的核心板在T-Box的解决方案中得到广泛应用,为用户缩短研发周期、提升产品整体竞争力提供有效的保证。
    454浏览量
  • RK3568核心板-飞凌嵌入式2022-03-16 18:23

    产品型号:RK3568 CPU:RK3568 架构:Cortex-A55 主频:2.0GHz 内存:2GB/4GB/8GB DDR4(标配2GB) ROM:16GB eMMC
  • RK3568开发板-飞凌嵌入式2022-03-16 18:17

    产品型号:RK3568 CPU:RK3568 架构:Cortex-A55 主频:2.0GHz 内存:2GB/4GB/8GB DDR4(标配2GB) ROM:16GB eMMC
  • iMX6ULL开发板-飞凌嵌入式2021-10-23 15:55

    产品型号:OKMX6ULL-S开发板 CPU:i.MX6ULL 架构:Cortex-A7 主频:800MHz 内存:256MB DDR3,512MB DDR3 存储:256MB NandFlash,4GB eMMC
  • iMX8M Plus 开发板-飞凌嵌入式2021-08-20 14:00

    产品型号:i.MX8MPlus CPU:i.MX8M Plus 架构:4*Cortex-A53+Cortex-M7 主频:1.6GHz 内存:4GB LPDDR4 ROM:16GB eMMC
  • 全志国产工业级A40i开发板-飞凌嵌入式2021-08-16 13:44

    产品型号:A40i CPU:A40i 架构:Cortex-A7 主频:1.2GHz 内存:1GB DDR3,2GB DDR3 ROM:8GB eMMC
  • 全志系列-T507开发板-飞凌嵌入式2021-08-16 12:03

    产品型号:T507 CPU:T507 架构:Cortex-A53 主频:1.5GHz 内存:2GB DDR3L ROM:8GB eMMC
  • iMX8MQ开发板-飞凌嵌入式2021-08-16 11:44

    产品型号:iMX8MQ CPU:iMX8MQ 架构:四核Cortex-A53+Cortex-M4 主频:1.3GHz 内存:2GB DDR4 ROM:8GB eMMC
  • LS1028A开发板-飞凌嵌入式2021-08-12 14:08

    产品型号:LS1028A CPU:LS1028A 架构:Cortex-A72 主频:1.5GHz 内存:2GB DDR4 ROM:8GB eMMC