新闻详情
客服

MCP23008扩展串口引脚排列以及与Arduino连接电路

619 2024-01-31 16:41:45 来源: IC先生 作者: IC先生

使用MCP23008端口扩展器向微控制器添加另外8个引脚  。MCP23008 使用两个I2C引脚(这些引脚可以与其它I2C器件 共享 ),作为交换,你可以使用8个通用引脚。可以将8个引脚中的每一个引脚设置为输入、输出或带上拉电阻的输入。当任何输入发生变化时,甚至可以通过外部引脚获得中断,因此你不必继续轮询芯片。

使用该芯片的电压范围为2.7-5.5V(适用于任何3.3V或5V设置),可以从任何I/O引脚吸收/拉出高达20mA的电流,因此这适用于LED等。如果需要更多功率,请将其与高功率MOSFET配合使用  。 DIP封装意味着它可以插入任何面包板或穿孔板。

此外,你可以通过将ADDR0-2引脚连接到电源或接地来设置I2C地址,最多可设置8个唯一地址。这意味着8个芯片可以共享一条I2C总线,即64个I/O引脚!

MCP23008

功能属性

类型 功能描述
类别 集成电路 (IC)
接口 – I/O 扩展器
制造商 微芯科技
输入/输出数量 8
界面 I捕获C
中断输出 是的
特征 上电复位
输出类型 推拉
电流 – 输出源/灌电流 25毫安
时钟频率 1.7兆赫
电压 – 电源 1.8V~5.5V
工作温度 -40℃~125℃ 
安装类型 通孔
包装/箱 18-DIP(0.300英寸,7.62毫米)
供应商设备包 18-PDIP

功能特性

  • 带中断输出的8位端口扩展器
  • 一条总线上最多可容纳8个设备的3个地址输入
  • 每个I/O具有25mA灌电流/拉电流能力
  • 支持100kHz、400kHz 和 1.7MHz I2C ™ 兼容模式
  • 内部上电复位 (POR)
  • 封装形式:18针PDIP(300 mil)、18引脚SOIC(300 mil)、20引脚SSOP、20引脚QFN

引脚配置

引脚配置

引脚 类型  参数
引脚#1 SCL/SCK 它是串行时钟输入。
引脚#2 SDA/SI 它是串行数据 I/O (MCP23008)/串行数据输入 (MCP23S08) 引脚。
引脚#3 A2/SO 它是硬件地址输入(MCP23008)/串行数据输出(MCP23S08)。它(A2)必须受到外部偏置。
引脚#4 A1 它是一个硬件地址输入。必须是外部偏置。
引脚#5 A0 它是一个硬件地址输入。必须是外部偏置。
引脚#6 RESET 这是一个外部复位输入。
引脚#7 NC/CS 无连接 (MCP23008)/外部片选输入 (MCP23S08)。
引脚#8 INT 它是一个中断输出。它可以配置为高电平有效、低电平有效或漏极开路。
引脚#9 VSS 它用于接地。
引脚#10 GP0 它是一个双向 I/O 引脚。它可以启用电平变化中断和/或内部弱上拉电阻。
引脚#11 GP1 它是一个双向 I/O 引脚。它可以启用电平变化中断和/或内部弱上拉电阻。
引脚#12 GP2 它是一个双向 I/O 引脚。它可以启用电平变化中断和/或内部弱上拉电阻。
引脚#13 GP3 它是一个双向 I/O 引脚。它可以启用电平变化中断和/或内部弱上拉电阻。
引脚#14 GP4 它是一个双向 I/O 引脚。它可以启用电平变化中断和/或内部弱上拉电阻。
引脚#15 GP5 它是一个双向 I/O 引脚。它可以启用电平变化中断和/或内部弱上拉电阻。
引脚#16 GP6 它是一个双向 I/O 引脚。它可以启用电平变化中断和/或内部弱上拉电阻。
引脚#17 GP7 它是一个双向 I/O 引脚。它可以启用电平变化中断和/或内部弱上拉电阻。
引脚#18 VDD 电源引脚。
引脚#19 N/C 常闭。

