当前位置:首页 > > OFweek维科网
[导读]设计人员经常面临两个微控制器I/O问题。第一个问题是,最适合应用的微控制器不具备合适的I/O能力组合。第二个问题是,已推出的产品线需要增加I/O。 出现第一个问题时,开发人员经常不得不购买更昂贵且功能更强的微控制器。而面对第二个问题时,切换到新的微控制器以及随之而来的软件移植所需...

设计人员经常面临两个微控制器I/O问题。第一个问题是,最适合应用的微控制器不具备合适的I/O能力组合。第二个问题是,已推出的产品线需要增加I/O。



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



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



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






选择扩展接口



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


  • 串行外设接口 (SPI)


  • 内部集成电路 (I2C) 总线


  • 通用串行总线 (USB)


  • 通用异步接收器/发送器(UART)


  • 控制器区域网络 (CAN)


  • Wi-Fi



其中最适合与外部扩展设备通信的接口是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总线:


  • I/O


  • PWM


  • EEPROM


  • 看门狗定时器



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



扩展通用I/O




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


  • Texas InstrumentsTCA9534PWR


  • NXP SemiconductorsPCA8574


  • Semtech CorporationSX1520I087TRT



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看门狗。看门狗设置是完全可配置的,并且可用于为应用程序代码增加额外的稳健性。



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



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


  • 使用I2C连接外部设备。该接口只需两个引脚,并且支持多个从设备。


  • 在将某个零件设计成硬件之前,先购买一个开发板,或将芯片焊接到扩展板上,测试其能否满足您的系统需求。


  • 使用I2C总线工具与扩展器件连接,并了解其工作情况,这样可大幅提升软件的开发速度。


  • 在软件开发过程中,使用总线分析器监视与外部设备的通信,最大限度缩短调试时间。


  • 如果可能,选择配有外部看门狗定时器的器件,这可以作为一种工具,为系统设计增加稳健性。


  • 在连接片外存储器获取数据(非配置数据)时,请使用SPI等高速接口。


  • 如果设备返回否定应答 (NAK) 信号,或者总线受到拖累,请确保微控制器的I2C驱动程序可以处理此类问题。对于这些驱动程序来说,在收到意外响应时忽略错误并进入无限循环的情况并不罕见。



本文小结



当设计进展到微控制器无法继续提供更多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





本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