在运行 Debian 的袖珍小猎犬上,我有三个 spidev 设备(spidev1.0、spidev2.0 和 spidev2.1)。
我在 spi1 上有一个 SPI 温度传感器(即 spidev2.0 和 spidev2.1)。2.0 上的环回测试(通过跨接 MOSI 和 MISO)有效。数据回来给我。但是我无法将数据发送到温度传感器。当我切换到 2.1 时,一切正常。
这是为什么?2.0 和 2.1 有什么区别?
在运行 Debian 的袖珍小猎犬上,我有三个 spidev 设备(spidev1.0、spidev2.0 和 spidev2.1)。
我在 spi1 上有一个 SPI 温度传感器(即 spidev2.0 和 spidev2.1)。2.0 上的环回测试(通过跨接 MOSI 和 MISO)有效。数据回来给我。但是我无法将数据发送到温度传感器。当我切换到 2.1 时,一切正常。
这是为什么?2.0 和 2.1 有什么区别?
2.0和2.1的区别在于片选引脚(cs)。
spidev1.0 : spi0_cs0 -> P1.06(默认)
spidev2.0 spi1_cs0 -> P1.26(mode4)、P1.32(mode1)、P2.25(mode5)、P2.30(mode3)。
spidev2.1 spi1_cs1 -> P1.28(mode4), P1.30(mode1), P2.29(mode2), P2.31(mode4)
资源: https ://github.com/beagleboard/pocketbeagle/wiki/System-Reference-Manual#Figure_1_PocketBeagle_Home_Page
根据我的阅读,spidev2.0 和 2.1 指的是已为它们配置的芯片选择。虽然我不知道使用的是哪个芯片选择 2.0,但 2.1 的芯片选择必须是板上标记为芯片选择的芯片选择。