我试图让 spi 接口在 BeagleBoard Xm 上工作。我已经重新配置内核(2.6.32)以允许访问用户空间中的 spidev 驱动程序(spidev3.0 和 3.1 显示在 /dev 下),并且我已经编译了 Documentation/spi 下给出的 spidev_test.c 程序。当我运行程序时,我得到以下输出:
# ./spi_test -D /dev/spidev3.0 spi mode: 3 bits per word: 8 max speed: 5[ 186.539611] spidev spi3.0: DMA RX last word empty00000 Hz (500 KHz)
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0D
我正在传输以下内容,并希望在接收缓冲区中看到:0xFF、0xFF、0xFF、0xFF、0xFF、0xFF、0x40、0x00、0x00、0x00、0x00、0x95、0xFF、0xFF、0xFF、0xFF、0xFF , 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDE, 0xAD, 0xBE, 0xEF, 0xBA, 0xAD, 0xF0, 0x0D
我在板上的 SIMO 和 SOMI 之间有一个跳线,当用 o-scope 探测 CLK 或 CS0 引脚时,我没有看到任何引脚上有任何活动。这让我相信我没有在内核或 u-boot 中正确配置某些东西。DMA 错误也可能是配置问题的线索。
有没有人遇到过这个问题?或者对我可能遇到的问题有任何见解?
我下一个可能的解决方案是使用更新的内核并深入研究 u-boot 以查看 u-boot 是否覆盖了我的 pin muxing。
提前感谢您的回复。