TI中文支持网
TI专业的中文技术问题搜集分享网站

关于8127上SPI接口的通信问题

群内的各位同仁好!

    我使用的是8127 RDK3.8版本,在启用SPI接口时遇到了棘手的问题.

    因平台需要,我在kernel中启用了spi0~spi3,我在arch/arm/board-ti8148ipnc.c及devices.c中配置好,在kernel装载完毕后,在/dev/目录下也能看到

  /dev/spi2.0, /dev/spi3.0, /dev/spi4.0

具体我选择了spi3.0来做测试,我将spi3.0所指定的2个数据引脚短接(MISO<–>MOSI),使用kernel的Documentation/spi目录下的spidev_test.c编译好测试程序spidev-test

当我执行 ./spidev-test -D /dev/spi3.0时,

open device(/dev/spidev3.0)…
spi mode: 0
bits per word: 8
max speed: 500000 Hz (500 KHz)

程序就卡在这里, 后面就没有回应了,就是没收到数据回来.

关于spidev3.0的引脚复用我是如下设置的:

 TI814X_MUX(VOUT1_G_Y_YC2, OMAP_MUX_MODE5),    // SPI2_CS (0x4814 0B8C –> AF27,GP3[20])
 TI814X_MUX(VOUT1_R_CR3, OMAP_MUX_MODE5),    // SPI2_CLK(0x4814 0B90 –> AG28,GP3[21])
 TI814X_MUX(VOUT1_R_CR2, OMAP_MUX_MODE5),    // SPI2_D1(0x4814 0B94 –> AE27,GP3[22])
  TI814X_MUX(VOUT1_B_CB_C2, OMAP_MUX_MODE5),    // SPI2_D0(0x4814 0B98 –> AF28,GP3[30])

请多指教,谢谢!!

Chris Meng:

你好,

SPI1默认是在M3侧用于sensor的配置的,你能否确认相关代码是否有冲突?

jensen zhang:

回复 Chris Meng:

谢谢Chris Meng的回复.目前我测试的是/dev/spi3.0,即spi2,我把spi2的D1,D0两个引脚短接了,但运行Documentataion/spi/下的spidev_test测试程序还是收不到数据,挂起在那里…能告诉我一般是什么原因吗?

/dev/spi2.0也测试了,能够执行过去但接收到的数据也不对,这个应该是有冲突,执行spidev_test -D /dev/spi2.0打印了如下的数据:

open device(/dev/spidev2.0)…spi mode: 0bits per word: 8max speed: 500000 Hz (500 KHz)

0xFF 0xFF 0xFF 0xFF 0xFF 0xFF

….

而在spidev_test中发送的数据是:

    uint8_t tx[] = {        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,    };

我现在测试的是/dev/spi3.0,想找找为什么收不到数据的原因.

Chris Meng:

回复 jensen zhang:

你好,

你有使能EDMA么?

看看下面的讨论是否有帮助:

https://e2e.ti.com/support/embedded/tirtos/f/355/p/142054/512680

https://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/716/t/430923

jensen zhang:

回复 Chris Meng:

感谢Chris Meng的回复…你所发的链接有一个遇到的问题跟我目前所提的问题一样,只可惜最后并没有提到解决办法

赞(0)
未经允许不得转载:TI中文支持网 » 关于8127上SPI接口的通信问题
分享到: 更多 (0)