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

AM5728的spi问题

最近遇见一个问题,AM5728的SPI作为主模式,用示波器检测CLK,MISO,MOSI信号都正常,特别是MISO的回读数据在示波器上也正确,但是利用linux内核的spi_write_then_read函数发送命令时,回读数据rxbuf一直是0,有人遇到过这种情况么?

yongqing wang:

利用spi_write_then_read回读的时候信号都正常吗?

user5075745:

回复 yongqing wang:

对,我是用示波器同时测试CLK和MISO,信号是有的而且时序也没问题,但是用spi_write_then_read回读时,rxbuf一直是零。

Steven Liu1:

看下管教的pinmux配置,是否有吧receive的enable状态打开?

SPI的配置部分也一样查一下。

user5075745:

回复 Steven Liu1:

你好,我之前也想过是不是配置的问题,但是在devicetree的配额我感觉应该没啥问题。

devicetree中pinmux的配置代码如下:

touch_pins: pinmux_touch_pins {        pinctrl-single,pins = <            0x3A4 (PIN_OUTPUT | MUX_MODE0)            /* SPI1_SCLK    ==> SPI1_SCLK.spi1_sclk */            0x3A8 (PIN_INPUT | MUX_MODE0)            /* SPI1_MISO    ==> SPI1_D1.spi1_d1 */            0x3AC (PIN_OUTPUT | MUX_MODE0)            /* SPI1_MOSI    ==> SPI1_D0.spi1_d0 */            0x3B0 (PIN_OUTPUT | MUX_MODE0)            /* SPI1_CS0        ==> SPI1_CS0.spi1_cs0 */

        >;    };…

其中MISO设置为INPUT,spi模式

spi的部分如下:

&mcspi1 {    status = "okay";    spi-max-frequency = <200000>;    spi-tx-bus-width = <1>;    spi-rx-bus-width = <4>;    ti,pindir-d0-out-d1-in;…

其中也设置了 ti,pindir-d0-out-d1-in;

除了这些,还有别的需要配置的地方么?

顺便说下,因为我用的基本都是linux自带内核模块和函数,而且MOSI引脚都没什么问题,所以就感觉很奇怪。

赞(0)
未经允许不得转载:TI中文支持网 » AM5728的spi问题
分享到: 更多 (0)