Raspberry Pi如何区分多个扩展板?


8

我刚开始使用Raspberry Pi上的GPIO进行各种项目。RPi有许多分支板,其中许多具有引脚,以便将板堆叠在一起。似乎GPIO引脚直通,所有板子都有相同的引脚。对我来说,这意味着堆栈中的所有板都从RPi接收完全相同的信号,并且应表现相应。看来,针对一个板的命令可能会产生很多错误,从而影响另一板的工作方式,但显然不会发生。

那么Raspberry Pi如何知道哪个板正在获得哪些特定命令?是否存在某种初始化命令,只有特定的板才能识别该初始化命令,然后开始接受其余命令?


对于可堆叠的arduino防护板和其他各种计算平台,我也看到了这一点。
cspirou 2015年

恐怕答案是,没有一块板可以检测另一块并重新配置自身的标准方法。您必须在购买前检查每块电路板的详细信息,并确定自己是否可以相互合作。
2015年

Answers:


5

计算机使用称为总线的系统通过同一组电线将多个外围设备连接到CPU。 I2CSPI是与pi GPIO引脚一起使用的总线系统的示例,它们使同一物理引脚上的多个设备(由内部总线管理)可以使用不同的地址。寻址是由总线系统协议创建的抽象。有点像您如何使用同一物理连接到Internet的多个联网应用程序同时运行。

例如,查看RTC Pi Plus,示例链接中的可堆叠板之一:

在此处输入图片说明

请注意在盒子的五个侧面。这些对应于另一侧的引脚。它们被标记为:

  • 5V =电源,可与其他设备共享。
  • GND =接地,也很常见。
  • SDA和SCL = I2C总线引脚; 在引脚3和5的pi上。您可以在I2C总线上有很多设备,都使用这两个相同的引脚进行通信。
  • SQW =我相信这代表“方波”,也许我们其中一个电子知识渊博的成员中会有一个很好的评论来解释其目的。

换句话说,该板根本不使用大多数引脚。它们只是在那里以便堆叠。它确实使用的所有(或大多数情况下,仍然不了解SQW)可与其他设备同时共享。

这种方式堆叠的真正限制是可提供的功率与消耗的功率,而不是所涉及的引脚数。如果包括其他电源,可能会成为限制,但是我认为在此之前,您必须将堆栈移到外部并开始使用梯子对其进行操作。;)


3

您只能有一个HAT板,因此不会出现此类问题。有些板可以连接多个板,但不是HAT板。


1
HAT可能不是正确的说法,但是我说的是连接到GPIO引脚的电路板。以下站点显示了高高的此类板栈。 abelectronics.co.uk 我可以修改问题以删除“ HATs”
cspirou 2015年

1

那么Raspberry Pi如何知道哪个板正在获得哪些特定命令?

Pi不知道。您必须确定。

关键是,如果您连接多个扩展板,则必须注意信号线要么不被多次使用,要么实施一种总线方案,该方案可以与共享某些线路的多个设备一起工作(如已经建议的@goldilocks)。为了了解如何完成此操作,我建议您阅读旧的 ISA总线。可以使用GPIO作为数据和地址线来实现某些功能(如果麻烦的话)。

是否存在某种初始化命令,只有特定的板才能识别该初始化命令,然后开始接受其余命令?

尽管HAT毫无疑问,但它们使用的识别方案值得一看。请注意,这里没有堆叠的HAT *(每个Raspberry Pi博客规范讨论中都介绍了可堆叠的HATs-但由于自动配置的复杂性和用户错误的可能性大大增加,最终被淘汰了)。因此,在任何给定时间,仅将连接一个HAT,读出EEPROM,并在设备树中提供其信息。


*如果帽子具有相同类型,因此不需要多个且不同的标识,则可以制造可叠放的帽子,例如用于Raspberry PiAdafruit 16通道PWM / Servo HAT

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.