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

CC2630使能Uart接收功能不进低功耗?

只开启Uart的发送功能,上电+入网后的电流在30uA左右。

开启Uart发送&接收功能,上电+入网后的电流在4.5mA左右。

以此判断,在开启Uart接收功能后,板子没进入低功耗模式。

我坐过一个测试,在使能接收功能的情况下初始化Uart,然后过2分钟后在关闭Uart(使用UART_close()函数),板子依然是4.5mA的电流,等了一段时间也没劲低功耗。

问:如何配置串口才能即可接收数据(Uart),也能进入低功耗?可以接受开启一段时间在把串口关闭

开始串口初始化函数:

void Board_Uart_Init(void)
{
    UART_init(); //初始化模块的串口功能
    UART_Params_init(&UARTparams); //初始化串口参数
    UARTparams.baudRate = 115200; //串口波特率115200
    UARTparams.dataLength = UART_LEN_8; //串口数据位8
    UARTparams.stopBits = UART_STOP_ONE; //串口停止位1
    UARTparams.readDataMode = UART_DATA_BINARY; //串口接收数据不做处理
    UARTparams.writeDataMode = UART_DATA_BINARY; //串口发送数据不做处理
    UARTparams.readEcho = UART_ECHO_OFF; //串口不回显
    if (true == Uart_RxEnable)
    {
        UARTparams.readTimeout = 5000;
        UARTparams.readMode = UART_MODE_CALLBACK; //串口异步读
        UARTparams.readReturnMode = UART_RETURN_NEWLINE; //当接收到换行符时,回调
        UARTparams.readCallback = Uart_ReadCallback; //串口读回调
    }
    //UARTparams.writeMode = UART_MODE_CALLBACK; //串口异步写
    //UARTparams.writeCallback = Uart_WriteCallback; //串口写回调
    UARTHandle = UART_open(Board_UART0, &UARTparams); //打开串口通道
    if (true == Uart_RxEnable)
    {
        UART_control(UARTHandle, UARTCC26XX_RETURN_PARTIAL_ENABLE, NULL); //允许接收部分回调
        Uart_RxBufIndex = 0;
        UART_read(UARTHandle, Uart_RxTempBuf, sizeof(Uart_RxTempBuf)); //打开一个串口读
    }
    UART_write(UARTHandle, "SquatPit\r\n", 10);
}

YiKai Chen:

檢查看看你程序有沒有busy loop讓cc2630不进入低功耗模式

Alvin Chen:

请参考下面的

processors.wiki.ti.com/…/NPI_Two_Wire_UART_with_PM

Viki Shi:

预编译 NPI_USE_UART没?

tt wang:

回复 Viki Shi:

没有,不使用NPI色温相关功能

da qin zheng sheng:

编译参数选择powersaving芯片可以进入低功耗模式

da qin zheng sheng:

回复 da qin zheng sheng:

低功耗的时候串口不能使用的,芯片需要唤醒

赞(0)
未经允许不得转载:TI中文支持网 » CC2630使能Uart接收功能不进低功耗?
分享到: 更多 (0)