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.

[参考译文] CC1352P7:使用 SysConfig 工具在从模式下设置 I2C

Guru**** 2416490 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1183204/cc1352p7-using-sysconfig-tool-to-setup-i2c-in-slave-mode

器件型号:CC1352P7
Thread 中讨论的其他器件:SysConfigSYSBIOS

圣诞节快乐 TI、

在 Resource Explorer 中挖了大约一段时间并尝试了 I2C 示例(在主控模式下);我们能够与手头的传感器板建立通信。  这是我们的初始里程碑、但实际上、我们的第一个目标是使用 TIRTS7配置 CC1352P7-1、以便在从模式下使用 I2C 总线。  是否为此提供了良好的示例?  我在 SysConfig 工具中查找这些选项时遇到问题、因此我们可能必须更深入地探究其中的一个驱动程序? ?  我们将继续研究、但我们非常感谢您的指导。

此致、

Michael

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

    请访问  :https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/816289/rtos-cc1352p-i2c-slave-mode 和 https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/969121/cc1352r-only-i2c-start-interrupt-but-no-data-interrupt。  

    "我可以告诉 SDK 中的 i2c 驱动程序仅支持主模式、但硬件确实支持从模式。"

    我看到的大多数示例都不能正常工作、但下面是一个示例、至少对我而言:

    #include
    #include
    #include

    /*驱动程序头文件*/
    #include
    #include

    #include
    #include
    #include
    #include DeviceFamily_constructPath (driverlib/i2c.h)

    /*驱动程序配置*/
    #include "ti_drivers_config.h"

    #define Board_I2C_SCL0 IOID_21
    #define Board_I2C_SDA0 IOID_5
    #define Hani_ADDR 0x68
    #define I2C_SLAVE_ADDR Hani_ADDR
    #define TASKSTACKSIZE 1024

    void * main_I2C_Slave_Thread (void * arg0)

    uint8_t u8_Status;
    uint8_t datain;//a place to put a byte read from the master、if desired。
    uint8_t DataOut = 0;//用于生成假数据以发送到主控方。

    GPIO_init();
    POWER_setDependency (PowerCC26XX_Periph_I2C0);
    IOCPinTypeI2c (I2C0_BASE、Board_I2C_SDA0、Board_I2C_SCL0);
    I2CSlaveInit (I2C0_BASE、I2C_SLAVE_ADDR);

    /*
    *在下面的所有情况下、如果设置了中断标志、则读取或写入从器件数据
    需要使用*寄存器(I2C_O_SDR)来清除该标志。 否则、SCL 将无限期保持低电平。
    *
    * RLED 用于指示逻辑分析仪上的 I2C_SLAVE_ACT_RREQ_FBR 中断。
    * GLED 用于指示逻辑分析仪上的 I2C_SLAVE_ACT_RREQ 中断。
    * GPIO_19用于指示逻辑分析仪上的 I2C_SLAVE_ACT_TREQ 中断。
    *
    while (1)

    U8_Status = I2CSlaveStatus (I2C0_BASE);

    开关(u8_Status)

    案例 I2C_SLAVE_ACT_RREQ_FBR://接收到地址后的第一个字节标志
    dataain = I2CSlaveDataGet (I2C0_BASE);//通过读取 I2C_O_SDR 进行确认
    GPIO_WRITE (CONFIG_GPIO_RLED、CONFIG_GPIO_LED_ON);
    中断;
    实例 I2C_SLAVE_ACT_RREQ://additional byte received
    dataain = I2CSlaveDataGet (I2C0_BASE);//通过读取 I2C_O_SDR 进行确认
    GPIO_WRITE (CONFIG_GPIO_GLED、CONFIG_GPIO_LED_ON);
    中断;
    案例 I2C_SLAVE_ACT_TREQ://主设备要读取数据。
    I2CSlaveDataPut (I2C0_BASE、DataOut);//通过写入 I2C_O_SDR 来确认
    GPIO_WRITE (CONFIG_GPIO_19、CONFIG_GPIO_LED_ON);
    DataOut ++;
    中断;

    CPUdelay (500);//延迟、以便在逻辑分析仪上清楚地看到 GPIO 脉冲。
    GPIO_WRITE (CONFIG_GPIO_RLED、CONFIG_GPIO_LED_OFF);
    GPIO_WRITE (CONFIG_GPIO_GLED、CONFIG_GPIO_LED_OFF);
    GPIO_WRITE (CONFIG_GPIO_19、CONFIG_GPIO_LED_OFF);


    返回(空);

    修正...  上述"中断"标志实际上是状态标志。

    中断标志为 I2C_SLAVE_INT_STOP、 I2C_SLAVE_INT_START 和 I2C_SLAVE_INT_DATA。

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

    你(们)好,Michael

    恐怕我们的 I2C 驱动程序仅支持主模式、我不确定是否会实现从模式支持。

    由于我们没有针对这种情况的驱动程序支持、因此我们也没有任何示例。

    给我带来的不便、我深表歉意。

    BR

    Siri