CAT9555 16路 I2C GPIO 扩展模块

现价:
¥ 42.80
数量:
Control Render Error!ControlType:productSlideBind,StyleName:Style1,ColorName:Item0,Message:InitError, ControlType:productSlideBind Error:未将对象引用设置到对象的实例。
加入购物车

I 产品简介

CAT9555 是一款 16 位并行 GPIO 端口扩展芯片,支持 I2C 和 SMBus 接口,带有低电平有效中断输出。

本产品为需要扩展 I/O 的应用提供 16 位并行输入/输出端口,例如传感器、电源开关、LED、按键、风扇等。

 

模块核心芯片 CAT9555 包含两个 8 位配置端口(输入或输出)、输入寄存器、输出寄存器、极性反转寄存器,以及兼容 I2C/SMBus 的串行接口。通过写入配置寄存器,16 个 I/O 均可配置为输入或输出;主机可通过写入极性反转寄存器使输入数据反向。CAT9555 提供一个低电平有效的中断输出信号,当输入状态改变时通知系统主机。模块具有 3 个地址选择脚,可实现最多 8 个设备共享同一 I2C 总线。

II 产品特性

• 支持 400 kHz I2C 总线  

• 低待机电流  

• 5.0V 容忍 I/O  

• I/O 具备高驱动能力  

• 极性反转寄存器  

• 低电平有效中断输出  

• 内置上电复位  

III 产品参数

参数 规格
外形尺寸 45mm(长) × 25mm(宽)
I/O 端口数量 16
控制芯片 CAT9555
信号接口 I2C
工作电压 3.3V / 5V

IV 使用说明

4.1 硬件接口配置

4.1.1 Raspberry Pi 接线

例程使用 wiringPi 编号方式,对应引脚定义如下:

接口 功能 BCM wiringPi BOARD
VCC 3.3V 3.3V 3.3V 1
GND GND GND GND 6
SDA SDA.1 2 8 3
SCL SCL.1 3 9 5
INT GPIO.7 4 7 7

 

(表 4-1:模块与 Raspberry Pi 接线定义)

4.1.2 Arduino 接线说明

 

CAT9555 IO 扩展模块 Arduino UNO R3
VCC 5V
GND GND
SDA SDA (A4)
SCL SCL (A5)
INT D2

(表 4-2:模块与 Arduino UNO R3 接线定义)

4.1.3 STM32 接线说明

 

CAT9555 IO 扩展模块 STM32F103
VCC 3.3V
GND GND
SDA PB10
SCL PB11
INT PB3

(表 4-3:模块与 STM32F103 接线定义)

4.1.4 I2C 地址配置

当主机在 I2C 总线发送 START 条件后,需要发送包含从机地址的字节来激活 CAT9555 的读写。

从机地址高 4 位固定为二进制 0100
CAT9555 使用 A2/A1/A0 用于地址扩展,使得同一总线最多可挂 8 个设备。

从机地址字节第 8 位为 R/W 位:

  • 1 = 读

  • 0 = 写

若板载 DIP 拨到 “ON”,该位为 0;拨到另一边则为 1

I2C 地址位 DIP = ON DIP = OFF
A0 0 1
A1 0 1
A2 0 1

(表 4-4:A0~A2 地址位定义)

4.2 软件使用说明


4.2.1 Raspberry Pi 示例

4.2.1.1 安装 wiringPi

sudo apt-get install wiringpi

wget https://project-downloads.drogon.net/wiringpi-latest.deb  # Raspberry Pi 4B version upgrade

sudo dpkg -i wiringpi-latest.deb

gpio -v #

若显示 2.52 即安装成功。

Bullseye 系统使用以下方式:

git clone https://github.com/WiringPi/WiringPi

cd WiringPi

./build

gpio -v

运行 “gpio -v” 将显示版本 2.70。如果没有显示,则表示安装错误。
如果在运行示例程序的 Python 版本时收到 “ImportError: No module named 'wiringpi'” 错误,请执行以下命令:
针对 Python 2.x 版本:

pip install wiringpi

对于Python 3.x版本:

pip3 install wiringpi

注意:若安装失败,可尝试以下编译安装方法:

git clone --recursive https://github.com/WiringPi/WiringPi-Python.git

注意:--recursive 选项会自动获取子模块;否则,你需要手动下载它们。
导航到已下载的 WiringPi-Python 文件夹并运行以下命令进行编译和安装:
适用于 Python 2.x 版本:

sudo python setup.py install

适用于 Python 3.x 版本:

sudo python3 setup.py install

如果你遇到以下错误:

此时,输入命令“sudo apt install swig”来安装 SWIG。安装完成后,继续输入命令“sudo python3 setup.py install”进行编译和安装。如果你看到如下所示的类似信息,说明安装成功。

4.2.1.2 Raspberry Pi I2C 配置

启动树莓派系统配置:

sudo raspi-config

启用I2C接口:

Interfacing Options -> I2C -> Yes

重启设备:

sudo reboot

查看已启用的I2C设备:

ls /dev/i2c*   #  Output: "/dev/i2c-1"

安装I2C工具:

sudo apt install i2c-tools

安装Python的smbus:

sudo apt install python-smbus

按照表4-1和图4-1的布线定义连接模块后,使用以下命令检测I2C总线上已安装的设备地址:

sudo i2cdetect -y -a 1

4.2.1.3 C 语言示例

导航至示例目录:

cd /home/pi/cat9555/c
sudo make clean
sudo make
sudo ./main


4.2.1.4 Python版本示例


导航至示例目录:

python3 cat9555.py


示例中,P0被配置为输出端口,P1被配置为输入端口。P0每秒切换一次其IO状态。当P1的输入状态发生变化时,串行端口将输出P1的当前状态。


4.2.2 Arduino UNO R3的示例使用


安装 Arduino IDE 软件后,按照表 4-2 和图 4-2 中的接线定义连接模块。双击演示示例程序中的 cat9555.ino 文件。依次点击“验证”和“上传”按钮。然后打开“工具”->“串口监视器”以查看 P1 的输入状态。
在此示例中,P0 配置为输出,P1 配置为输入。P0 每 1 秒切换一次其 IO 状态。当 P1 的输入状态发生变化时,串口将输出 P1 的当前状态。


4.2.3 STM32的示例用法


该示例基于 STM32F103CBT6 微控制器。按照表 4-3 中的接线定义连接模块。如果您希望查看 P1 的输入状态,请将 STM32 的 UART1 端口(3.3V TTL 电平)连接到电脑。PA9 是数据发送引脚,PA10 是数据接收引脚。

示例程序使用 Keil uVision5 编写。您需要提前安装该软件。连接好线路后,双击位于 demo codes/STM32/USER/ 路径下的项目文件 main.uvprojx。点击“Build”按钮进行编译。编译成功后,点击“LOAD”按钮将编译好的可执行文件下载到 STM32。下载方法及对应下载器需用户自行配置。

该示例的行为与 Raspberry Pi 和 Arduino UNO R3 相同。P0 每 1 秒切换一次 IO 状态,P1 配置为输入。

 

V 附录

5.1 注意事项与维护


• 禁止带电插拔
• 保持干燥,如遇液体应断电并晾干
• 确保使用环境通风良好
• 禁止在粉尘、油污环境中使用
• 避免剧烈温差,防止结露
• 禁止跌落、敲击、震动
• 不得使用腐蚀性溶剂清洁
• 故障请联系售后,不得擅自拆修

收藏商品
产品详情