您尚未登录。

楼主 #1 2020-04-08 16:44:19

chendong
会员
注册时间: 2019-07-22
已发帖子: 90
积分: 91

v3s i2c 写地址

大家好最近弄v3s 的i2c ,发现在内核对从地址是这么处理的
/* 7-1bits addr, xxxx_xxx0 */
        addr = (i2c->msg[i2c->msg_idx].addr & 0x7f) << 1;
,这要是我的从地址是0x70 , 写的时候变成了0xe0, 没法控制设备啊。我把地址强制成0x70,就可以了,这什么意思?这驱动有问题?按理说不应该啊。

static void sunxi_i2c_addr_byte(struct sunxi_i2c *i2c)
{
    unsigned char addr = 0;
    unsigned char tmp  = 0;

    if (i2c->msg[i2c->msg_idx].flags & I2C_M_TEN) {
        /* 0111_10xx,ten bits address--9:8bits */
        tmp = 0x78 | ( ( (i2c->msg[i2c->msg_idx].addr)>>8 ) & 0x03);
        addr = tmp << 1;//1111_0xx0
        /* how about the second part of ten bits addr? Answer: deal at twi_core_process() */
    }
    else {
        /* 7-1bits addr, xxxx_xxx0 */
        addr = (i2c->msg[i2c->msg_idx].addr & 0x7f) << 1;
    }

    /* read, default value is write */
    if (i2c->msg[i2c->msg_idx].flags & I2C_M_RD) {
        addr |= 1;
    }

离线

#2 2020-04-08 17:25:40

smartcar
会员
注册时间: 2018-02-19
已发帖子: 735
积分: 735

Re: v3s i2c 写地址

地址的最高位应该是指示读/写吧

最近编辑记录 smartcar (2020-04-08 17:25:53)

离线

#3 2020-04-08 19:37:48

k455619
会员
注册时间: 2018-07-29
已发帖子: 151
积分: 80

Re: v3s i2c 写地址

没错 I2C的地址有一位是读/写标志

离线

#4 2020-04-08 20:38:24

shaoxi2010
会员
注册时间: 2019-06-13
已发帖子: 392
积分: 336

Re: v3s i2c 写地址

i2c地址本来就是有一位控制读写的啊,没毛病啊

离线

#5 2020-04-09 20:55:21

liuchangyin
会员
注册时间: 2020-03-17
已发帖子: 204
积分: 199

Re: v3s i2c 写地址

用逻辑分析仪测试分析下

离线

#6 2020-04-09 20:57:56

didi
会员
注册时间: 2017-10-15
已发帖子: 2
积分: 2

Re: v3s i2c 写地址

liuchangyin 说:

用逻辑分析仪测试分析下

对,逻辑分析仪就是电工的眼睛。

离线

页脚

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

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