iMX6ULL應(yīng)用筆記接口篇之SPI接口

原創(chuàng) 2022-12-08 15:26:00 imx6ull SPI
 本文主要適用于飛凌 OKMX6ULL-S 平臺 Linux4.1.15 操作系統(tǒng),其他平臺也可以參考,但是不同平臺之間會存在差異,需客戶自行修改以適應(yīng)自己的使用。  

imxull-C核心板

FETMX6ULL-S核心板點(diǎn)擊查看詳情

iMX6ULL應(yīng)用筆記接口篇主要適用于飛凌 OKMX6ULL-S 平臺 Linux4.1.15 操作系統(tǒng),主要講解iMX6ULL系列產(chǎn)品接口的一些DEMO測試?yán)?,本篇介紹SPI轉(zhuǎn)CAN模塊講解相關(guān)知識點(diǎn)。本文使用的思路和方法僅供參考使用,其它arm開發(fā)板雖然芯片不同,但思路和方法有很多的共性,希望對您在板卡的使用中能夠有所幫助,更多ARM開發(fā)板相關(guān)資訊,關(guān)注飛凌嵌入式。 如對本文講解有不明之處,您也可以聯(lián)系飛凌的技術(shù)支持團(tuán)隊(duì)咨詢了解?!秈MX6ULL應(yīng)用筆記》點(diǎn)此索取

先了解一下這款開發(fā)板

FETMX6ULL-S核心板采用NXP的高性能、超高效、低成本處理器MCIMX6Y2開發(fā)設(shè)計,采用先進(jìn)的ARM Cortex-A7內(nèi)核,運(yùn)行速度高達(dá)800MHz。先進(jìn)的電源管理架構(gòu)可以提供更低的功耗。 標(biāo)配8路原生UART 、2路網(wǎng)口、2路CAN-bus總線、2路USB OTG等常用接口;核心板支持工業(yè)級和商業(yè)及兩種配置:256MB DDR3L/512MB DDR3L,256MB NandFlash/4GB eMMC/8GB eMMC,方便用戶不同的選擇。為了方便用戶二次開發(fā)的同時簡化用戶設(shè)計,為您的項(xiàng)目評估提供良好的評估及設(shè)計依據(jù),飛凌為核心板提供了開發(fā)套件OKMX6ULL-S開發(fā)板,配備豐富的功能接口,滿足用戶多樣化需求。

imx6ull開發(fā)板

OKMX6ULL-C開發(fā)板(點(diǎn)擊查看詳情


一、SPI 接口

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


其中第一列為接口號,第二列為功能,第三列為可以復(fù)用此功能的引腳名稱,第四列為引腳的模式。
下面以添加 ecspi1 為例進(jìn)行添加和測試:
1、從上表中選取 ecspi1 的 4 組引腳,其中 MISO 采用 CSI_DATA07,MOSI 采用 CSI_DATA06,SCLK
采用 CSI_DATA04,SS0 采用 CSI_DATA05。

2、在對應(yīng)的設(shè)備樹文件/arch/arm/boot/dts/imx6ull-14x14-evk.dts 中添加 ecspi1 節(jié)點(diǎn)。


&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 節(jié)點(diǎn)下添加 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 功能關(guān)閉,避免引腳復(fù)用沖突



5、根據(jù)用戶編譯手冊中的方法編譯設(shè)備樹后替換之前的.dtb 文件,重新燒錄。
6、重新啟動開發(fā)板,查看/dev 目錄下是否生成 spidev0.0 節(jié)點(diǎn),如果生成說明添加 ecspi1 成功。
7、此處只是進(jìn)行短接 miso 和 mosi 進(jìn)行的測試,運(yùn)行 fltest_cmd_spidev -D /dev/spidev0.0

二、SPI 轉(zhuǎn) CAN 接口

SPI 轉(zhuǎn) CAN 模塊采用的是 mcp2515 芯片,linux4.1.15 內(nèi)核版本,默認(rèn)沒有配置此芯片的驅(qū)動
1、添加 mcp2515 驅(qū)動
在配置文件 imx6ull_defconfig(arch/arm/configs/imx6ull_defconfig)文件中設(shè)置
CONFIG_CAN_MCP251X=y
2、配置設(shè)備樹
在設(shè)備樹根節(jié)點(diǎn)下添加 clocks 節(jié)點(diǎn)
3、參考應(yīng)用筆記中的“SPI 接口”,添加 ecspi2,并將其中的 spidev 設(shè)備改為 can0:mcp2515

添加 pinctrl_ecspi2、pinctrl_ecspi2_cs 和 pinctrl_can 配置

4、把之前的 csi 功能關(guān)閉,避免引腳復(fù)用沖突
5、把原生的 flexcan1 和 flexcan2 屏蔽掉
6、重新編譯內(nèi)核和設(shè)備樹,重新燒寫。
7、此 ecspi2 驅(qū)動加載成功后,cat /sys/bus/spi/devices/spi1.0/modalias 會出現(xiàn) spi:mcp2515
8、ifconfig 查看會有 can0 節(jié)點(diǎn)??梢詤⒖肌坝脩羰褂檬謨浴盕lexCAN 設(shè)備章節(jié)進(jìn)行測試


相關(guān)產(chǎn)品 >

  • OKMX6ULL-S開發(fā)板

    iMX6ULL是飛凌新近推出的一款開發(fā)板,iMX6ULL與iMX6UL開發(fā)板相比,功能無區(qū)別完全兼容,配置升級,性能高,價格低。根據(jù)介紹可看出i.MX6ULL參數(shù)豐富 ,采用NXP i.MX6ULL處理器芯片,郵票孔封裝,支持Linux系統(tǒng),i.MX6ULL開發(fā)板資料豐富,方便二次開發(fā)設(shè)計。

    了解詳情
    OKMX6ULL-S開發(fā)板
  • FETMX6ULL-S核心板

    飛凌新出的一款采用NXP高性能、高效、低成本處理器的核心板—FETMX6ULL-S核心板,i.MX6ULL核心板采用郵票孔連接方式,ARM Cortex-A7內(nèi)核,原生兩路網(wǎng)口,兩路Can和八路串口,可以和多種設(shè)備同時通訊。i.MX6ULL核心板支持工業(yè)級和擴(kuò)展商業(yè)級兩種配置,并且經(jīng)過了高低溫測試的檢驗(yàn),iMX6ULL核心板采用Linux4.1.15+Qt5.6操作系統(tǒng),方便開發(fā)自己的應(yīng)用程序。 了解詳情
    FETMX6ULL-S核心板
  • FETMX6ULL-C核心板

    FETMX6ULL-C核心板采用NXP i.MX6ULL處理器開發(fā)設(shè)計,是一款高性能Linux核心板,采用低功耗的ARM Cortex-A7架構(gòu),運(yùn)行速度高達(dá)800MHz。iMX6ULL核心板29*40mm  ,iMX6ULL這款處理器功能接口資源豐富,供貨周期長。

    了解詳情
    FETMX6ULL-C核心板
  • OKMX6ULL-C開發(fā)板

    40*29mm,雙網(wǎng)雙CAN,8路串口| i.MX6ULL開發(fā)板是基于NXP i.MX6ULL設(shè)計開發(fā)的的一款Linux開發(fā)板 ,主頻800MHz,體積小,其核心板僅40*29mm,采用板對板連接器,適應(yīng)場景豐富。 了解詳情
    OKMX6ULL-C開發(fā)板

推薦閱讀 換一批 換一批