iMX6ULL应用笔记接口篇之SPI接口

原创 2022-12-08 15:26:00 imx6ull SPI
 本文主要适用于飞凌 OKMX6ULL-S 平台 Linux4.1.15 操作系统,其他平台也可以参考,但是不同平台之间会存在差异,需客户自行修改以适应自己的使用。  

imxull-C核心板

FETMX6ULL-S核心板点击查看详情

iMX6ULL应用笔记接口篇主要适用于飞凌 OKMX6ULL-S 平台 Linux4.1.15 操作系统,主要讲解iMX6ULL系列产品接口的一些DEMO测试例程,本篇介绍SPICAN模块讲解相关知识点。本文使用的思路和方法仅供参考使用,其它arm开发板虽然芯片不同,但思路和方法有很多的共性,希望对您在板卡的使用中能够有所帮助,更多ARM开发板相关资讯,关注飞凌嵌入式。 如对本文讲解有不明之处,您也可以联系飞凌的技术支持团队咨询了解。《iMX6ULL应用笔记》点此索取

先了解一下这款开发板

FETMX6ULL-S核心板采用NXP的高性能、超高效、低成本处理器MCIMX6Y2开发设计,采用先进的ARM Cortex-A7内核,运行速度高达800MHz。先进的电源管理架构可以提供更低的功耗。 标配8路原生UART 、2路网口、2路CAN-bus总线、2路USB OTG等常用接口;核心板支持工业级和商业及两种配置:256MB DDR3L/512MB DDR3L,256MB NandFlash/4GB eMMC/8GB eMMC,方便用户不同的选择。为了方便用户二次开发的同时简化用户设计,为您的项目评估提供良好的评估及设计依据,飞凌为核心板提供了开发套件OKMX6ULL-S开发板,配备丰富的功能接口,满足用户多样化需求。

imx6ull开发板

OKMX6ULL-C开发板(点击查看详情


一、SPI 接口

6ull 最多可以支持 4 路原生的 spi 接口,分别为:


其中第一列为接口号,第二列为功能,第三列为可以复用此功能的引脚名称,第四列为引脚的模式。
下面以添加 ecspi1 为例进行添加和测试:
1、从上表中选取 ecspi1 的 4 组引脚,其中 MISO 采用 CSI_DATA07,MOSI 采用 CSI_DATA06,SCLK
采用 CSI_DATA04,SS0 采用 CSI_DATA05。

2、在对应的设备树文件/arch/arm/boot/dts/imx6ull-14x14-evk.dts 中添加 ecspi1 节点。


&ecspi1 {

compatible = "fsl,imx51-ecspi";
fsl,spi-num-chipselects = <1>;
cs-gpios = <&gpio4 26 0>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_ecspi1>,<&pinctrl_ecspi1_cs>;
status = "okay";
spidev@0{
compatible = "spidev";
spi-max-frequency = <20000000>;
reg = <0>;
status = "okay";
};
}


3、在&iomuxc 节点下添加 pinctrl_ecspi1 和 pinctrl_ecspi1_cs
pinctrl_ecspi1: ecspi1grp {
fsl,pins = <
MX6UL_PAD_CSI_DATA07__ECSPI1_MISO 0x100b1
MX6UL_PAD_CSI_DATA06__ECSPI1_MOSI 0x100b1
MX6UL_PAD_CSI_DATA04__ECSPI1_SCLK 0x100b1
>;
};
pinctrl_ecspi1_cs: ecspi1_csgrp {
fsl,pins = <
MX6UL_PAD_CSI_DATA05__GPIO4_IO26 0x80000000
>;
};
4、把之前的 csi 功能关闭,避免引脚复用冲突



5、根据用户编译手册中的方法编译设备树后替换之前的.dtb 文件,重新烧录。
6、重新启动开发板,查看/dev 目录下是否生成 spidev0.0 节点,如果生成说明添加 ecspi1 成功。
7、此处只是进行短接 miso 和 mosi 进行的测试,运行 fltest_cmd_spidev -D /dev/spidev0.0

二、SPI 转 CAN 接口

SPI 转 CAN 模块采用的是 mcp2515 芯片,linux4.1.15 内核版本,默认没有配置此芯片的驱动
1、添加 mcp2515 驱动
在配置文件 imx6ull_defconfig(arch/arm/configs/imx6ull_defconfig)文件中设置
CONFIG_CAN_MCP251X=y
2、配置设备树
在设备树根节点下添加 clocks 节点
3、参考应用笔记中的“SPI 接口”,添加 ecspi2,并将其中的 spidev 设备改为 can0:mcp2515

添加 pinctrl_ecspi2、pinctrl_ecspi2_cs 和 pinctrl_can 配置

4、把之前的 csi 功能关闭,避免引脚复用冲突
5、把原生的 flexcan1 和 flexcan2 屏蔽掉
6、重新编译内核和设备树,重新烧写。
7、此 ecspi2 驱动加载成功后,cat /sys/bus/spi/devices/spi1.0/modalias 会出现 spi:mcp2515
8、ifconfig 查看会有 can0 节点。可以参考“用户使用手册”FlexCAN 设备章节进行测试


相关产品 >

  • OKMX6ULL-S开发板

    iMX6ULL是飞凌新近推出的一款开发板,iMX6ULL与iMX6UL开发板相比,功能无区别完全兼容,配置升级,性能高,价格低。根据介绍可看出i.MX6ULL参数丰富 ,采用NXP i.MX6ULL处理器芯片,邮票孔封装,支持Linux系统,i.MX6ULL开发板资料丰富,方便二次开发设计。

    了解详情
    OKMX6ULL-S开发板
  • FETMX6ULL-S核心板

    飞凌新出的一款采用NXP高性能、高效、低成本处理器的核心板—FETMX6ULL-S核心板,i.MX6ULL核心板采用邮票孔连接方式,ARM Cortex-A7内核,原生两路网口,两路Can和八路串口,可以和多种设备同时通讯。i.MX6ULL核心板支持工业级和扩展商业级两种配置,并且经过了高低温测试的检验,iMX6ULL核心板采用Linux4.1.15+Qt5.6操作系统,方便开发自己的应用程序。 了解详情
    FETMX6ULL-S核心板
  • FETMX6ULL-C核心板

    FETMX6ULL-C核心板采用NXP i.MX6ULL处理器开发设计,是一款高性能Linux核心板,采用低功耗的ARM Cortex-A7架构,运行速度高达800MHz。iMX6ULL核心板29*40mm  ,iMX6ULL这款处理器功能接口资源丰富,供货周期长。

    了解详情
    FETMX6ULL-C核心板
  • OKMX6ULL-C开发板

    40*29mm,双网双CAN,8路串口| i.MX6ULL开发板是基于NXP i.MX6ULL设计开发的的一款Linux开发板 ,主频800MHz,体积小,其核心板仅40*29mm,采用板对板连接器,适应场景丰富。 了解详情
    OKMX6ULL-C开发板

推荐阅读 换一批 换一批