飞凌知识库连载-iMX6ULL应用笔记接口篇之SPI接口

iMX6ULL应用笔记接口篇主要适用于飞凌 OKMX6ULL-S 平台 Linux4.1.15 操作系统,主要讲解iMX6ULL系列产品接口的一些DEMO测试例程,


一、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 设备章节进行测试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值