您尚未登录。

楼主 #1 2020-06-30 11:52:11

我就是废物
Moderator
注册时间: 2020-06-22
已发帖子: 2
积分: 2

V3s控制GPIO扩展芯片 NXP PCF8574, 可以读IO电平,但是怎么也写不了低电平,请各位大佬帮我瞅瞅

QQ图片20200630114218.jpg

### 安装驱动
# modprobe gpio-pcf857x
[ 2380.235831] pcf857x 0-0020: probed
#
# echo 400 > /sys/class/gpio/export

# echo low > /sys/class/gpio/gpio400/direction
# echo 0 > /sys/class/gpio/gpio400/value
# echo 1 > /sys/class/gpio/gpio400/value

这样, P0还是输出 3V3,始终不能输出 0V


# echo out > /sys/class/gpio/gpio400/direction
# echo 0 > /sys/class/gpio/gpio400/value
# echo 1 > /sys/class/gpio/gpio400/value

low改为out或者high也是一样不能输出低电平




接着我在P0加10K下拉电阻,无论怎么控制都是输出2.7V。





# echo in > /sys/class/gpio/gpio400/direction
# cat /sys/class/gpio/gpio400/value

输入功能正常。



百思不得其解, 请各位路过的大神指导。

离线

#2 2020-06-30 18:39:51

bit741
会员
注册时间: 2020-06-30
已发帖子: 8
积分: 8

Re: V3s控制GPIO扩展芯片 NXP PCF8574, 可以读IO电平,但是怎么也写不了低电平,请各位大佬帮我瞅瞅

新手砸道,学习中,多看看资料没有问题

离线

楼主 #3 2020-06-30 21:42:06

我就是废物
Moderator
注册时间: 2020-06-22
已发帖子: 2
积分: 2

Re: V3s控制GPIO扩展芯片 NXP PCF8574, 可以读IO电平,但是怎么也写不了低电平,请各位大佬帮我瞅瞅

接LED也控制不了, 有点怀疑芯片是坏的: https://whycan.cn/t_4669.html#p48259

pcf8574.png

离线

楼主 #4 2020-06-30 22:14:17

我就是废物
Moderator
注册时间: 2020-06-22
已发帖子: 2
积分: 2

Re: V3s控制GPIO扩展芯片 NXP PCF8574, 可以读IO电平,但是怎么也写不了低电平,请各位大佬帮我瞅瞅

先暂停再下单买一个, 改天继续折腾: https://detail.tmall.com/item.htm?id=600629589545

离线

楼主 #5 2020-06-30 22:46:43

我就是废物
Moderator
注册时间: 2020-06-22
已发帖子: 2
积分: 2

Re: V3s控制GPIO扩展芯片 NXP PCF8574, 可以读IO电平,但是怎么也写不了低电平,请各位大佬帮我瞅瞅

QQ截图20200630224536.png


什么叫深圳速度

晚上十点下单, 现在显示已收件

离线

楼主 #6 2020-07-01 23:07:20

我就是废物
Moderator
注册时间: 2020-06-22
已发帖子: 2
积分: 2

Re: V3s控制GPIO扩展芯片 NXP PCF8574, 可以读IO电平,但是怎么也写不了低电平,请各位大佬帮我瞅瞅

#写地址0寄存器 P0-P7均低电平
i2cset -y 0 0x20 0x00 0x00

#写地址0寄存器 P0-P7均高电平
i2cset -y 0 0x20 0x00 0xFF

#读地址0寄存器
i2cget -y 0 0x20 0x00 b

奇怪了, 居然用i2c-utils直接操作是可以的.

离线

楼主 #7 2020-07-02 10:02:09

我就是废物
Moderator
注册时间: 2020-06-22
已发帖子: 2
积分: 2

Re: V3s控制GPIO扩展芯片 NXP PCF8574, 可以读IO电平,但是怎么也写不了低电平,请各位大佬帮我瞅瞅

借助逻辑分析仪,终于找到原因了, 重新配置dts:

        pcf8574: gpio@20 {
                compatible = "nxp,pcf8574";
                reg = <0x20>;
                gpio-controller;
                #gpio-cells = <2>;
                interrupt-controller;
                #interrupt-cells = <2>;
        };

原来我是从 别 处 粘贴 过来的:

compatible = "nxp,pcf8575";


根据驱动源码: https://github.com/torvalds/linux/blob/master/drivers/gpio/gpio-pcf857x.c

static const struct i2c_device_id pcf857x_id[] = {
    { "pcf8574", 8 },
...
    { "pcf8575", 16 },
...
    { }
};

pcf8574 是8bit的, pcf8575是16bit的。

离线

#8 2020-07-02 11:38:26

sy373466062
会员
注册时间: 2018-11-12
已发帖子: 130
积分: 116

Re: V3s控制GPIO扩展芯片 NXP PCF8574, 可以读IO电平,但是怎么也写不了低电平,请各位大佬帮我瞅瞅

不错的,可以借鉴用了。不过这个芯片有点贵。

离线

#9 2020-07-02 11:42:34

小智跑腿
会员
注册时间: 2020-04-26
已发帖子: 76
积分: 76

Re: V3s控制GPIO扩展芯片 NXP PCF8574, 可以读IO电平,但是怎么也写不了低电平,请各位大佬帮我瞅瞅

sy373466062 说:

不错的,可以借鉴用了。不过这个芯片有点贵。

挺好的,可以做为一种思路, 用单片机模拟通讯协议扩展IO。

现在的003单片机可便宜了

离线

#10 2020-07-07 10:36:36

LYZK
会员
注册时间: 2020-07-07
已发帖子: 3
积分: 3

Re: V3s控制GPIO扩展芯片 NXP PCF8574, 可以读IO电平,但是怎么也写不了低电平,请各位大佬帮我瞅瞅

应该是寄存器指令出问题了,初始化不对。

离线

#11 2021-05-07 16:44:03

saub
会员
注册时间: 2020-01-28
已发帖子: 99
积分: 57

Re: V3s控制GPIO扩展芯片 NXP PCF8574, 可以读IO电平,但是怎么也写不了低电平,请各位大佬帮我瞅瞅

奇怪,为什么要用这个呢,用74HC595扩展不香吗?

离线

#12 2021-07-26 10:03:36

拉轰的脚踏车
会员
注册时间: 2020-03-20
已发帖子: 288
积分: 222

Re: V3s控制GPIO扩展芯片 NXP PCF8574, 可以读IO电平,但是怎么也写不了低电平,请各位大佬帮我瞅瞅

saub 说:

奇怪,为什么要用这个呢,用74HC595扩展不香吗?

因为 74HC595 不是 I2C 接口?

离线

#13 2021-07-26 10:19:34

奔跑的孩子
会员
注册时间: 2021-01-28
已发帖子: 51
积分: 31.5

Re: V3s控制GPIO扩展芯片 NXP PCF8574, 可以读IO电平,但是怎么也写不了低电平,请各位大佬帮我瞅瞅

离线

#14 2022-03-27 22:32:33

how0723
会员
注册时间: 2021-12-12
已发帖子: 65
积分: 53

Re: V3s控制GPIO扩展芯片 NXP PCF8574, 可以读IO电平,但是怎么也写不了低电平,请各位大佬帮我瞅瞅

@我就是废物
echo 400 > /sys/class/gpio/export
请问这个400是怎么计算出来的?

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn