導航:首頁 > 操作系統 > linux的spi驅動程序

linux的spi驅動程序

發布時間:2025-06-15 11:53:49

⑴ 14-linux gpio模擬spi

首先是spidev,要在/dev/下面產生設備文件,需要spidev的支持

使用的是gpio模擬spi,gpio模擬spi的時序原理是bitbang文件實現的,所以這個也需要打開,如果是在openwrt下動態載入的話就是如下兩個配置

如果是直接內核的話是如下兩個

跟I2C的arch層一樣,主要是devices的添加和board_info的添加,如下

對於platform_add_devices,因為是使用spi_gpio,所以name是"spi_gpio"這樣才可以與driver裡面的spi_gpio相互匹配probe到。

因為SPI是可以一個匯流排上面掛多個,然後通過片選腳CS進行硬體切換,所以這變有個num_chipselect需要設置,如果有2個設置就設置2,一個設備就設置1,這邊設置好之後,後面board_info也要有對應的個數,而且片選引腳需要不同。

I2C是通過每個設備有自己不同的地址,通過地址來進行軟體切換。

對於board_info使用的是spidev,drivers/spi/spidev.c文件,該文件的內容是注冊一個spidev驅動。該驅動是一個字元設備驅動。

如果設備與驅動匹配,那麼就會執行spidev_probe()的內容。在spidev_probe()函數中會調用device_create()成功後在 /dev 目錄下就會生成 spidev 相關的設備節點。

這邊有幾個參數要注意:

調試過程想看一些細節的debug信息可以打開內核的動態debug信息,這個在以前的print system裡面有

printk的等級設置成8.

開始

定位到是 spi_gpio_request 的時候報錯

後仿橘者面就將zkernel/3.10.49/arch/mips/mtk/ziroom/zrmt7628.c裡面GPIO的信息調整下, 因為SPI的引腳和LED的引腳號一樣 ,內核不知道哪裡會檢測到。

修改後列印備薯如下:

之後在/dev/下面就生成了spidev1.0的設備

有了/dev/spidev1.0設備之後,就可以在應用成操作改設備收發數據。

在drivers/spi/spidev.c裡面已經封裝好了ioctl的對應介面,根據這些伍禪介面就可以測試使用。

在Documentation/spi/spidev_test.c下面有個應用層的實例,打開看下就清除了。

$(cc) spidev_test.c -o spidev_test生成可執行文件spidev_test

然後拷貝到板子上,將MOSI和MISO短接就可以測試回環數據是否正常。

有邏輯分析儀的接上logic看波形就更加直觀。

gpio模擬SPI:
https://blog.csdn.net/luckywang1103/article/details/70145870

在ARM Linux下使用GPIO模擬SPI時序詳解:
https://blog.csdn.net/yangzheng_yz/article/details/50470577

linux SPI驅動:
https://www.cnblogs.com/xuyh/category/903809.html

閱讀全文

與linux的spi驅動程序相關的資料

熱點內容
刪除pdf文件中某一頁 瀏覽:786
三星冰箱壓縮機是國產 瀏覽:601
我的世界伺服器如何清理維護 瀏覽:148
a12方舟編譯器 瀏覽:153
androidwebview內容自適應 瀏覽:305
微信地圖app哪個好 瀏覽:346
哪個app可以看男才女貌 瀏覽:191
哪個app可以買平價好看的包包 瀏覽:463
解壓綵球怎麼做 瀏覽:864
電視如何連接雲伺服器 瀏覽:763
find命令aix 瀏覽:789
無人機航拍怎麼連接安卓手機教程 瀏覽:42
dsp原理與應用pdf 瀏覽:133
現代漢語黃伯榮pdf 瀏覽:463
微信公眾號gif壓縮 瀏覽:962
黑客攻防實戰詳解pdf 瀏覽:755
手機哪個app可以玩單機游戲 瀏覽:154
查看mysql版本命令 瀏覽:212
手機app反編譯出來都是abc 瀏覽:545
加密款睫毛好嗎 瀏覽:192