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

CC2650关闭spi相关的io,实现低功耗

效果如下:

1、当点击按钮后,关掉传感器电源,但是2650和传感器spi是相互连接的,但是spi的输出管脚有漏电流,所以进入低功耗的时候 调用DiableIOs,是输出管脚浮空。

2、再次点击按钮后,开启传感器电源,让传感器工作,调用EnableIOs开启spi的输出。

问题:

1、不知道我这种方式是否可行,下面两个函数是否写错。

2、PIN_setConfig的第二个参数是mask,不明白第二个参数的用途,这里使用的是PIN_BM_ALL,不知是否有问题

/*
#define PPG_CLK IOID_0
#define PPG_MISO IOID_1#define PPG_MOSI IOID_2
#define PPG_CS IOID_3
*/

void DiableIOs()
{
PIN_setConfig(m_csPinHandle, PIN_BM_ALL, PPG_CS | PIN_GPIO_OUTPUT_DIS);
PIN_setConfig(m_mosiPinHandle, PIN_BM_ALL, PPG_MOSI | PIN_GPIO_OUTPUT_DIS);
PIN_setConfig(m_clkPinHandle, PIN_BM_ALL, PPG_CLK | PIN_GPIO_OUTPUT_DIS);
}

void EnableIOs()
{
PIN_setConfig(m_csPinHandle, PIN_BM_ALL, PPG_CS | PIN_GPIO_OUTPUT_EN);
PIN_setConfig(m_mosiPinHandle, PIN_BM_ALL, PPG_MOSI | PIN_GPIO_OUTPUT_EN);
PIN_setConfig(m_clkPinHandle, PIN_BM_ALL, PPG_CLK | PIN_GPIO_OUTPUT_EN);
}

Viki Shi:

你只更改了管脚吗?SPI driver也需要关闭,PIN_setConfig的详细描述请看:

user1388075:

回复 Viki Shi:

那我还开了串口,还要关掉串口,还要关掉spi。
那个standby demo感觉缺少参照性。感觉这一路下来stanby挺麻烦的。shutup应该不用管这么多吧,直接进入shutup模式就行了。

另:
你这里说的关闭spi具体调用哪个函数

user1388075:

回复 Viki Shi:

void DiableIOs(){ //PIN_setConfig(m_csPinHandle, PIN_BM_ALL, PPG_CS | PIN_GPIO_OUTPUT_DIS); //PIN_setConfig(m_mosiPinHandle, PIN_BM_ALL, PPG_MOSI | PIN_GPIO_OUTPUT_DIS); //PIN_setConfig(m_clkPinHandle, PIN_BM_ALL, PPG_CLK | PIN_GPIO_OUTPUT_DIS); mySPI_close(0); closeUart(); PIN_setConfig(m_csPinHandle, PIN_BM_DRVSTR, PPG_CS | PIN_INPUT_EN | PIN_NOPULL ); PIN_setConfig(m_csPinHandle, PIN_BM_DRVSTR, PPG_MOSI | PIN_INPUT_EN | PIN_NOPULL ); PIN_setConfig(m_csPinHandle, PIN_BM_DRVSTR, PPG_MISO | PIN_INPUT_EN | PIN_NOPULL ); PIN_setConfig(m_csPinHandle, PIN_BM_DRVSTR, PPG_CLK | PIN_INPUT_EN | PIN_NOPULL ); PIN_setConfig(m_ledPinHandle, PIN_BM_DRVSTR, PPG_LED | PIN_INPUT_EN | PIN_NOPULL ); PIN_setConfig(m_ledPinHandle, PIN_BM_DRVSTR, PPG_INT | PIN_INPUT_EN | PIN_NOPULL ); PIN_setConfig(m_ledPinHandle, PIN_BM_DRVSTR, PPG_POW_EN | PIN_INPUT_EN | PIN_NOPULL ); PIN_setConfig(m_ledPinHandle, PIN_BM_DRVSTR, PPG_RX | PIN_INPUT_EN | PIN_NOPULL ); PIN_setConfig(m_ledPinHandle, PIN_BM_DRVSTR, PPG_TX | PIN_INPUT_EN | PIN_NOPULL ); PINCC26XX_setWakeup(PpgBtnTableWakeUp);

//hPins = PIN_open(&LedPinState, LedPinTable); Power_shutdown(NULL, 0);

}

这么干, 电流300多微安

实测cs和clk还是高电平对外输出电流,是这么操作io不正确么?

赞(0)
未经允许不得转载:TI中文支持网 » CC2650关闭spi相关的io,实现低功耗
分享到: 更多 (0)