基于I²C和SPI(串行外设接口)等接口的MCU外设使用

控制/MCU

1813人已加入

描述

  虽然工程师经常从集成手头应用所需外设的角度考虑微控制器 (MCU),但在许多情况下,需要在 MCU 外部添加功能。例如,您可能需要将传感器或执行器放置在物理上靠近外部设备的位置,远离 MCU。或者,您可能会发现低端 MCU 与一些外围设备相结合,可为给定应用提供成本和系统占用空间的最佳组合。无论如何,基于 I²C 和 SPI(串行外设接口)等接口的 MCU 外设数量正在不断增加。本文将研究一些典型的外设,以及如何将它们与流行的 MCU 一起使用。

  MCU 广泛支持 I²C 和 SPI。在某些情况下,您将不得不选择其中之一,因为 MCU 使用相同的片上资源来支持 I²C 或 SPI。此外,您将需要一些软件来处理串行总线协议,但几乎每个 MCU 供应商都有现成的软件支持。

  I²C 具有使用更少信号线和更少 MCU 引脚的优势。大多数实现都有一条双向数据线和一条时钟线,支持半双工通信。通常,MCU 充当可以连接到多个从设备的主设备,尽管某些实现确实支持在总线上有多个主设备的灵活性。主设备在传输开始时使用地址位来定位特定的从设备,从而无需专用的从设备选择信号。

  SPI 总线通常至少需要三到四根线。SPI 使用单独的日期线进行全双工通信。此外,它使用专用的从机选择信号线,因此如果您的系统带有许多 SPI 外设,您可以使用它们作为选择信号轻松耗尽 MCU 上的 I/O 端口。

  基于更高的数据传输速度和全双工通信,SPI 通常具有更高的性能。您会发现 SPI 时钟频率在 20 至 40 MHz 范围内。大多数 I²C 实施都在 10 到 100-kbit/s 范围内,尽管一些实施使用最新的 MCU 运行得更快。

  动机和特点

  现在让我们讨论您可能希望使用通过串行接口连接到 MCU 的外围设备的一些原因以及可用功能的类型。数据转换器提供了您可能使用的外围设备类型的主要示例。您可能会考虑使用外部转换器的一个原因是,您可能需要比集成在您选择的 MCU 上的转换器提供的精度更高的精度。

  考虑一下凌力尔特的一些转换器。该公司提供I²C A/D 转换器、I²C D/A 转换器、SPI A/D 转换器和SPI D/A 转换器。此外,所有这些都具有比集成在典型 MCU 上的转换器更高的精度。例如,考虑相对较新的瑞萨电子 RL78 MCU系列,该公司在 16 位 MCU 中的顶级产品。迄今为止,大多数可用的系列成员都提供 8 位 A/D 转换器,而有些则提供 10 位转换器。相比之下,分立式凌力尔特 A/D 转换器的精度范围为 8 至 24 位,而 D/A 转换器的精度范围为 8 至 18 位。即使在 8 位或 16 位系统中,您也可以轻松拥有需要更高精度的单个传感器。

  考虑一个特定的产品示例——LTC245116 位 A/D 转换器。基于 I²C 的器件如图 1 所示。转换器依赖 delta-sigma 调制器作为转换器内核,每秒可以执行 30 或 60 次转换。16 位转换器提供 4 个最低有效位的满量程误差,并在一个样本转换时间内建立多路复用操作。此外,该器件非常小,尺寸为 2 x 3 mm,采用 8 引脚 SOT-23 封装。

SPI

  图 1:Linear Technology 的 8 引脚 LTC2451 A/D 转换器提供 16 位精度,并通过 I²C 串行互连连接到 MCU。

  小系统占用空间

  外部外围设备也可以提供一种实现最小系统占用空间的方法。这似乎违反直觉,因为我们通常将集成外围设备视为小型化之路。但是,继续讨论数据转换器,让我们讨论一个 MCU 和 Microchip 的 A/D 转换器配对的示例。

  Microchip提供一长串I²C A/D 转换器以及 D/A 转换器和两者的基于 SPI 的版本。以一个具体示例为例,MCP3021 10 位 A/D 转换器基于 I²C 并使用逐次逼近转换拓扑。该微型器件采用 SOT-23 封装,只有五个引脚,但它提供的精度比许多低端 MCU 转换器中的精度更高。

  您还可以选择 Microchip 和其他供应商的 6 引脚和 8 引脚 8 位 MCU。例如,Microchip PIC10 MCU系列包括许多采用 6 引脚 SOT-23 封装的 MCU。微型 MCU 和同样微型的数据转换器的组合可能比集成了符合您应用要求的转换器的 MCU 更小,成本更低。

  外设灵活性

  您可以通过串行接口将哪些其他类型的外设添加到基于 MCU 的设计中?名单很长。一个简单的例子是 I/O 端口扩展器。许多低端 MCU 都受到引脚限制。此外,即使您有一个具有大量 I/O 的 MCU,您也可能会发现需要将一些 I/O 引脚物理地放置在远离 MCU 的位置——例如靠近传感器。

  恩智浦半导体提供PCA9502 I/O 端口扩展器,可与 SPI 或 I²C 主机一起工作。该 IC 提供 8 条 I/O 线。此外,它非常紧凑,尺寸为 4.1 x 4.1 mm,采用 SOT616 封装。NXP 还提供SC16IS740/50/60 UART,允许您在设计中添加速率为 5-Mbit/s 的串行接口。SC16IS750 和 SC16IS760 变体还包括一个 8 位 I/O 扩展器。

  尽管如此,更有用的外围设备可能是那些具有特定应用功能的外围设备。例如,Microchip 提供范围广泛的I²C 数字电位器。您可以在温度传感应用中将该产品与热敏电阻结合使用。图 2 描绘了一个示例,其中 Microchip MPC4018 电位器用于校准热敏电阻并考虑热敏电阻的非线性操作。

SPI

  图 2:Microchip 的串联数字电位器可用于多种应用,例如校准图中所示电路中的非线性热敏电阻。

  对于更稳健的以温度为中心的应用,Microchip 还提供基于 I²C 的温度传感器IC。例如,MCP9808 数字温度传感器在 –20°C 至 100°C 的范围内提供 ±0.5°C 的精度。此外,该 IC 采用多种 2 x 3-mm 封装。

  串行外围设备的范围一直延伸到用户界面或人机界面 (HMI) 应用程序。例如,Microchip 提供AR1000 触摸屏控制器(图 3)与 SPI 和 I²C 兼容。串行接口将 MCU 链接到控制器。AR1000 可连接来自多家供应商的四线、五线和八线触摸屏传感器(图 3)。IC 通过串行接口直接向 MCU 提供数字坐标。

SPI

  图 3:Microchip AR1000 IC 链接到用于高级 HMI 应用的触摸屏传感器。

  如您所见,串行互连在基于 MCU 的设计中提供了相当大的灵活性。在某些情况下,SPI 和 I²C 可能纯粹是一种有用的方式来实现您无法在 MCU 上集成的功能。但不要将您对串行总线的考虑限制在此类实例中。考虑外部外围设备可能如何影响系统的占用空间、功耗和成本。此外,确保您不会因片上外设和实际接口之间的长信号运行而牺牲保真度,本地外设可以在保真度方面增加价值。您可能会发现分布式外围设备具有诸如占用空间小和更准确的系统规格等优点。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分