用于Beagleboard Xm的SPI

时间:2012-10-09 21:57:34

标签: beagleboard spi

我正在尝试让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是否覆盖了我的引脚多路复用。

提前感谢您的回复。

1 个答案:

答案 0 :(得分:0)

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