将MCP23008 I2C接口与Arduino连接

  • 在此项目中,将演示如何将MCP23008  I/O端口扩展器芯片连接到Arduino微控制器。如果需要为微控制器提供更多I/O端口,这是一件非常有用的事情。
  • 输入/输出端口称为I/O端口。如果我们需要更多的微控制器输入或输出,可以使用I/O端口扩展器芯片来增加I/O端口的数量。
  • MCP23008芯片仅利用微控制器上的两个引脚即可为我们提供额外的8个I/O端口。
  • I2C总线 和协议由MCP23008芯片使用。因此,Arduino上只需要两个数字引脚。它使用极少量的I/O引脚进行通信。
  • 它使用两个引脚作为时钟线,一个引脚作为数据线。
  • I/O端口都是双向的。因此,连接到其中一个端口的设备既可以接收数据,也可以向微控制器发送数据。每个端口可吸收高达25mA的电流,足以为本电路中使用的LED等设备供电。如果需要更多电流,始终可以使用晶体管,但对于此电路,IC可以驱动LED。
  • 也可以使用MCP23008驱动8个LED,因为它有8个输出。

主要组件

  • MCP23008 I/O端口扩展器

  • 几个220Ω电阻

  • 几个LED

  • Arduino微控制器

它是需要更多I/O端口的微控制器的理想补充。MCP23008  I/O端口扩展器的成本略高于2美元。这是一个18脚的芯片。

MCP23008由+5V供电。这样就可以将VDD连接到Arduino的5V端子。VSS接地。这完成了MCP23008的供电要求,8 个I/O端口标记为GP0-GP7。因为NC未连接,所以我们将该引脚保持未连接(或悬空)。

SCL代表串行时钟线,它连接到Arduino上的模拟时钟引脚 。模拟引脚5。串行数据线缩写为SDA。它连接到Arduino模拟引脚4上的模拟数据线。输出的中断引脚是INT。我们将此引脚保持未连接状态,因为我们不打算在此处使用中断。地址引脚为A0、A1和A2。如果你使用多个MCP23008芯片,则只需关心这些引脚。

这些引脚是外部偏置的,这意味着你可以向它们提供电压以生成不同的地址。因为有3个引脚,所以总共可以生成8个不同的地址 (23=8)。仅当你连接多个IC时才需要这样做,以便我们可以区分它们。带有Arduino微控制器的MCP23008 I/O端口扩展器电路如下图所示:

扩展器电路

详细说明

现在让我们详细回顾一下上面项目。在此电路中,我们将一个220Ω电阻器和一个LED连接到每个输入和输出引脚。我们将+5V连接到VDD,将VSS连接到GND 以获取输入电源。

现在,将MCP23008的SCL引脚1连接到Arduino的模拟引脚5,这将同步Arduino和I/O端口扩展器芯片的时钟 。

接下来,我们连接到MCP23008的引脚2,即SDA,连接到Arduino的模拟引脚4,通过此连接可以在Arduino和I/O端口扩展器芯片之间传输数据。由于本项目中未使用中断,因此请悬空INT引脚。我们不使用RESET引脚;相反,我们将其连接到+5V。要使用它,只需将其连接到Arduino上的数字引脚即可。

接下来,我们将地址引脚A0、A1 和 A2 连接到地,它将这三个引脚的地址更改为000。这就是MCP23008 Arduino接口。

总结

MCP23008通用输入/输出 (GPIO) 扩展器是一种简单、经济高效的方式来监视和控制多个外设信号,它们使设计人员可以轻松地在其设计中添加额外的I/O,从而释放微处理器的GPIO用于其他更重要的功能。

此外,I2C是一种数据包交换串行通信协议,每个连接仅使用2根线,允许多个主设备连接到多个从设备。它旨在将低速外围IC连接到短距离板内通信中的处理器和微控制器。

版权声明: 部分文章信息来源于网络以及网友投稿,本网站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性,如本站文章和转稿涉及版权等问题,请作者及时联系本站,我们会尽快处理。
标题:MCP23008扩展串口引脚排列以及与Arduino连接电路
网址:https://m.mrchip.cn/newsDetail/35267
文章标签: 芯片