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開發板

推薦閱讀 換一批 換一批