1

BBB で SPI を有効にするのに問題があります。hipstercircuits.comのチュートリアルに従ってください。 eMMCでシステムを本当に台無しにした場合に備えて、uSDに新しいarch Linuxをインストールしました。

私の設定は次のとおりです。

SPI1 には HDMI に関する問題があるため、見つけた HDMI 関連のものはすべて無効にしました。ただし、fdfile エントリについては不明ですが、Web 上のどこかで見つけました。(私もそれなしで試しました)それが問題であれば、現在私はSDカードに取り組んでいます。

uEnv.txt

optargs=quiet coherent_pool=1M fdtfile=am335x-boneblack.dtb capemgr.disable_partno=BB-BONELT-HDMI,BB-BONELT-HDMIN

hipstercircuits.com から直接 dts ファイルを取得し、pacman 経由でインストールされた alarm/dtc-overlay 1.4.1-1 でコンパイルしました。

uEnv.txt で HDMI を無効にした後

[root@alarm ~]# echo BB-SPI1-01 > /sys/devices/bone_capemgr.*/slots

うまくいき、私は見ました:

[root@alarm ~]# cat /sys/devices/bone_capemgr.9/slots
 0: 54:PF---
 1: 55:PF---
 2: 56:PF---
 3: 57:PF---
 4: ff:P-O-L Bone-LT-eMMC-2G,00A0,Texas Instrument,BB-BONE-EMMC-2G
 5: ff:P-O-- Bone-Black-HDMI,00A0,Texas Instrument,BB-BONELT-HDMI
 6: ff:P-O-- Bone-Black-HDMIN,00A0,Texas Instrument,BB-BONELT-HDMIN
 7: ff:P-O-L Override Board Name,00A0,Override Manuf,BB-SPI1-01

また、ここにある BB-SPIDEV0、BB-SPIDEV1、および BB-SPIDEV1A1 をエコーし​​てみました。

 [root@alarm spi_a]# ls -l /lib/firmware | grep SPI
    -rw-r--r-- 1 root root    1351 Jan 29 17:04 BB-SPI1-01-00A0.dtbo
    -rw-r--r-- 1 root root    1185 Jan 25 01:06 BB-SPIDEV0-00A0.dtbo
    -rw-r--r-- 1 root root    1185 Jan 25 01:06 BB-SPIDEV1-00A0.dtbo
    -rw-r--r-- 1 root root    1185 Jan 25 01:06 BB-SPIDEV1A1-00A0.dtbo

spidev_test の結果は常に同じです。

さらに興味深いことに、ピングループで SPI1 の一部である P9_29、P9_31 などについては何も見ませんでした。

[root@alarm ~]# cat /sys/kernel/debug/pinctrl/44e10800.pinmux/pingroups
registered pin groups:
group: pinmux_userled_pins
pin 21 (44e10854)
pin 22 (44e10858)
pin 23 (44e1085c)
pin 24 (44e10860)

group: pinmux_rstctl_pins
pin 20 (44e10850)

group: pinmux_i2c0_pins
pin 98 (44e10988)
pin 99 (44e1098c)

group: pinmux_i2c2_pins
pin 94 (44e10978)
pin 95 (44e1097c)

group: pinmux_mmc1_pins
pin 88 (44e10960)

group: pinmux_emmc2_pins
pin 32 (44e10880)
pin 33 (44e10884)
pin 0 (44e10800)
pin 1 (44e10804)
pin 2 (44e10808)
pin 3 (44e1080c)
pin 4 (44e10810)
pin 5 (44e10814)
pin 6 (44e10818)
pin 7 (44e1081c)

group: pinmux_userled_pins
pin 21 (44e10854)
pin 22 (44e10858)
pin 23 (44e1085c)
pin 24 (44e10860)

spidevs は /dev にあります

[root@alarm ~]# ls -l /dev | grep spi
crw------- 1 root root 153,   1 Jan 29 17:13 spidev1.0
crw------- 1 root root 153,   0 Jan 29 17:13 spidev1.1

インターフェイスをテストするために、チュートリアルで説明されている python メソッドと、BBB でコンパイルされたspidev_test.c ( spidev_test.c ) の両方が使用されました。

[root@alarm ~]# gcc spidev_test.c -o spidev_test

Pythonライブラリの場合、エラーはありませんが、出力にも何もありません-SCLラインのクロック信号さえありません。

spidev_test の戻り値:

[root@alarm spi_a]# ./spidev_test
can't set spi mode: Inappropriate ioctl for device
Aborted (core dumped)
[root@alarm spi_a]# ./spidev_test -D /dev/spidev1.0
can't set spi mode: Inappropriate ioctl for device
Aborted (core dumped)
[root@alarm spi_a]# ./spidev_test -D /dev/spidev1.1
can't set spi mode: Inappropriate ioctl for device
Aborted (core dumped)

hipstercircuit のチュートリアルの冒頭で提供されている *.dts および *.dtb ファイルを使用する必要がありますか?

私はおそらく簡単に台無しにしました。それは何でしたか?そのように機能しましたか?すべてのアドバイスは大歓迎です。;)

4

2 に答える 2