我正在尝试让spi接口在BeagleBoard Xm上工作。我已经重新配置了内核(2.6.32)以允许访问用户空间中的spidev驱动程序(在/dev下显示了spidev3.0和3.1 ),并且我已经编译了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、0x00、0x00、0x95、0xFF、0xFF、0xFF、0xFF、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多路复用。
提前感谢您的回复。
发布于 2012-10-12 06:36:55
我找到了我的问题所在。我在内核中启用了spidev和pin多路复用,但没有更新u-boot。最后,在升级到2.6.39-rc7内核并对u-boot中的beagle.h文件进行正确调整后,我的回送测试似乎可以正常工作。
https://stackoverflow.com/questions/12809023
复制相似问题