打印
[DSP编程]

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

[复制链接]
3295|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引脚也有数据输出,但是从机收不到

使用特权

评论回复
5
zhangmangui| | 2018-10-29 21:57 | 只看该作者
收发要交叉一下互联吧

使用特权

评论回复
6
zhangmangui| | 2018-10-29 21:58 | 只看该作者
两个MCU都在同一块板子上吗      除了共地  信号也要匹配

使用特权

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

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

使用特权

评论回复
8
mrxj173|  楼主 | 2018-10-30 10:44 | 只看该作者
zhangmangui 发表于 2018-10-29 21:58
两个MCU都在同一块板子上吗      除了共地  信号也要匹配

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

使用特权

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

使用特权

评论回复
10
蒋博1026| | 2018-10-30 12:49 | 只看该作者
你可以先写一个自发自收,验证一下板子问题和连接问题

使用特权

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

微信图片_20181030142513.jpg (292.98 KB )

微信图片_20181030142513.jpg

使用特权

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

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

使用特权

评论回复
13
mrxj173|  楼主 | 2018-10-30 15:21 | 只看该作者
877049204 发表于 2018-10-30 15:00
主从机格式不匹配,主机设置的是16位格式,从机是8位吧?

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

使用特权

评论回复
14
zhangmangui| | 2018-10-30 21:41 | 只看该作者
奇怪了      两者之间不行在通讯线上串联电阻试试

使用特权

评论回复
15
zhangmangui| | 2018-10-30 21:45 | 只看该作者
错位确实不合理     片选   时钟   比较关键    对比测试一下

使用特权

评论回复
16
mrxj173|  楼主 | 2018-10-30 21:52 | 只看该作者
zhangmangui 发表于 2018-10-30 21:41
奇怪了      两者之间不行在通讯线上串联电阻试试

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

使用特权

评论回复
17
kysa555| | 2018-10-31 22:31 | 只看该作者
学写了,点赞

使用特权

评论回复
18
MinMinMin| | 2018-11-8 10:52 | 只看该作者
收发要交叉一下互联吧

使用特权

评论回复
19
mrxj173|  楼主 | 2018-12-5 15:28 | 只看该作者
MinMinMin 发表于 2018-11-8 10:52
收发要交叉一下互联吧

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

使用特权

评论回复
20
xiaole112| | 2018-12-6 11:50 | 只看该作者
okok

使用特权

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

本版积分规则

9

主题

27

帖子

0

粉丝