WhyCan Forum(哇酷开发者社区)

我们能随心所欲"有问题百度(谷歌)一下", 这得感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn

您尚未登录。

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

我就是废物
Moderator
注册时间: 2020-06-22
累计积分: 2

V3s控制GPIO扩展芯片 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

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

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

离线

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

我就是废物
Moderator
注册时间: 2020-06-22
累计积分: 2

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

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

pcf8574.png

离线

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

我就是废物
Moderator
注册时间: 2020-06-22
累计积分: 2

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

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

离线

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

我就是废物
Moderator
注册时间: 2020-06-22
累计积分: 2

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

QQ截图20200630224536.png


什么叫深圳速度

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

离线

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

我就是废物
Moderator
注册时间: 2020-06-22
累计积分: 2

Re: V3s控制GPIO扩展芯片 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

Re: V3s控制GPIO扩展芯片 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
累计积分: 67

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

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

离线

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

小智跑腿
会员
注册时间: 2020-04-26
累计积分: 49

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

sy373466062 说:

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

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

现在的003单片机可便宜了

离线

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

LYZK
会员
注册时间: 2020-07-07
累计积分: 3

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

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

离线

页脚

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