21IC电子网 | 公众号精选

担心微控制器I/O不够用?让外部I/O扩展器件帮你解忧!

OFweek维科网
2021-09-16 14:17
关键字: IO 微控制器 扩展器
收藏
设计人员经常面临两个微控制器I/O问题。第一个问题是,最适合应用的微控制器不具备合适的I/O能力组合。第二个问题是,已推出的产品线需要增加I/O。



出现第一个问题时,开发人员经常不得不购买更昂贵且功能更强的微控制器。而面对第二个问题时,切换到新的微控制器以及随之而来的软件移植所需的成本及时间可能会多得令人难以承受。



要同时解决这两个问题,一种潜在的解决方案是使用外部I/O扩展器件,这种器件通常可连接到微控制器的SPI或I2C总线。这样就能避免在引脚数以及可能的性能和封装方面,对微控制器做出过多的规定。同时,这种方法还能让产品设计具有前瞻性,以应对功能蠕变、目标市场扩张、客户功能请求和微控制器选择不当(这种情况时有发生)等问题。



本文将讨论典型的微控制器I/O要求,并介绍一些合适的外部扩展器件,然后说明如何使用这些片外资源来增加通用输入和输出、存储器存储、脉冲宽度调制 (PWM) 甚至看门狗定时器功能。






选择扩展接口



微控制器配有多个不同的片载外设接口,可用于与外部设备通信。根据微控制器的不同,这些接口可能包括(仅列举几例):



其中最适合与外部扩展设备通信的接口是I2C和SPI。



I2C是一种两线总线,传统的运行速率为100千位/秒 (kb/s) 或400kb/s,但也有一些可支持1Mb/s或更快速度的高速设备。其中一条线是专用的时钟引脚,而另一条线则用于主设备和从设备之间的双向通信。通常情况下,微控制器充当主设备,外部设备充当从设备。从设备可使用7位或10位寻址方案进行寻址。



SPI是一种三线总线接口,运行速率介于1Mb/s和12Mb/s之间。SPI总线配有专用的主设备输出数据线、从设备输出数据线和时钟。微控制器同样配置为主设备,使用“从设备选择”线与从设备通信。每个与微控制器连接的从设备都需要一个专用输出引脚,用于选择它进行通信。不难想象,如果开发人员有很多想要连接的外部设备,他们可能很快就会用尽 I/O 线,然后选择从设备。



例如,如果开发人员使用STMicroelectronicsSTM32L011D4P7,可供使用的I/O线共有11条(图1)。仅SPI数据和时钟就需要三条I/O线,剩下的八条线除了与从设备通信,还需要执行系统所需的所有其他功能。虽然这完全可以满足许多应用的要求,但某些时候,设计人员仍可能需要对I/O进行扩展。




图1:STM32L011D4P7是一款Arm® Cortex®-M0 处理器,其I/O引脚数限制为11个(图片来源:STMicroelectronics)



一般情况下,经验法则非常简单:添加以下功能时使用I2C总线:



SPI 总线应该用于增加诸如为SD卡提供高速存储器访问等功能。



扩展通用I/O




有相当多的集成电路可支持通过I2C接口来扩展输入和输出。以下是一些有趣的示例:



PCA8574是一款特别有趣的器件,因为它只包含一个用于执行输入和输出的寄存器。单个寄存器极大地精简了配置器件以及读写引脚所需的软件数量(图2)。微控制器通过I2C与PCA8574通信,并根据A0至A2引脚的配置方式对此器件进行寻址。这一特性增加了设计的灵活性,因此开发人员可以为PCA8574选择从设备地址,并且可在一个设计中使用多个从设备地址。



图2:NXP的PCA8574是一款准双向8位I/O I2C扩展器。该扩展器只有一个I2C寄存器可供读写,从而在其引脚上执行I/O功能,因此是一款非常简单、精巧的器件。(图片来源:NXP Semiconductors)



默认情况下,P0至P7在上电时配置为输入。读取单个内部寄存器时将为器件上的各个引脚指定状态,无论该引脚配置为输入还是输出。PCA8574允许引脚同时用作输入和输出,因此对寄存器的写入也会设置相应的位输出。



输出驱动由微弱的内部电阻器上拉,该电阻器很容易因输入值而过载。如果任何一个输入状态发生变化,INT引脚将切换为低电平,让微控制器知道输入状态发生了变化。然后,微控制器可以调用I2C来读取新值。



拓展PWM



PWM扩展器是一款非常有用的扩展器件。该器件在驱动LED时特别有用。当微控制器未执行任何操作时,可将其设为休眠模式,此时PWM扩展器可负责驱动LED状态。



关于如何使用PWM扩展器的完美范例经常出现在RGB按钮电路中,该电路可使E-SwitchPV6F240SSG RGB按钮


图 3E-Switch的 PV6F240SSG RGB 按钮


Maxim IntegratedMAX7315便是一款适用于I2C接口的PWM扩展芯片。MAX7315配有8个PWM端口,并具有LED强度控制功能,这样可以轻松涵盖驱动RGB开关所需的3个通道,使得单个器件能够驱动若干开关和一些独立的LED。此外,MAX7315还有第9个端口,可以用作转换检测中断或通用输出。



MAX7315 I2C接口比NXP的PCA8574稍微复杂一些,因为它包含多个寄存器。因此,开发人员必须寻址从设备,提供其有兴趣读取或写入的存储器地址,然后执行写入或读取。MAX7315的存储器映射如图4所示。



图4:MAX7315 PWM控制器配有8个输出端口,其中包括LED强度功能。该器件的寄存器映射非常简单,允许轻松访问高级PWM功能。(图片来源:Maxim Integrated)



MAX7315 的寄存器映射非常简单,允许轻松访问高级 PWM 功能。



配有WDT、EEPROM和PWM的组合型扩展器



如图所示,I2C总线I/O扩展器在用作独立器件时可能非常强大。也就是说,这种扩展器只包含诸如I/O或PWM等特定功能。例如Cypress SemiconductorCY8C9520A多端口I/O扩展器,这类扩展器在一个IC封装中包含了多个外设扩展。CY8C9520A共有三种扩展形式:20位、40位或60位扩展。然后可将这些引脚配置为输入、输出或PWM(图5)。


图5:Cypress Semiconductor的CY8C9520是一款配有EEPROM的20位、40位或60位I/O扩展器。该扩展器允许将扩展引脚配置为输入、输出或PWM。(图片来源:Cypress Semiconductor)



除I/O扩展外,CY8C9520还配有EEPROM,可用于存储重要的应用设置(如序列号)以及其他重要的配置参数。



仔细查看图5,您会看到GPort 2上的WD6引脚。该引脚是一个看门狗定时器输出引脚,可在微控制器无法通信时用于复位微控制器,以及操控CY8C9529看门狗。看门狗设置是完全可配置的,并且可用于为应用程序代码增加额外的稳健性。



扩展微控制器功能的技巧和诀窍



目前有许多技术可帮助扩展微控制器的功能。以下是一些有帮助的技巧和诀窍:



本文小结



当设计进展到微控制器无法继续提供更多I/O时,开发人员无需将现有的设计推倒重来。相反,他们可以使用外设芯片,以便为系统增加额外的功能。






留言10字或以上


审查后1周内可获加25分!





DK会员中


福利多


你,加入了没?


积分可兑换各种好礼


快到「会员权益」页面看看!
如有任何问题, 欢迎联系得捷电子


Digi-Key的客服团队



中国(人民币)客服


400-920-1199 service.sh@digikey.com QQ在线实时咨询 | QQ号:4009201199
中国(美金)/香港客服
400-882-4440 8523104-0500 china.support@digikey.com





相关推荐