SPI for Beagleboard Xm



我正试图让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、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。

提前感谢您的回复。

我能够解决我的问题。我在内核中启用了spidev和pin复用,但还没有更新u-boot。最后,在升级到2.6.39-rc7内核并对u-boot中的beagle.h文件进行了正确的调整之后,我的环回测试似乎开始工作了。

最新更新