logo资料库

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

第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
资料共9页,剩余部分请下载后查看
MCP23017 IO Expansion Board 用户手册 MCP23017 IO Expansion Board 用户手册 产 品 概 述 我是一款基于 I2C 接口控制的 I/O 扩展模块,可外扩 16Pin I/O 口,支持同时使用多达 8 个,即 可扩至 128Pin I/O 口,兼容 3.3V 和 5V 电平。 特 点  I2C 接口控制,仅需 2 根信号线,即可扩展出 16 个 I/O 口  I2C 通信地址可设置,短接 A0/A1/A2 焊点可修改通信地址  提供 PH2.0 端子和焊盘两种接口类型,支持并联多个 I2C 模块  板载电平转换电路,可兼容 3.3V/5V 的工作电平  提供完善的配套资料手册(Raspberry/Micro:bit/Arduino/STM32 示例程序和用户手册等) 产 品 参 数 工作电压: 控制接口: 中断引脚: 扩展 I/O 口数量: 产品尺寸: 过孔直径: 5V/3.3V I2C INTA、INTB 16 个 38mm × 23mm 2.0mm 版本:V1.0.0,日期:2018 年 09 月 06 日 1
MCP23017 IO Expansion Board 用户手册 接 口 定 义 I2C 接口 功能引脚 VCC GND SDA SCL INTA INTB 用 于 树 莓 派 安 装 必 要 的 函 数 库 描述 电源正 电源地 I2C 数据线 I2C 时钟线 中断输出引脚 中断输出引脚 Arduino Uno STM32F407 RASPBERRY 3.3V/5V 3.3V /5V 3.3V /5V GND SDA SCL 3 3 GND PB7 PB6 PA0 PA0 GND SDA SCL 0(wiring Pi) 0(wiring Pi) 需要安装必要的 WiringPi 函数库,否则以下的示例程序可能无法正常工作。安装方法详见: http://www.waveshare.net/wiki/Pioneer600_Datasheets 在官网上找到对应产品,在产品资料打开下载路径,在 wiki 中下载示例程序: 得到解压包,解压得到如下: 将 Raspberry Pi 文件夹及其文件夹下的文件拷至树莓派。 前 置 工 作 及 演 示 版本:V1.0.0,日期:2018 年 09 月 06 日 2
MCP23017 IO Expansion Board 用户手册 前置工作 执行如下命令进行树莓派配置: sudo raspi-config 选择 Interfacing Options -> I2C -> yes 启动 I2C 内核驱动 保存退出后,重启树莓派: sudo reboot 重启后,运行命令查看,I2C,模块是否已启动: lsmod 将会有如下的打印信息: 如果显示 i2c_bcm2835 则表示 I2C 模块已启动。 将 MCP23017 模块按照上文接口定义连接至树莓派。 本示例程序已配置成将 INTA 与 INTB 内部连接在一起,INTA 或 INTB 连接至 0(Wiring PI) 均可测 试通过。 版本:V1.0.0,日期:2018 年 09 月 06 日 3
MCP23017 IO Expansion Board 用户手册 模块默认的 I2C 地址为 0X27,可通过焊点 A2,A1,A0 改变器件地址,默认情况下,A2,A1,A0 均未焊接,均为高电平,若将焊点短接,则连接至低电平。根据数据手册,A2,A1,A0 与器件地 址的关系如下图所示: 安装 i2c-tools 工具对器件地址进行确认: sudo apt-get install i2c-tools 查询已连接的 I2C 设备 i2cdetect -y 1 将会打印出已连接设备的 I2C 器件地址信息: 若未修改 MCP23017 模块器件地址,则会显示如上信息,27 表示查询到的 I2C 器件地址为 0X27,同理,如果通过焊点修改了 I2C 器件地址,也可通过该命令进行检测。 注意:以上测试需确保 I2C 总线上没有其它地址和该器件地址重合的设备。 如果显示了期望的 I2C 器件地址,则 MCP23017 模块成功连接至树莓派。 以下演示用到 vim 编辑器,如未安装,可通过 gedit 进行编辑。 版本:V1.0.0,日期:2018 年 09 月 06 日 4
MCP23017 IO Expansion Board 用户手册 演示 将 MCP23017 模块连接至树莓派后: 进入到先前拷贝的 Raspberry PI 路径下,然后进入到 MCP23017-Raspberry-PI-Library 路径下: cd MCP23017-Raspberry-PI-Library 打开 main.c 文件: vim main.c 首先,确保 I2C 地址正确,如下图所示,根据 I2C 器件地址修改 mcp_begin()的参数,默认情况 下,I2C 器件地址为 0x27,相应的参数为 7。 接着,开启相应测试的宏定义: 将宏 debug 定义为 1 则将打印出所有寄存器的值到控制台, 将宏 outputTest 定义为 1 则将进行输出测试, 将宏 inputTest 定义为 1 则将进行输入测试, 将宏 interruptTest 定义为 1 则进行中断输出测试: 版本:V1.0.0,日期:2018 年 09 月 06 日 5
MCP23017 IO Expansion Board 用户手册 如果做输出测试,需将 outputTest 的宏定义为 1,inputTest 的宏定义为 0,interruptTest 的宏定 义为 0,debug 的宏可定义为 1 或 0。 如果做输入测试,需将 outputTest 的宏定义为 0,inputTest 的宏定义为 1,interruptTest 的宏定 义为 0,debug 的宏可定义为 1 或 0。 如果做中断测试,需将 outputTest 的宏定义为 0,inputTest 的宏定义为 0,interruptTest 的宏定 义为 1,debug 的宏可定义为 1 或 0。 修改 main.c 相应的内容后,保存修改并退出 修改后按 ESC 进入一般模式 :wq 编译: make 运行: ./mymcp23017 如果为输出测试,MCP23017 模块的 PA0~PA7,PB0~PB7 将高电平持续 500ms,低电平持续 500ms,可将模块引脚接入示波器或 LED 灯进行观测。 如果为输入测试,MCP23017 模块的 PA0 引脚将作为输出,PA1 引脚将作为输入,即:PA1 读取 到的电平状态将通过 PA0 输出,因此,可将 PA1 连接到电源或地,PA0 可连接到示波器或 LED 灯,PA0 将输出 PA1 输入的电平状态。 如果为中断测试,MCP23017 模块的 PA7,PB7 作为中断输入引脚,本例程已配置成将 INTA, INTB 内部连接在一起,中断将同时通过 INTA 和 INTB 输出。本例程中断输出的过程为:当 PA7 或 PB7 输入为下降沿时,INTA,INTB 也将输出下降沿, 将 INTA 或 INTB 连接至树莓派引脚 0(Wiring PI),并且配置树莓派引脚 0(Wiring PI)下降沿中断,在中断服务函数中读取是哪个引脚 触发了下降沿,以及触发中断时该引脚的电平,并将相应的数据打印到控制台,如下图所示: 版本:V1.0.0,日期:2018 年 09 月 06 日 6
MCP23017 IO Expansion Board 用户手册 说明:PA0-PA7 用 0-7 表示,PB0-PB7 用 8-15 表示,串口波特率为 115200 用 于 Arduino 按照上文接口定义将模块接入 Arduino Uno/UNO PLUS。 将下载的示例程序的压缩包解压后,将 Arduino 文件夹下的 MCP23017-Arduino-Library 拷贝至 Arduino 第三方库目录下,之后重启 ArduinoIDE。 输出测试: 点击:文件->示例->MCP23017-Arduino-Library->output 配置 I2C 器件地址,MCP23017 模块默认的 I2C 器件地址是 0x27,可参考【用于树莓派】->【前 置工作】部分修改 I2C 器件地址。 编译,并下载到 Arduino: 下载后,MCP23017 模块的 PA0~PA7,PB0~PB7 将高电平持续 500ms,低电平持续 500ms,可将 模块引脚接入示波器或 LED 灯进行观测。 输入测试: 点击:文件->示例->MCP23017-Arduino-Library->input 配置 I2C 器件地址,MCP23017 模块默认的 I2C 器件地址是 0x27,可参考【用于树莓派】->【前 置工作】部分修改 I2C 器件地址。 编译,并下载到 Arduino: 下载后,MCP23017 模块的 PA0 引脚将作为输出,PA1 引脚将作为输入,即:PA1 读取到的电平 状态将通过 PA0 输出,因此,可将 PA1 连接到电源或地,PA0 可连接到示波器或 LED 灯,PA0 将输出 PA1 输入的电平状态。 中断测试: 点击:文件->示例->MCP23017-Arduino-Library->input 配置 I2C 器件地址,MCP23017 模块默认的 I2C 器件地址是 0x27,可参考【用于树莓派】->【前 置工作】部分修改 I2C 器件地址。 编译,并下载到 Arduino: 版本:V1.0.0,日期:2018 年 09 月 06 日 7
MCP23017 IO Expansion Board 用户手册 下载后,MCP23017 模块的 PA7,PB7 作为中断输入引脚,本例程已配置成将 INTA,INTB 内部 连接在一起,中断将同时通过 INTA 和 INTB 输出。本例程中断输出的过程为:当 PA7 或 PB7 输 入为下降沿时,INTA,INTB 也将输出下降沿, 将 INTA 或 INTB 连接至 Arduino 的引脚 3,并且 配置 Arduino 引脚 3 为下降沿中断,在中断服务函数中读取是哪个引脚触发了下降沿,以及触 发中断时该引脚的电平,并将相应的数据通过串口打印,可通过工具->串口监视器进行查看: 说明:PA0-PA7 用 0-7 表示,PB0-PB7 用 8-15 表示,串口波特率为 115200 用 于 STM32 按照接口定义将模块接入 STM32F407 开发板。 将下载的示例程序的压缩包解压后,用 Keil5 打开 STM32 文件夹下的 MCP23017-STM32F4- Library>MDK-ARM 路径下的工程文件: 打开 main.c, 配置 I2C 器件地址,MCP23017 模块默认的 I2C 器件地址是 0x27,可参考【用于树 莓派】->【前置工作】部分修改 I2C 器件地址。 修改相应的宏定义: 版本:V1.0.0,日期:2018 年 09 月 06 日 8
分享到:
收藏