MCP23017 模块 拓展IO + Arduino IDE + ESP32S3驱动测试

目录

一、前言

二、MCP23017简要介绍

三、MCP23017驱动测试

四、总结


一、前言

        当我们设计一款产品的时候,如果想要实现多种功能,那么可能会涉及到主控芯片引脚数量不够使用的情况,这个时候可能会需要想办法用更少的引脚控制更多的芯片,例如:3-8MUX也就是译码器、拓展IO板。

        而我们今天就是要讲述MCP23017这一款芯片。

二、MCP23017简要介绍

        这是一款基于 I2C 接口控制的 I/O 扩展模块,可外扩 16Pin I/O 口,支持同时使用多达 8 个,即 可扩至 128Pin I/O 口,兼容 3.3V 和 5V 电平。

   主要特点:

  1. I2C 接口控制,仅需 2 根信号线,即可扩展出 16 个 I/O 口;
  2. I2C 通信地址可设置,短接 A0/A1/A2 焊点可修改通信地址;
  3. 提供 PH2.0 端子和焊盘两种接口类型,支持并联多个 I2C 模块;
  4. 板载电平转换电路,可兼容 3.3V/5V 的工作电平;

 硬件引脚连接:

功能引脚描述Arduino Uno STM32F407 RASPBERRY

VCC

电源正3.3V/5V3.3V/5V3.3V/5V
GND电源地GNDGNDGND
SDAI2C数据线SDAPB7SDA
SCLI2C时钟线SCLPB6SCL
INTA中断输出引脚3PA00
INTB中断输出引脚3PA00

数据手册:MCP23017/MCP23S17 Data Sheet (waveshare.net)

原理图:New Output (waveshare.net)

三、MCP23017驱动测试

        由于我是直接使用MCP23017的拓展引脚作为CS引脚,配合ESP32S3的SPI进行的协同。驱动代码也是直接尝试就调通了,之后还自己重写了一遍MCP23017的驱动代码,还是不难的。

      用户手册:  MCP23017-IO-Expansion-Board-user-manual-cn.pdf (waveshare.net)

 文章内上传了相关的驱动代码

也可以访问以下的链接:

四、总结

        看完上述内容,对于什么是MCP23017有什么作用肯定有了了解,它其实真正意义上只是一个功能模块,服务于其他芯片。

        后续如果有关于MCP23017应用方面的测试我还会发文章分享出来,但是应该会以其他芯片内容为主,拓展IO内容为辅。

         如果对本文的内容有任何改进的建议也欢迎评论&私信告诉我!如果本文对你有帮助的话,不妨点个赞。欢迎留言讨论问题,一起讨论问题、解决问题。

         

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值