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

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

imxull-C核心板

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

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

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

FETMX6ULL-S核心板采用NXP的高性能、超高效、低成本處理器MCIMX6Y2開(kāi)發(fā)設(shè)計(jì),采用先進(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è)級(jí)和商業(yè)及兩種配置:256MB DDR3L/512MB DDR3L,256MB NandFlash/4GB eMMC/8GB eMMC,方便用戶不同的選擇。為了方便用戶二次開(kāi)發(fā)的同時(shí)簡(jiǎn)化用戶設(shè)計(jì),為您的項(xiàng)目評(píng)估提供良好的評(píng)估及設(shè)計(jì)依據(jù),飛凌為核心板提供了開(kāi)發(fā)套件OKMX6ULL-S開(kāi)發(fā)板,配備豐富的功能接口,滿足用戶多樣化需求。

imx6ull開(kāi)發(fā)板

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


一、SPI 接口

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


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

2、在對(duì)應(yīng)的設(shè)備樹(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ù)用戶編譯手冊(cè)中的方法編譯設(shè)備樹(shù)后替換之前的.dtb 文件,重新燒錄。
6、重新啟動(dòng)開(kāi)發(fā)板,查看/dev 目錄下是否生成 spidev0.0 節(jié)點(diǎn),如果生成說(shuō)明添加 ecspi1 成功。
7、此處只是進(jìn)行短接 miso 和 mosi 進(jìn)行的測(cè)試,運(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)沒(méi)有配置此芯片的驅(qū)動(dòng)
1、添加 mcp2515 驅(qū)動(dòng)
在配置文件 imx6ull_defconfig(arch/arm/configs/imx6ull_defconfig)文件中設(shè)置
CONFIG_CAN_MCP251X=y
2、配置設(shè)備樹(shù)
在設(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è)備樹(shù),重新燒寫(xiě)。
7、此 ecspi2 驅(qū)動(dòng)加載成功后,cat /sys/bus/spi/devices/spi1.0/modalias 會(huì)出現(xiàn) spi:mcp2515
8、ifconfig 查看會(huì)有 can0 節(jié)點(diǎn)。可以參考“用戶使用手冊(cè)”FlexCAN 設(shè)備章節(jié)進(jìn)行測(cè)試


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

  • OKMX6ULL-S開(kāi)發(fā)板

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

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

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

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

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

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

推薦閱讀 換一批 換一批