这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 有奖活动 » 基于MCP23S17的输入输出功能模块控制

共2条 1/1 1 跳转至

基于MCP23S17的输入输出功能模块控制

助工
2026-05-21 13:16:01     打赏

多年前得到一个功能模块,一直不知道有啥功能,也不知道如何来使用。前几天又看到它,才打算仔细看一下它的用途,该模块如图1所示。

image.png

1  MCP23S17功能模块

 

从外观看,它应该是一个多功能的输入输出模块,因为上面又8LED4个按键、2个继电器及供连接的输入输出端子。

此外,模块上还2个芯片,一个是ULN2803,另一个则是MCP23S17ULN2803比较常见,是一个使用达林顿开关管的功率驱动型芯片。

至于MCP23S17则是是一种使用SPI接口的并行转换芯片,可对28路并行接口进行控制。

在其芯片内部集成了上电复位(POR) 电路,复位到器件的默认状态。它有两个对立的可编程中断源输出,其极性翻转寄存器可配置GPIO输入极性。 其工作温度范围为: -40°C~85 °C,工作电压1.8V~5.5V

该芯片的引脚排列如图2所示,其典型应用电路如图3所示。

image.png

2  MCP23S17引脚排列

image.png

3  典型应用电路

 

芯片各引脚的用途如下:

VCC:供电引脚

INTA: A端口中断输出

INTB: B端口中断输出

CS:片选引脚

SCK:  钟信号引脚

SI: 从机输入引脚

SO: 从机输出引脚

RESET:电平复位

A0A1A2:器件地址配置引脚,SPI总线可扩展8个相同器件。

GPA0~GPA7: A端口8位输入输出引脚(默认输入模式)

GPB0~GPB7: B端口8位输入输出引脚(默认输入模式)

 

该芯片的SPI控制字格式见图4所示,其通讯协议方式见图5所示。

image.png

4  SPI控制字格式

image.png

5  SPI通讯协议方式

 

至此,就对MCP23S17芯片有了大致的了解。

那该功能模块有是怎样的情况呢?

由于没有该模块的原理图,只好自行通过测试来弄清。

经测试,最终了解到的情况是:

MCP23S17GPB0~GPB7是作为输入口来用,被连接到蓝色的端子上,GPA0~GPA7是作为输出口来用。

其中,GPB0~GPB4还分别连接这按键S1~S4,而GPA0~GPA7在输出时为增强驱动能力,是通过ULN2803进行功率放大的,故驱动能力较强。它除了控制8LED外,其中的GPA0~GPA1还同时控制这继电器1和继电器2

该模块的从地址被设置为:A2A1A0=000

那该如何控制这个模块进行测试呢?

为了减轻测试难度,这里选取的是Arduino UNO开发板,开发工具为Arduino IDE

在连接好开发板与功能模块的SPI接口后,进行进行测试的程序为:

#include "MCP23S17.h"
MCP23S17 MCP(10); 
void setup()
{
  Serial.begin(115200);
  Serial.println();
  Serial.print("MCP23S17_LIB_VERSION: ");
  Serial.println(MCP23S17_LIB_VERSION);
  Serial.println();
  delay(100);
  SPI.begin();
  bool b = MCP.begin();
  Serial.println(b ? "true" : "false");
  MCP.pinMode8(0, 0x00); 
  MCP.write8(0, 1);  // 继电器1
  delay(500);
  MCP.write8(0, 2);  // 继电器2
  delay(500);
  MCP.write8(0, 4);  // LED2
  while(1);
}


经程序上传,可见到继电器1LED0)、继电器2LED1)和LED2依此转换了工作状态,说明程序设计有效。

image.png

6 点亮LED2

 

此外,还可以通过串口来观察端口的输出状态,其程序见图7所示。

image.png

7 端口输出状态

 

当然,也可对输入端口进行测试,其程序程序见图8所示。

image.png

8 输入测试 

当按下K1K2键的情况下,其测试结果如图9和图10所示,说明按键的操作已产生作用。

image.png

9 按下K1

image.png

10 按下K2

 

在掌握了该模块的使用方法后,才发现这是一个较有实用价值的功能模块。





关键词: MCP23S17功能模块    

院士
2026-05-21 15:29:09     打赏
2楼

挖出了“宝藏”。


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]