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

关于OMAPL138的SPI传输数据问题

TI专家,您好:

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

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

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

lingyi:

回复 Shine:

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

Shine:

回复 lingyi:

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

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

lingyi:

回复 Shine:

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

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

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

Shine:

回复 lingyi:

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

loopback模式下正常吗?

yi ling:

回复 Shine:

您好:

我使用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中所提到的效果

赞(0)
未经允许不得转载:TI中文支持网 » 关于OMAPL138的SPI传输数据问题
分享到: 更多 (0)