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.

[参考译文] CC2640:禁用/关闭 cc2640上的 I2C 从设备

Guru**** 2589280 points
Other Parts Discussed in Thread: CC2640

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/602570/cc2640-disable-close-i2c-slave-on-cc2640

器件型号:CC2640

您好!

我在 cc2640上使用 I2C 作为从设备。 但在待机模式下、i2c 仍处于启用状态、消耗的电流约为2mA、过高。

请告诉我、当 cc2640进入待机模式时、如何禁用 I2C 模块?

我将按照以下主题中所述配置 I2C:

https://e2e.ti.com/support/wireless_connectivity/bluetooth_low_energy/f/538/t/557767

我已尝试 I2CSlaveDisable (I2C0_BASE);  
但它确实会禁用 I2C 模块。

请帮助我解决它给我造成问题的问题。

等待您的帮助。

此致

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

    我按以下方式执行此操作以禁用、但未成功:

    void i2c_deconfiguration ()
    {
    //PRCMPowerDomainOff (PRCM_DOMAIN_PERIPh);
    POWER_releaseDependency (PowerCC26XX_Periph_I2C0);
    POWER_releaseDependency (PowerCC26XX_Periph_GPIO);
    
    /*设置待机、断电和空闲模式的限制*/
    power_releaseConstraint (PowerCC26XX_SB_disallow);
    POWER_releaseConstraint (PowerCC26XX_IDLE_PD_Disallow);
    
    PRCMPeripheralRunDisable (PRCM_Periph_I2C0);//禁用 I2C 模块
    PRCMPeripheralRunDisable (PRCM_Periph_GPIO);
    //PIN_Close (i2cPinHandle);
    I2CSlaveIntDisable (I2C0_BASE、I2C_SLAVE_INT_START | I2C_SLAVE_INT_STOP | I2C_SLAVE_INT_DATA);
    I2CSlaveDisable (I2C0_BASE);
    // PIN_Close (i2cPinHandle);
    //PIN_init (BoardGpioInitTable);
    //PRCMPowerDomainOff (PRCM_DOMAIN_Periph);
    } 

    请帮帮我。

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

    I2C 模块来启用睡眠模式。

    PRCMPeripheralSlepEnable (PRCM_Periph_I2C0);

    那么、我如何将其置于睡眠状态呢?

    请帮帮我。

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

    我会尝试找到一个能够回答您问题的人-

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

    非常感谢。 我将等待您的回复。

    此致

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

    你好,Rebel,

    我认为以下呼叫会阻止器件进入待机模式:

    power_setConstraint (PowerCC26XX_SB_disallow);
    power_setConstraint (PowerCC26XX_IDLE_PD_Disallow);

    在前面配置 i2c 时  

    //应用程序主循环
    对于(;)

    我注意到器件使用以下命令进入待机模式:

    power_releaseConstraint (PowerCC26XX_SB_disallow);
    POWER_releaseConstraint (PowerCC26XX_IDLE_PD_Disallow);

    Task_sleep (空);
    POWER_SLEEP (PowerCC26XX_STANDBY);

    但是、当我再次在 WAKEUP 线路的中断服务例程中配置 i2c 时、器件永远不会进入待机状态。  

    可以帮帮我吗? 使用有问题


    power_setConstraint (PowerCC26XX_SB_disallow);
    power_setConstraint (PowerCC26XX_IDLE_PD_Disallow);


    在唤醒线路回调中?

    我试图通过释放限制

    power_releaseConstraint (PowerCC26XX_SB_disallow);
    POWER_releaseConstraint (PowerCC26XX_IDLE_PD_Disallow);

    但一旦在 WAKEUP 线路回调中设置、它们就永远不会释放。

    请给我一些建议。

    正在等待您的回复。