快速瀏覽

SPI


 
  • 與我們確認的操作
    • 4.14.40內核上的ODROID-XU4
    • 3.10.107內核上的ODROID-C1+
    • 3.14.79內核上的ODROID-C2
    • 4.9.141內核上的ODROID-N2
    • 4.9.113內核上的ODROID-C4

本指南讓您了解如何準備 SPI 功能以及如何測試 SPI 功能,包括環回測試


使用device-tree-compiler啟用模塊。

sudo apt install device-tree-compiler

將設備樹上的 SPI 節點 的狀態更改為OK

# SPICC0
sudo fdtput -t s /media/boot/meson64_odroidc4.dtb /soc/cbus@ffd00000/spi@13000 status "okay"
 
# SPIDEV0
sudo fdtput -t s /media/boot/meson64_odroidc4.dtb /soc/cbus@ffd00000/spi@13000/spidev@0 status "okay"

檢查它是否改變了。

# SPICC0
root@odroid:~# fdtget /media/boot/meson64_odroidc4.dtb /soc/cbus@ffd00000/spi@13000 status
okay
 
# SPIDEV0
root@odroid:~# fdtget /media/boot/meson64_odroidc4.dtb /soc/cbus@ffd00000/spi@13000/spidev@0 status
okay

然後重新啟動以應用更改。

然後你可以檢查模塊是否加載。

root@odroid:~# lsmod | grep spi
spidev                 20480  0
spi_meson_spicc        20480  0

檢查/dev/spidev0.0文件如下。

root@odroid:~# ls /dev/spidev*
/dev/spidev0.0

  • 您可以在選擇spidev文件使用通配符 (*),但由於您的電路板出現意外情況,因此請小心使用。
  • 本指南使用通配符為您提供這 3 塊板統一簡單說明。
準備

下載源代碼並編譯。

sudo wget http://dn.odroid.com/Accessory/examples/spidev_test.c
sudo gcc -o spidev_test spidev_test.c

測試實用程序的幫助。

# There's no option to show the help on this file.
# It shows if you enter this command with invalid arguments.
# So the '--help' option will show the help.
root@odroid:~# ./spidev_test --help
./spidev_test: unrecognized option '--help'
Usage: ./spidev_test [-DsbdlHOLC3]
  -D --device   device to use (default /dev/spidev1.1)
  -s --speed    max speed (Hz)
  -d --delay    delay (usec)
  -b --bpw      bits per word 
  -l --loop     loopback
  -H --cpha     clock phase
  -O --cpol     clock polarity
  -L --lsb      least significant bit first
  -C --cs-high  chip select active high
  -3 --3wire    SI/SO signals shared
環回測試

即使您沒有任何 SPI 硬件設備,您也可以測試 SPI 功能是否適用於跳線。

測試前,請確保SPI MOSIMISO引腳之間直接連接了跳線。

在引腳#19#21之間連接。

  • 如果您使用不帶 Shifter Shield 的 XU4,請在 CON10 引腳接頭處使用引腳#7#9

請參閱有關擴展連接器的每個 wiki 頁面。

J2 – 2×20 針腳
默認引腳狀態GPIO 和導出 否網名密碼密碼網名GPIO 和導出 否默認引腳狀態
————3.3V125.0V————
我(P/D)GPIOX.17 (#493)I2C0_SDA345.0V————
我(P/U)GPIOX.18 (#494)I2C0_SCL56地線————
我(P/D)GPIOX.5 (#481) 78TXD1GPIOX.12 (#488)我(P/U)
————地線910RXD1GPIOX.13 (#489)我(P/U)
我(P/U)GPIOX.3 (#479) 1112脈寬調製_EGPIOX.16 (#492)我(P/U)
我(P/U)GPIOX.4 (#480) 1314地線————
我(P/U)GPIOX.7 (#483)脈寬調製_F1516 GPIOX.0 (#476)我(P/U)
————3.3V1718 GPIOX.1 (#477)我(P/U)
我(P/U)GPIOX.8 (#484)SPI0_MOSI1920地線————
我(P/U)GPIOX.9 (#485)SPI0_味噌2122 GPIOX.2 (#478)我(P/U)
我(P/U)GPIOX.11 (#487)SPI0_SCLK2324SPI0_CS0GPIOX.10 (#486)我(P/U)
————地線2526SPI0_CS1GPIOH.6 (#433)我(P/D)
我(P/U)GPIOA.14 (#474)I2C1_SDA2728I2C1_SCLGPIOA.15 (#475)我(P/U)
我(P/U)GPIOX.14 (#490) 2930地線————
我(P/U)GPIOX.15 (#491) 3132 GPIOH.7 (#434)我(P/D)
我(P/U)GPIOX.6 (#482)脈寬調製_A3334地線————
我(P/D)GPIOX.19 (#495)脈寬調製_B3536 GPIOH.5 (#432)——
  ADC.AIN23738參考電壓 1.8V  
————地線3940ADC.AIN0 

運行測試。
spidev 編號因您使用的板而異。

  • XU4:/dev/spidev 1.0
  • C1+/C2:/dev/spidev 0.0
  • N2/C4:/dev/spidev 0.0
root@odroid:~#/ spidev_test -D  / dev的/ spidev0.0

這些結果應該是一樣的。

root@odroid:~# ./spidev_test -D /dev/spidev*
spi mode: 0
bits per word: 8
max speed: 500000 Hz (500 KHz)
 
01 02 03 04 

如果未加載模塊和/或未創建 spidev 文件,則結果如下所示。

root@odroid:~# ./spidev_test -D /dev/spidev*
can't open device: No such file or directory
Aborted

如果跳線沒有接好,結果如下。

root@odroid:~# ./spidev_test -D /dev/spidev*
spi mode: 0
bits per word: 8
max speed: 500000 Hz (500 KHz)
 
FF FF FF FF 
各種測試
每字位數
SPI模式

快速瀏覽

ODROID-C4

四核ARM CORTEX-A55 |4GB RAM |4 USB3 PORTS