[DSP编程]

求助!两块DSP进行SPI通信,从机无法接收数据!

[复制链接]
2696|20
手机看帖
扫描二维码
随时随地手机跟帖
mrxj173|  楼主 | 2018-10-29 14:44 | 显示全部楼层 |阅读模式
两块芯片的连接应该没有问题,SIMO、SOMI、SPICLK分别连上,从机的SPISTEA连到主机的控制GPIO口上,两块芯片也共地了,主机可以正常发送,从机无法接收,CCS在线调试时发现从机的SPI INT ENA位始终为0,如下图,SPIRXBUF中没有数据。

相关帖子

mrxj173|  楼主 | 2018-10-29 14:46 | 显示全部楼层
void main(void)
{
int k;
init();
init_spi();
while(1)
{
  for(k=0;k<100;k++)
  {
   while(SpiaRegs.SPISTS.bit.INT_FLAG!=1) {}

         q = SpiaRegs.SPISTS.bit.INT_FLAG;
         if(k>99)  {k=0;}
         jieshou[k] = SpiaRegs.SPIRXBUF;
         SpiaRegs.SPISTS.bit.OVERRUN_FLAG=1;
  }
}
}
仿真调试时始终停在while(SpiaRegs.SPISTS.bit.INT_FLAG!=1) {} 这句话

使用特权

评论回复
mohanwei| | 2018-10-29 14:57 | 显示全部楼层
上逻辑分析仪或示波器,先看看SPI主机发出的时序是否正确。

使用特权

评论回复
mrxj173|  楼主 | 2018-10-29 18:01 | 显示全部楼层
mohanwei 发表于 2018-10-29 14:57
上逻辑分析仪或示波器,先看看SPI主机发出的时序是否正确。

您好,用示波器看了,主机发送的时钟是正常的,SIMO引脚也有数据输出,但是从机收不到

使用特权

评论回复
zhangmangui| | 2018-10-29 21:57 | 显示全部楼层
收发要交叉一下互联吧

使用特权

评论回复
zhangmangui| | 2018-10-29 21:58 | 显示全部楼层
两个MCU都在同一块板子上吗      除了共地  信号也要匹配

使用特权

评论回复
评论
mrxj173 2018-10-30 10:43 回复TA
是两块开发板,之间用杜邦线连着的 
mrxj173|  楼主 | 2018-10-30 10:43 | 显示全部楼层
zhangmangui 发表于 2018-10-29 21:57
收发要交叉一下互联吧

SPI应该不用交叉,SIMO是丛收主发,SOMI是从发主收

使用特权

评论回复
mrxj173|  楼主 | 2018-10-30 10:44 | 显示全部楼层
zhangmangui 发表于 2018-10-29 21:58
两个MCU都在同一块板子上吗      除了共地  信号也要匹配

是两块开发板,之间用杜邦线连着的

使用特权

评论回复
mrxj173|  楼主 | 2018-10-30 10:46 | 显示全部楼层
昨天收不到数是从机的芯片有问题,吹下来重焊就能收到了,但是现在收到的数中除了主机发出来的,还掺杂着很多别的数,这是为什么?

使用特权

评论回复
蒋博1026| | 2018-10-30 12:49 | 显示全部楼层
你可以先写一个自发自收,验证一下板子问题和连接问题

使用特权

评论回复
mrxj173|  楼主 | 2018-10-30 14:25 | 显示全部楼层
找到问题了,接收数据的时候位错开了一位到两位,比如我连续发送88,从机收到的全是11和24577,如下图,但是SPI不是同步通信吗,完全靠主机发出的时钟来发送和接收数据,为什么会错开呢?
微信图片_20181030142513.jpg

使用特权

评论回复
877049204| | 2018-10-30 15:00 | 显示全部楼层
mrxj173 发表于 2018-10-30 14:25
找到问题了,接收数据的时候位错开了一位到两位,比如我连续发送88,从机收到的全是11和24577,如下图,但 ...

主从机格式不匹配,主机设置的是16位格式,从机是8位吧?

使用特权

评论回复
mrxj173|  楼主 | 2018-10-30 15:21 | 显示全部楼层
877049204 发表于 2018-10-30 15:00
主从机格式不匹配,主机设置的是16位格式,从机是8位吧?

从机也是16位,取数虽然错了,但是换算成二进制还是16位

使用特权

评论回复
zhangmangui| | 2018-10-30 21:41 | 显示全部楼层
奇怪了      两者之间不行在通讯线上串联电阻试试

使用特权

评论回复
zhangmangui| | 2018-10-30 21:45 | 显示全部楼层
错位确实不合理     片选   时钟   比较关键    对比测试一下

使用特权

评论回复
mrxj173|  楼主 | 2018-10-30 21:52 | 显示全部楼层
zhangmangui 发表于 2018-10-30 21:41
奇怪了      两者之间不行在通讯线上串联电阻试试

谢谢,串联多大的电阻比较合适?

使用特权

评论回复
kysa555| | 2018-10-31 22:31 | 显示全部楼层
学写了,点赞

使用特权

评论回复
MinMinMin| | 2018-11-8 10:52 | 显示全部楼层
收发要交叉一下互联吧

使用特权

评论回复
mrxj173|  楼主 | 2018-12-5 15:28 | 显示全部楼层
MinMinMin 发表于 2018-11-8 10:52
收发要交叉一下互联吧

不用交叉互联,这个问题已经解决了,最终实现了一块主机四块从机的SPI通信,谢谢大家!

使用特权

评论回复
xiaole112| | 2018-12-6 11:50 | 显示全部楼层
okok

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

27

帖子

0

粉丝