查看: 813|回复: 0

【飞凌iMX6ULL 开发板测评】 OKMX6ULL-C 开发板测评(五)

[复制链接]
  • TA的每日心情
    开心
    2022-6-24 11:14
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2022-7-26 17:39:55 | 显示全部楼层 |阅读模式
    分享到:
    SPI接口是我们经常使用的接口,也是高速片内通行的常用端口,工程师使用SPI调用也使用频率很高的一个操作。如下是调试的笔记:
    6ull 最多可以支持 4 路原生的 spi 接口,分别为:  
    BE902BD7-FDC7-4deb-8087-AC76A95631B0.png 0575A506-DA37-4eab-AD40-F44AABE99907.png
    OKMX6ULL-S
    其中第一列为接口号,第二列为功能,第三列为可以复用此功能的引脚名称,第四列为引脚的模式。
    下面以添加 ecspi1 为例进行添加和测试:
    1、从上表中选取 ecspi1 4 组引脚,其中 MISO 采用 CSI_DATA07,MOSI 采用 CSI_DATA06,SCLK
    采用 CSI_DATA04SS0 采用 CSI_DATA05
    2、在对应的设备树文件/arch/arm/boot/dts/imx6ull-14x14-evk.dts 中添加 ecspi1 节点。
    07825DE2-CF02-498c-A47B-5DAFB35FCD40.png
    &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
    D5E76393-9414-467b-AD83-709E1953894A.png
    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
    >;技术参考手册_应用笔记
    OKMX6ULL-S
    };
    4、把之前的 csi 功能关闭,避免引脚复用冲突
    E4686873-DD62-4ac2-93AC-672009322AA6.png
    5、根据用户编译手册中的方法编译设备树后替换之前的.dtb 文件,重新烧录。
    6、重新启动开发板,查看/dev 目录下是否生成 spidev0.0 节点,如果生成说明添加 ecspi1 成功。
    7、此处只是进行短接 miso mosi 进行的测试,运行 fltest_cmd_spidev -D /dev/spidev0.0
    8CD74939-4522-41c1-9404-E379222300CD.png
    SPI 转 CAN 接口
    SPI CAN 模块采用的是 mcp2515 芯片,linux4.1.15 内核版本,默认没有配置此芯片的驱动
    1、添加 mcp2515 驱动
    在配置文件 imx6ull_defconfigarch/arm/configs/imx6ull_defconfig)文件中设置
    CONFIG_CAN_MCP251X=y技术参考手册_应用笔记
    OKMX6ULL-S
    D98C9964-F97D-48ec-A2E8-85A72BDDE688.png
    2、配置设备树
    在设备树根节点下添加 clocks 节点
    F6A2BBD7-C21F-4c83-AE89-8FC7D60E0C95.png
    3、参考应用笔记中的SPI 接口”,添加 ecspi2,并将其中的 spidev 设备改为 can0mcp2515
    C0A34317-6055-4ed5-A418-6D8B7F3DE550.png
    添加 pinctrl_ecspi2pinctrl_ecspi2_cs pinctrl_can 配置技术参考手册_应用笔记
    D49E644C-893A-417e-A024-9AD1DDB90AEF.png 540EE05F-1759-4c46-A6F1-5CD5C27670D7.png
    OKMX6ULL-S
    4、把之前的 csi 功能关闭,避免引脚复用冲突
    5B4D74C3-8A82-4a24-AADC-B3CE9E635094.png
    7F8A06D6-B5D9-4c78-9165-D28F78A552E0.png
    5、把原生的 flexcan1 flexcan2 屏蔽掉

    6、重新编译内核和设备树,重新烧写。
    7、此 ecspi2 驱动加载成功后,cat /sys/bus/spi/devices/spi1.0/modalias 会出现 spimcp2515
    8ifconfig 查看会有 can0 节点。可以参考“用户使用手册”FlexCAN 设备章节进行测试。

    3AFF312F-A6EC-4818-ACF3-CB1328122C25.png
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-11-19 08:53 , Processed in 0.115499 second(s), 16 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.