MCP23X08/17 GPIO 扩展器的独特特性与应用

电子说

1.4w人已加入

描述

MCP23X08/17 GPIO 扩展器的独特特性与应用

在电子设计领域,GPIO 扩展器是实现 I/O 扩展的常用工具,它能借助标准串行接口轻松扩展 I/O 端口。今天,我们就来深入探讨 Microchip 公司的 MCP23X08/17 GPIO 扩展器的独特特性和应用。

文件下载:MCP23X08EV.pdf

1. MCP23X08/17 产品概述

MCP23X08 是 8 位 GPIO 扩展器,包括支持 (I^{2} C^{TM}) 接口的 MCP23008 和支持 SPI 接口的 MCP23S08;MCP23X17 是 16 位 GPIO 扩展器,包括支持 (I^{2} C) 接口的 MCP23017 和支持 SPI 接口的 MCP23S17。虽然它们位数不同,但功能和特性基本相同。

2. 特性详解

2.1 I/O 端口描述

I/O 端口具有高度可配置性,以实现最大的灵活性。通过 IODIR 寄存器可以控制引脚的方向(输入或输出),当 (IODIR = 0) 时,输出驱动器激活,引脚被驱动到锁存寄存器(OLAT)中的状态;当 (IODIR = 1) 时,驱动器处于高阻抗状态。每个引脚可以有多种配置方式:

  • 配置为输入:输出驱动器禁用,处于高阻抗状态。
  • 配置为输出:输出驱动器启用,锁存器中的值被驱动到引脚上。
  • 启用弱上拉电阻:为引脚提供上拉功能。
  • 模拟开漏配置:通过清除输出锁存(OLAT)位为零,并使用方向寄存器(IODIR)设置引脚上的电平。当引脚为输入时,需要一个上拉电阻将引脚拉高到电压。要驱动 0,将引脚配置为输出((IODIR = 0));要使引脚浮空为 1,将引脚设置为输入((IODIR = 1))。

2.2 8/16 位模式(仅 MCP23X17)

MCP23X17 具有独特的能力,它既可以作为两个 8 位 GPIO 扩展器,也可以作为一个 16 位 GPIO 扩展器。通过 IOCON.bank 将 16 个 I/O 端口分为两个独立的 8 位 I/O 端口(端口 A 和端口 B)。

  • 8 位模式:端口 A 的寄存器地址范围是 00h - 0Ah,端口 B 的寄存器地址范围是 10h - 1Ah。
  • 16 位模式:端口 A 和端口 B 的寄存器地址范围是 00h - 15h,寄存器仍以 8 位端口寻址,16 位映射对始终是偶数地址。需要注意的是,IOCON 寄存器是两个端口共享的,会同等影响两个端口。

2.3 中断特性

2.3.1 中断映射

MCP23X08 有一个中断引脚,MCP23X17 有两个中断引脚,每个中断引脚与一个 8 位端口相关联。MCP23X17 的中断引脚可以通过 IOCON.MIRROR 以两种方式映射:

  • 中断引脚独立操作,INTA 反映端口 A 的中断条件,INTB 反映端口 B 的中断条件。
  • 当任一端口发生中断时,两个中断引脚都激活。

2.3.2 中断极性和开漏

中断可以配置为三种模式:高电平有效、低电平有效和开漏。通过 IOCON 寄存器中的 INTPOL 和 ODR 位进行配置。对于 MCP23X17,INTA 和 INTB 引脚的极性和开漏配置是相同的。

2.3.3 中断条件

  • 引脚状态变化中断:配置为引脚状态变化中断的引脚,当引脚状态改变为相反状态时会触发中断。中断服务后,默认状态会重置。通过读取 INTCAP 或 GPIO 寄存器可以清除中断条件,并设置新的引脚默认状态。
  • 与 DEFVAL 寄存器值变化中断:配置为与寄存器值变化中断的引脚,当相应输入引脚与寄存器位不同时会触发中断。只要条件存在,中断条件就会一直保持,无论是否读取 INTCAP 或 GPIO 寄存器。

2.4 内部地址指针控制

MCP23X08/17 系列设备可以通过配置控制位(IOCON.SEQOP)来选择是否自动递增内部地址指针。这在访问寄存器时提供了最大的灵活性。例如,在配置设备时,可以允许地址指针自动递增,避免每次字节操作后重新寻址;而在对寄存器进行连续操作时,可以禁用地址递增功能,确保始终访问同一寄存器而无需重新寻址。

2.5 硬件地址引脚

SPI 接口的 “S” 设备(MCP23S08 和 MCP23S17)除了使用片选引脚选择器件外,还具有硬件地址引脚。这使得在总线上连接多个设备时,只需要一个 MCU 引脚用于片选,提高了引脚的使用效率。

3. 总结

MCP23X08/17 系列 GPIO 扩展器具有多种独特特性,为系统和模块工程师在设计时提供了极大的灵活性。在实际应用中,我们可以根据具体需求合理配置这些特性,以满足不同的设计要求。大家在使用过程中有没有遇到过什么有趣的问题或者有更好的应用案例呢?欢迎在评论区分享交流。

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

全部0条评论

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

×
20
完善资料,
赚取积分