首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过SPI实现Pic到Pic的交流

通过SPI实现Pic到Pic的交流
EN

Stack Overflow用户
提问于 2014-04-06 23:46:19
回答 2查看 508关注 0票数 1

我试图让PIC1成为主人,PIC2通过SPI通信成为奴隶。我想从PIC1 (主)向PIC2 (奴隶)发送一个命令,然后让它做一些事情。然而,我想建立另一个SPI通信从PIC2 (从)到数字电位器(MCP4241),也通过SPI通信。这个能行吗?

为了说明:

PIC1发送a

PIC2

PIC2

因此,PIC1和PIC2之间会有SPI通信,然后是PIC2和数字大麻,我只是不知道这是否可行,因为我需要使用相同的引脚。对于这两张照片,我使用的是pic16f690。

我希望我的问题是清楚的,如果这不起作用,我应该如何解决它?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-07 08:45:21

首先,为了简单起见,我建议在PIC2中使用带有2个SPI端口的PIC。

但是,如果您确实希望有时只使用一个SPI端口作为主程序和一个从属程序,那么要记住的是,您真的不希望这两张照片同时驱动串行线路。您可能必须编写TRIS寄存器,以使端口三状态变为高z,并禁用spi外围设备。

  • 如果你在里面放了一些串联电阻,那么事情就不会那么糟糕了,例如,如果pic1试图驱动SCLK高,而pic2试图使它变低,那么从pic1到pic2的电流就会受到限制。
  • 您可以使用额外的GPIO来允许pic2在pic1繁忙时告诉它。您需要对这两个设备之间的执行流程有一个清晰的了解,这样您就不会被种族状况所捕获。
  • 例如,您可以有一个
  • pic1将‘写罐’命令发送给pic2
  • pic1知道等待繁忙的信号
  • 然后pic2断言一个繁忙的信号
  • pic1看到一个繁忙的信号,知道在启动另一个spi事务之前等待它清除。
  • pic2使用pot执行spi事务。
  • pic2清除繁忙信号
  • pic1是看到繁忙的信号已清除,并知道它是可以做spi事务。
  • pic2将不会尝试任何spi事务,直到它得到另一个“写锅请”

有很多方法来实现这样的东西。重要的是在开始实现之前要清楚地知道流程将是什么。

票数 3
EN

Stack Overflow用户

发布于 2014-04-07 00:01:10

您可能希望从主PIC1中控制大麻,但您必须有自己的理由。

它可以通过执行以下操作来工作:

  • 在PIC1和PIC2 (MOSI、MISO和SCLK)之间增加1k系列电阻。
  • 将数字锅的CSpot连接到PIC1。通过做 这样,PIC1就会知道PIC2正在使用SPI总线。
  • PIC1只在CSpot很高(不活动)时才传输SPI数据。
  • 只有在PIC2处于非活动状态时,PIC1才会作为主服务器运行。

该串联电阻将保护PIC1输出不受来自PIC2的电压碰撞。但是,阅读PIC数据表,看看这些终端在PIC1没有传输任何信息时是否表现为PIC1。

确保看看串联电阻器是否没有那么大,这样你的SPI带宽就会受到影响。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22901424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档