This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Starterware/PCF8575:PCF8575无响应

Guru**** 2479055 points
Other Parts Discussed in Thread: PCF8574

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/571626/starterware-pcf8575-pcf8575-not-response

部件号:PCF8575
主题中讨论的其他部件:PCF8574

工具/软件:Starterware

您好 ,iam与I/O扩展器PCF8574配合使用,工作正常,但需要进行更改才能与pCF 8575配合使用,但此设备没有响应,所有引脚端口都保持高, 我读 了端口,一直都响应0xFF,然后写了端口什么都不做,如果 更改了,则中断引脚,并将引脚设置为静音,我尝试使用100Mhz和400MHz,看不到任何变化。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好Andres:
    您是否为每个设计版本都提供了原理图? 此外,您是否捕获了I2C流量? 请附加波形,以便我可以验证命令和顺序。
    Francis Houde
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Francis,

    感谢您的回复,我尝试使用下一个示意图。

    使用此配置,PCF8574响应和工作正常,但pCF 8575响应始终保持 在高位。

    设备的地址为:

    #define PCF_8575 0x38  
    #define PCF_8574 0x39  

    端口的配置为:

    SysCtlPeripheralEnable(sysctl_Periph_GPIOE);
    SysCtlPeripheralEnable(sysctl_Periph_I2C2);
    SysCtlPeripheralReset(sysctl_Periph_I2C2);



    GPIOPinConfigure(GPIO_PE4_I2C2SCL);
    GPIOPinConfigure(GPIO_PE5_I2C2SDA );


    GPIOPinTypeI2CSCL (GPIO _PORT_BASE,GPIO _PIN_4);
    GPIOPinTypeI2C (GPIO _PORT_BASE,GPIO PIN_5);
    HWREG (I2C2_BASE + I2C_O_MCR)= I2C_MCR_MFE;
    I2CMasterInitExpClk (I2C2_base,SysClockGatet(),FALSE);

     读取pCF 8575中数据的功能 为:  

    Int PCF_8575_Portin (void){


    Int Dato;
    Int dato2;

    I2CMasterSlaveAddrSet (I2C2_base,PCF_8575,TRUE);

    I2CMasterControl(I2C2_base, I2C_MASTER_CMD_STUSTREG_Receive_start );
    while (I2CMasterBusy (I2C2_BASE))

    }
    Dato=I2CMasterDataSet(I2C2_base);
    I2CMasterControl (I2C2_BASE,I2C_MASTER_CMD_STUSTREG_Receive_FINISH);
    while (I2CMasterBusy (I2C2_BASE))

    }
    data2=I2CMasterDataSet(I2C2_base);

    返回日期2;
    }

     pcf 8575中数据的写入功能 是:  

    void PCF_8575_PortOut (int data){

    I2CMasterSlaveAddrSet(I2C2_base, PCF_8575 , false);
    I2CMasterDataPut(I2C2_base, 0xff);
    I2CMasterControl (I2C2_BASE,I2C_MASTER_CMD_STUSTREG_SEND_START);
    while (I2CMasterBusy (I2C2_base));
    I2CMasterDataPut(I2C2_base, 0x00);
    I2CMasterControl (I2C2_BASE,I2C_MASTER_CMD_STUSTREG_SEND_FINISH);
    while (I2CMasterBusy (I2C2_base));

    感谢您的帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在过去的POST中,我将输出引脚设置为常量值,仅用于测试,但输出不响应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好Andres:

    我想知道您使用的地址是否正确?  我看到您有以下内容:

    #define PCF_8575 0x38  
    #define PCF_8574 0x39  

    我正在查看引脚和可用地址,但它似乎与数据表不匹配

    我希望看到波形捕获I2C事务,以确保它与您的代码尝试执行的操作相匹配。

    Francis Houde

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Francis,感谢您的回答。


    地址正常,在这两个IC扩展器中,数字为7位配置,无读/写位,例如0x38 => 0b11.1万X x=1读和x=0写。