在线情况
1
  • 头像
  • 级别
    • 积分3
    • 经验2
    • 文章7
    • 注册2006-05-18
    请问:为何IIC传送过程中,其地址(slaver address)是7bits?
    IIC的书上说:送入SDA中的每个字节长度必须是8-bits,在IIC总线上,START信号后,一个从地址(slave address)被传送,在该字节中的bit7是一个读写选择信号,“0”表示写,“1”表示读。但在实际中传送的地址是8bits的,如在我们门的一个系统中EDID的地址是0xA0,这种矛盾怎么解释?请e-mail:xintan_chen@amlogic.com
    微控网感谢您的参与
    在线情况
    2
    • 头像
    • 级别
      • 积分3
      • 经验2
      • 文章7
      • 注册2006-05-18
      经你这么一说,我大概明白了,谢谢!
      按你的说法:在IIC传送中,先传送最高位D7,我现在明白为何在我们的系统中EDID有两个地址是0xA0/0xA1,一个是读地址,一个是写地址,我以前还真没搞懂
      微控网感谢您的参与
      在线情况
      3
      • 头像
      • 级别
        • 积分3
        • 经验2
        • 文章7
        • 注册2006-05-18
        您好,有关I2C的传送又来请教你了。

        1st、 在我们系统的主芯片与MStar芯片的通信过程中,传送的第一个数据的最高位总是为低电平,比如我向某寄存器中先写一个数(0xff),再读取该寄存器,读出的数据的最高位总是为“0”(0x7f)。不过这种错误仅仅在第一个数据出现,以后的数据就正确了。

        2nd、 在我们系统的主芯片与EEPROM芯片的通信过程中,情况就更糟糕,不管向memory Addr 中写什么数据,然后再读取这个memory Addr中数据,出来的数据总是“0xff”(note:slaver Addr正确,芯片的电源ok,也没有写保护WP=0),我实验了两块板子,不可能这两块板子的EEPROM都坏了吧!程序(与1st中的)是一样的,只是slaver Addr发生改变。

        微控网感谢您的参与
        Powered by LeadBBS 9.2 .
        Page created in 0.1895 seconds with 7 queries.