始终存在用于连接可编程设备(如FPGA和微控制器)的连接,以便软件开发可以与硬件一起或之前开始。本文解释了已经出现的“扩展接口”的非常松散的伪标准,其中一些比其他标准更一致,并将讨论FPGA的Pmod标准和微控制器的Arduino伪标准。本文解释了如何使用MAX14661多路复用器设计从一种标准到另一种标准的简单接口。
介绍
多年来,标准激增,没有多少行业比电子行业创造更多。你有没有想过为什么我们对看似奇数或仪表的东西有一个标准?关于确定航天飞机固体火箭助推器直径的标准是否真的起源于马的背面,争论激烈。2好奇和有趣,是的,但是,接受总会有很多标准这一事实更有成效,因此我们必须找到使它们很好地协同工作的方法。对于工程师和制造商来说,有一个特定的领域,标准的不兼容性特别麻烦:原型平台。幸运的是,有一些方法可以减轻这些不兼容性。让我们仔细看看。
开发板扩展标准
多年来,组件制造商一直提供开发系统,以帮助客户围绕其零件设计应用程序。对于FPGA和微控制器等可编程设备,始终存在与其他组件接口的连接,因此软件开发可以与硬件一起或之前开始。随着时间的推移,这些“扩展接口”的伪标准已经出现,其中一些比其他标准更一致。赛灵思等 FPGA 供应商推动了其中一些标准,例如 FMC 规范,使客户能够尽可能轻松地迁移到最新平台。Xilinx 还使用第三方标准(如 Digilent 开发的 Pmod™ 标准)将外设模块连接到主机控制器板,并且该接口有多种外设可供选择。微控制器制造商的标准化速度较慢,许多制造商使用自己的专有接口。然而,像制造商运动和Arduino®平台的普及这样的市场力量也正在将它们推向伪标准。
Pmod 非常适合 FPGA
Pmod 接口是将外设与 FPGA 开发板混合搭配的好方法。它在一个方便的可手工焊接连接器中提供对八个引脚以及电源和接地的访问。FPGA 的灵活性使其八个信号引脚几乎可用于任何用途。虽然这增强了其在FPGA中的实用性,但也使得该接口难以与外设分配给特定引脚的微控制器一起使用。为了解决这个问题,Digilent 定义了几种不同的 Pmod 引脚排列类型,并为特定引脚分配了各种功能(图 1)。
图1.Pmod引脚排列类型具有分配给特定引脚的各种功能。
类型定义使得将Pmod接口标准与微控制器板一起使用变得更加容易,但仍然存在挑战。已弃用的Type 3 UART接口是一个很好的例子,说明在实现真正通用接口时遇到的困难,而许多微控制器的引脚复用功能有限。尽管如此,即使有其局限性,Pmod接口也是原型设计或教育工作非常有用的扩展端口。
Arduino 伪标准
Arduino伪标准是一种完全不同的野兽;出于不同的原因为不同的受众开发的不同平台。最初的Arduino板只是暴露了简单微控制器的引脚,并添加了足够的支持设备,使其易于编程,但对于业余爱好者来说仍然是负担得起的。由于其简单性,最初的引脚排列由微控制器的功能定义。
随着平台发展到支持功能更强大的处理器,这个伪标准被无数的引脚复用组合所分割,可以说,例外多于规则。一些问题,例如支持不同的I / O电压和I 的不一致2C 信号,在 UNO 董事会的第 3 修订版中得到了处理。然而,任何将Arduino板(或任何Arduino衍生产品)与扩展板配对的人都必须仔细检查兼容性。然而,不乏Arduino衍生产品可供选择(图2)。即使仅限于Arduino网站上的官方主板,引脚兼容性也远非微不足道。通常,每个Arduino引脚都具有特殊功能,也可以用作通用I/O(GPIO)。
图2.Arduino 封装板配置在许多衍生产品中,以支持不同的设计和应用。
与Pmod接口不同,一个引脚可以提供多种特殊功能,大多数Arduino引脚通常执行一项特殊功能。正如其根源所期望的那样,Arduino伪规范更适合微控制器,与Pmod接口不同。因此,这就是为什么在Arduino外形尺寸中找到微控制器板比使用Pmod连接器更容易的主要原因。
pmod 和 Arduino 接口之间的映射
我们有Pmod接口和Arduino伪标准,两者都可以从许多来源获得。是否有希望从一个平台获得外围设备与另一个平台的控制器进行通信?当然,一切皆有可能,但有时治愈比疾病更糟糕。
如果将Arduino UNO rev 3引脚排列与Pmod规范进行比较,我们看到Arduino板上有22个信号引脚,Pmod连接器上只有8个信号引脚。从技术上讲,可以序列化所有 22 个引脚并将它们通过 Pmod 提供的 8 个引脚,然后在另一侧对其进行反序列化,但这项工作将留给读者练习。将 22 个 Arduino 信号自适应映射到 Pmod 规范中定义的不同类型(参见图 1)的任务更易于管理,但仍然不是微不足道的。图1显示了五种不同Pmod类型的引脚排列。许多信号对电平敏感,并通过GPIO引脚通过软件进行控制。但是,一些信号采用时间敏感协议,通过利用微控制器内部的外设,这些协议更容易使用。因此,挑战在于将微控制器的所有专用引脚映射到Pmod规范中指定的引脚。
建议的解决方案:使用串行控制的交叉点开关
解决此映射问题的一种方法是在电路板上放置一系列配置跳线。虽然简单明了,但这既不是一个优雅也不是用户友好的解决方案。在Arduino大小的板上适应说明所需的字体大小将难以辨认。许多引脚可以是双向的,因此简单的逻辑门不是信号路由的选项。模拟开关可以工作,但没有足够的额外引脚来单独控制它们。引脚短缺可以通过 I 解决2C 端口扩展器。当然,这种策略不会比跳线更优雅,但它是软件可配置的。
如果没有串行控制的16:2多路复用器MAX14661,这种努力似乎毫无希望。乍一看,人们可能会认为需要其中四个设备来支持所有不同的Pmod类型。这种方法似乎并不比端口扩展器解决方案好多少。这是真的,但是...MAX14661具有特殊功能。它允许任意开关组合同时处于活动状态,因此可用作 8:8 交叉点开关。
目前为止,一切都好。但不可否认,8:8 交叉点配置存在限制。它只能同时传递两个独立的信号,每个COM_引脚一个,但两个同时信号有什么用呢?如前所述,大多数信号可以由GPIO驱动,只有少数信号需要内部外设控制器。如果为每个引脚分配一个 GPIO,则只需通过多路复用器路由对时间敏感的串行线路。一个UART和我2C 是每条 2 线总线,因此唯一不适合通过多路复用器的串行接口是 SPI。只有一个接口为 SPI 定义;因此,SPI信号直接路由到连接器,并用作这些引脚的GPIO连接。当时间敏感功能需要其中一个引脚时,只需将GPIO设置为高阻抗输入即可。
信号电压电平如何?最初的Arduino设计及其许多后续产品使用5V信号电平,但5V信号不像以前那样普遍。为了解决这个问题,后来的Arduino板中添加了一个IOREF引脚,以指示基于低压微控制器的衍生产品的信号电平。Pmod连接器没有IOREF引脚,但其绝大多数模块支持3.3V信号。幸运的是,像MAX3378E这样的双向电平转换器解决了这个问题。只需将 Arduino 信号连接到由 IOREF 供电的电平转换器的一侧,然后将另一侧连接到由 Arduino 板专用 3.3V 电源供电的 Pmod 连接器。MAX14661多路复用器可承受-5V至+5V的任何信号,并在1.8V至5V之间传递任何电源,因此可以位于电平转换器的任一侧。由于多路复用器的Arduino连接多于Pmod连接,因此将MAX14661放在电平转换器的Arduino侧是有意义的。这样,Pmod 连接器上只需要两个 4 通道设备(图 3)。
图3.建议的解决方案的逻辑图。
评估此解决方案
该解决方案的关键是每个通道支持多个同时连接。COM_引脚未连接,而是在多路复用器内部用于路由。MAX14661的16个多路复用器连接中有8个专用于Pmod连接器,Pmod连接器还连接到4个支持SPI的信号和4个其他GPIO(图3)。其他 8 个多路复用器连接连接到 2 线串行总线和其他时间关键信号,如 PWM 或定时器引脚。要实现 I2例如,C 型只需配置多路复用器,使能通道 A 上的 SDA 引脚和 Pmod 引脚 4,通道 B 上使能 SCL 引脚和 Pmod 引脚 3。事实上,甚至可以使Pmod连接器第二排上的引脚3和4访问第二个6引脚I2C 普莫德。如果 I2C 设备具有不同的地址,两个端口可以保持活动状态或动态激活,以支持具有相同地址的两个设备。使用跳线根本不可能在具有相同地址的两个设备之间动态切换。但是,使用MAX14661,可以通过编程方式配置所有指定的Pmod类型,甚至一些非标准类型,只需一个只有4mm x 4mm的有源器件。
为什么有人会设计一个非标准的Pmod?其中一个原因是与微控制器相同的引脚复用问题。例如,MAX14661同时支持I2C 和 SPI 控制,具体取决于配置引脚的状态。MAX14661的外设模块配置为与SPI Pmod类型匹配,但时钟和数据引脚与I不匹配。2由 Digilent Pmod 规范指定的 C 引脚。适配器卡上的MAX14661可以将SDA和SCL信号映射到任何Pmod引脚,以支持非标准MAX14661外设模块I2C 引脚映射。MAX14661还具有两个地址引脚,支持四个不同的I。2C 设备地址,这意味着系统可以设计为支持同一总线上的多个设备。
使用MAX14661多路复用I时2C 总线,命令在带内发送。切换与 I 同步生效2C总线。诚然,多路复用 I 可能具有挑战性2C总线带外。如果不小心,您可以在从站将SDA线保持低电平时断开连接。下次选择总线的该分支时,它可能会锁定。MAX14661始终在I结束时转换总线2当交换机另一端的设备应处于空闲状态时,C 写入命令。
审核编辑:郭婷
-
微控制器
+关注
关注
48文章
7505浏览量
151149 -
FPGA
+关注
关注
1627文章
21685浏览量
602326 -
控制器
+关注
关注
112文章
16240浏览量
177601
发布评论请先 登录
相关推荐
评论