1.概述
本文主要講述了Linux的spidev驅(qū)動(dòng)使用方法。介紹了spidev驅(qū)動(dòng)的配置方法及驗(yàn)證方法。
Linux內(nèi)核版本:6.2.8。硬件平臺(tái):ARM SOC。
2.原理
Linux內(nèi)核集成了spidev驅(qū)動(dòng),提供了SPI設(shè)備的用戶空間API,支持用于半雙工通信的read()和write()訪問(wèn)接口以及用于全雙工通信和I/O配置的ioctl()接口;使用時(shí),只需將SPI從設(shè)備的compatible屬性值添加到spidev驅(qū)動(dòng)的spidev_dt_ids[]數(shù)組中,即可將該SPI從設(shè)備創(chuàng)建為spidev設(shè)備。同時(shí),Linux內(nèi)核也集成了SPI測(cè)試工具spidev_test,用于在用戶態(tài)對(duì)spidev驅(qū)動(dòng)功能進(jìn)行測(cè)試和驗(yàn)證。
3.配置方法
(1)配置內(nèi)核,使能CONFIG_SPI_SPIDEV,以添加spidev驅(qū)動(dòng)。

圖1 使能CONFIG_SPI_SPIDEV配置界面
(2)添加SPI從設(shè)備的compatible屬性值到linux-6.2.8/drivers/spi/spidev.c的spidev_dt_ids[]數(shù)組。添加compatible屬性值后,則會(huì)將SPI從設(shè)備創(chuàng)建為/dev/spidevB.C設(shè)備節(jié)點(diǎn),供用戶空間API使用,其中B為SPI總線編號(hào),C為SPI片選信號(hào)編號(hào)。

圖2 添加SPI從設(shè)備的compatible屬性值代碼
4.驗(yàn)證方法
(1)編譯spidev_test
以SPI0總線的片選0為例,其生成的設(shè)備節(jié)點(diǎn)名為spidev0.0,故首先將測(cè)試?yán)蘬inux-6.2.8/tools/spi/spi_test.c中的設(shè)備節(jié)點(diǎn)名改為"/dev/spidev0.0"。然后在linux-6.2.8/tools/spi路徑下直接執(zhí)行make,即可生成可執(zhí)行程序spi_test。

圖3 設(shè)備節(jié)點(diǎn)名設(shè)置
(2)運(yùn)行spidev_test
內(nèi)核啟動(dòng)后,./dev路徑下生成了spidev0.0設(shè)備節(jié)點(diǎn)。然后運(yùn)行spidev_test,程序按默認(rèn)配置參數(shù)執(zhí)行了,SPI0發(fā)送的數(shù)據(jù)與圖3中數(shù)組default_tx[]一致。若需設(shè)置參數(shù),詳見(jiàn)spidev_test.c 中的static void parse_opts(int argc, char *argv[])函數(shù)定義。

圖4 spidev_test運(yùn)行結(jié)果
審核編輯 :李倩
-
Linux
+關(guān)注
關(guān)注
88文章
11581瀏覽量
217174 -
SPI
+關(guān)注
關(guān)注
17文章
1840瀏覽量
99071 -
總線
+關(guān)注
關(guān)注
10文章
3005瀏覽量
91056
原文標(biāo)題:Linux驅(qū)動(dòng)-spidev驅(qū)動(dòng)使用方法
文章出處:【微信號(hào):LinuxDev,微信公眾號(hào):Linux閱碼場(chǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
Linux系統(tǒng)中驅(qū)動(dòng)格式基本編寫(xiě)方法
Linux之PWM驅(qū)動(dòng)
基于Linux使用spidev驅(qū)動(dòng)OLED
LED驅(qū)動(dòng)電源灌封膠的使用方法
LED驅(qū)動(dòng)電源灌封膠的使用方法
串行通信基礎(chǔ)知識(shí)與UART驅(qū)動(dòng)構(gòu)件使用方法
IGBT驅(qū)動(dòng)模塊EXB841使用方法的改進(jìn)
對(duì)高級(jí)驅(qū)動(dòng)輔助系統(tǒng)的傳感器的使用方法
LINUX內(nèi)核與驅(qū)動(dòng)的最新編譯方法
利用Linux開(kāi)發(fā)板為T(mén)LV320ADC5120開(kāi)發(fā)Linux內(nèi)核驅(qū)動(dòng)的方法
Linux的PWM驅(qū)動(dòng)框架及實(shí)現(xiàn)方法

Linux驅(qū)動(dòng)-spidev驅(qū)動(dòng)使用方法
評(píng)論