TI中文支持网
TI专业的中文技术问题搜集分享网站

TI 的工程师你好,CC1310能不能实现模拟I2C总线?

调试了好几天,还是没有进展,不知道是不是程序的问题,IO配置代码如下:

static void ConfigSDAOutputState(void)
{
    PIN_setConfig
    (
    TIPinHandle
    ,
    PIN_BM_OUTPUT_MODE | PIN_BM_INPUT_MODE
    ,
     LOCALCONFIG_PIN_SDA | PIN_GPIO_OUTPUT_EN | PIN_INPUT_DIS | PIN_PUSHPULL | PIN_DRVSTR_MAX
    );
}

static void ConfigSDAInputState(void)
{
    PIN_setConfig
    (
    TIPinHandle
    ,
    PIN_BM_OUTPUT_MODE | PIN_BM_INPUT_MODE | PIN_BM_PULLING
    ,
    LOCALCONFIG_PIN_SDA | PIN_GPIO_OUTPUT_EN | PIN_INPUT_EN | PIN_PULLUP
    );
}

static void SetSCLOutputState(unsigned char unsigedCHARFlag)
{
    if(unsigedCHARFlag == DEVICE_CONFIG_RETURN_LOW)
    {
        PIN_setOutputValue(TIPinHandle,LOCALCONFIG_PIN_SCL, 0);
    }
    if(unsigedCHARFlag == DEVICE_CONFIG_RETURN_HIGH)
    {
        PIN_setOutputValue(TIPinHandle,LOCALCONFIG_PIN_SCL, 1);
    }
}

static void SetSDAOutputState(unsigned char unsigedCHARFlag)
{
    if(unsigedCHARFlag == DEVICE_CONFIG_RETURN_LOW)
    {
        PIN_setOutputValue(TIPinHandle,LOCALCONFIG_PIN_SDA, 0);
    }
    if(unsigedCHARFlag == DEVICE_CONFIG_RETURN_HIGH)
    {
        PIN_setOutputValue(TIPinHandle,LOCALCONFIG_PIN_SDA, 1);
    }

}

static unsigned char ReceiveSDAData(void)
{
    unsigned char uCHARTemp;
    uCHARTemp=PIN_getInputValue(LOCALCONFIG_PIN_SDA);
    if(uCHARTemp == 0x00U)
    {
        return DEVICE_CONFIG_RETURN_LOW;
    }
    if(uCHARTemp == 0x01U)
    {
        return DEVICE_CONFIG_RETURN_HIGH;

    }
    return 0xFFU;
}

Susan Yang:

您现在想使用CC1310的I2C?那您可以下载tirtos_cc13xx_cc26xx,里面有相应的例程。CC1350和CC1310的外设的程序,两者可以共用不须修改。

Viki Shi:

提供一个I2C的例程供参考: e2e.ti.com/…/i2ctmp006.c

Viki Shi:

关于引脚的配置,请参考如下例程:
e2e.ti.com/…/CC1310_5F00_LAUNCHXL.c
另外也推荐结合I2C driver一起看: software-dl.ti.com/…/index.html

da qin zheng sheng:

可以啊,和其它arm芯片一样,使用寄存器io模拟i2c。

Steven.Lee:

回复 Susan Yang:

我用的元件是非标准I2C总线,不能使用标准的方式。。。所以有没有模拟I2C的例子或者配置?

Steven.Lee:

回复 Viki Shi:

我用的元件是非标准I2C总线,不能使用标准的方式。。。所以有没有模拟I2C的例子或者配置?

Steven.Lee:

回复 da qin zheng sheng:

我写的IO配置对吗?

Steven.Lee:

回复 da qin zheng sheng:

我的IO配置对吗?你又没有相关的代码?贴出来呗?

Viki Shi:

回复 Steven.Lee:

模拟的话,建议使用sensor controller,可以模拟I2C。这边有个bitbang的例子: e2e.ti.com/…/638783

Loops:

因为你没有写清楚问题到底是什么,出错在哪里。
1。你需要的I2C速度多少? 因为GPIO软件控制速率由要求?
2。你初始化好后,能正常的控制CLK输出高低的时钟?
3。有了时钟,配套的写数据就好了。

赞(0)
未经允许不得转载:TI中文支持网 » TI 的工程师你好,CC1310能不能实现模拟I2C总线?
分享到: 更多 (0)