2025 Make Blocks阶段2 - I2C扩展GPIO模块debug - PCF8574
该项目使用了PCF8574,实现了I2C扩展GPIO的设计,它的主要功能为:把一路I2C的信号扩展为8路GPIO,可输入可输出。
标签
嵌入式系统
NXP
I2C
stm32f1
PCF8574
zhjlmt
更新2025-09-25
50
KiCad文件
全屏

模块设计

根据2025 Make Blocks第二期任务7,来设计一款I2C扩展GPIO的模块。当IO引脚受限时,使用I2C扩展出GPIO是个不错的选择,甚至可以用软件模拟I2C进行扩展。本次选用的芯片是PCF8574AT/3,518,这是一款NXP的数字芯片,可将一路I2C扩展出八个IO,可靠耐用。

屏幕截图 2025-09-14 202911.png

原理图和PCB

屏幕截图 2025-09-14 204045.png

H2为5个2.54mm排针,分别引出INT、SDA-1、SCL-1、VCC和GND引脚,可在不用INT的情况下直接插入4针OLED屏幕的模块。H3为3个确定模块I2C地址的IO,非必须连接。I2C地址选择的三个接口,也可以不用配置,直接使用上下拉电阻进行配置。SCL、SDA可通过4K7电阻上拉至VCC,INT可通过10K电阻上拉至VCC。R2电阻可进行地址线和数据线的更改换向,避免去修改PCB。U1是PCF8574AT/3,518,16脚位置放置100nF电容来进行滤波。H1是扩展出的IO接口,其中1和10脚是GND,方便进行地平面的参考。

屏幕截图 2025-09-14 204100.png

PCB设计选用2层板,进行大面积铺铜。其中,上下拉电阻的部分,每个地址引脚使用三个0603焊盘,使用0603电阻只能同时焊接上拉或者下拉,避免出现短路的问题

调试软件

使用的工具链:

MDK-ARM V5.36

STM32CubeMX V6.14.1


工具:万用表一个

时间紧迫,就拿万用表来简单测量一下IO口的电平。

焊接完成的图片

image.png

使用万用表,来测试扩展出的IO端口电平状态

image.png

代码

image.png

image.png

这是PCF8574的驱动代码

image.png

主函数逻辑

PC13作为系统状态灯,闪烁来指示系统的运行状态


心得体会

第一把没调试通,三个地址选择的引脚没焊接,后来结合网上的资料,还是得要焊接才可以,事实证明偷懒还是不行的。

附件下载
ProPrj_D-02-2-I2C扩展_2025-07-19.kicad_pcb
ProPrj_D-02-2-I2C扩展_2025-07-19.kicad_sch
F1-PCF8574-02.zip
团队介绍
由种花家刘氓兔完成
评论
0 / 100
查看更多
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号