This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

关于OMAPL138的SPI传输数据问题



TI专家,您好:

    我用两块omapl138通过SPI接口相连,一个主模式,一个从模式,使用三条线SCLK,SIMO,SOMI。从模式的开发板可以接收到

主模式发来的数据,但是数据不正确,都是0xff,主模式接收到从模式的数据也不正确。两块板子在loopback模式下都可以

正确工作,极性和相位也是相同设置,而且没有使用中断或者EDMA。请问这是什么原因?期待您的回答。

  • 你好,

    抓过时序吗?看看是主发的时候就错了还是从没收对?

  • 你好,我想问下,OMAPL138芯片作为Master使用SPI(4pin模式:MISO、MOSI、SCLK、CS)发送数据,初始化已经配置了,每次Mater使用SPIDAT0发送16bit数据,在MOSI口和SCLK使用示波器看波形,SCLK总是会超前MOSI数据一个时钟周期,如果SCLK正常的话,MOSI的串行数据是正确的,问题就是:SCLK为什么总是超前MOSI数据一个时钟周期?求解啊,

  • 请问你的clock phase和polarity是怎么配的?看一下下面文档

    30.2.11.3 Clock Phase and Polarity
    http://www.ti.com/lit/ug/spruh77a/spruh77a.pdf

  • 4种模式都试了,现在就是想产生CLK空闲状态为低电平,上升沿时外部设备可以从芯片的SIMO口采数据,

    理应配成0:1这种模式,但是实际输出CLK与SIMO错位了,CLK慢了1个周期,也就是图上MSB没有CLK对应,最后的一个CLK无有效数据对应,

    对了,现在我设置的是16bit数据发送形式,

  • 可以把SPI寄存器的配置贴出来吗?

    loopback模式下正常吗?


  • 您好:

    我使用OMAPL138的SPI给FPGA下载bit文件;暂时先调试SPI问题,输出的clock和SIMO数据时序不对啊;现配置如下:

    SPIGCR1.MOD_SEL=0X03;

    SPIGCR1.LOOPBACK=0;其他为0;


    SPIPC0.CLKFUN=1;

    SPIPC0.SIMOFUN=1;

    SPIPC0.SOMIFUN=1;其他为0;


    SPIPC1.SCS0DIR=0X03;

    SPIPC1.CLKDIR=1;

    SPIPC1.SIMODIR=1;其他为0;


    SPIFMT[0].CHARLEN=0X10;(0x08也试了);

    SPIFMT[0].PRESCALE=24;

    SPIFMT[0].PHASE=1;

    SPIFMT[0].POLARITY=0;(FPGA现在要求为上升沿获得数据)

    SPIFMT[0].SHIFTDIR=0;//MSB;其他为0


    SPIGCR.ENABLE=1;


    现在示波器显示clock和SIMO数据时序:clock与SIMO相差了个周期数据才会正确,现在达不到spruh77a.pdf中所提到的效果