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

cc2640r2f sensor controller 开启uart的功耗有点高啊

目前我的工程不开SCS的功耗,最低非常低,小于UA级别。  但是打开scs uart之后,最低的电流在500UA左右

请问下各位,这个怎么设置的,500ua 不正常吧!

Alvin Chen:

uart功能本来就是一个很占用功耗的,虽然没有具体测试过,但是感觉属于正常范围。

user5799078:

回复 Alvin Chen:

那开启UART怎么做低功耗呀,我尝试过IO唤醒之后打开UART ,发送10个字节之后,关闭UART,UART_Canelread 和UART_Close ,单每次close完之后,程序就死了。

能发出去

user5799078:

回复 user5799078:

void uart_init( void )
{UART_init();UART_Params_init(&uart_params);uart_params.baudRate = 115200;uart_params.dataLength = UART_LEN_8;uart_params.stopBits = UART_STOP_ONE;uart_params.readDataMode = UART_DATA_BINARY;uart_params.writeDataMode = UART_DATA_TEXT;uart_params.readMode = UART_MODE_CALLBACK;uart_params.writeMode = UART_MODE_CALLBACK;uart_params.readEcho = UART_ECHO_OFF;uart_params.readReturnMode = UART_RETURN_NEWLINE;uart_params.readCallback = protocol_read_callback;uart_params.writeCallback = aiotble_write_uart_callback;uart_handle = UART_open(Board_UART0, &uart_params);UART_control(uart_handle, UARTCC26XX_CMD_RETURN_PARTIAL_ENABLE, NULL);UART_read(uart_handle, uart_rx_buff, UART_BUF_MAX_LEN);}
void app_events_handle(uint32_t events)
{if (events & BG_SAVE_PARMA_EVY){VOID osal_snv_write(BG_PARMA_NV_ID, sizeof(bg_parma_t), &bg_parma);}//IO中断触发if(events & BG_SEND_11111){uart_init();ptc_write("111111111\r\n",9);Task_sleep(((1000) * 1000) / Clock_tickPeriod);UART_readCancel(uart_handle);UART_close(uart_handle);Power_releaseConstraint(PowerCC26XX_SB_DISALLOW);}if(events & BG_UARTTASK_RX_EVENT){UART_read(uart_handle, uart_rx_buff, UART_BUF_MAX_LEN);}}

每次只能触发一次, 调用uart_close之后,程序就死了

Alvin Chen:

回复 user5799078:

你只需要UART_Close 关闭就可以了,没必要加UART_Canelread 。

Alvin Chen:

回复 Alvin Chen:

/** \brief Stops the UART emulator** When running the UART emulation task, the execution code runs continuously, and can only be stopped* by calling this function. This stops the UART emulator within one bit period.** \note This function must only be called while the UART baud generator is active, and baud rate*generation must not be disabled until the stop operation has taken effect.*/
void scifUartStopEmulator(void) {scifTaskData.uartEmulator.state.exit = 1;
} // scifUartStopEmulator

shakencity:

这个功耗是不是与你设计的结论不符呢,500uA应该也还好吧,是低功耗功能设置问题吗

user5799078:

回复 Alvin Chen:

//IO中断触发if(events & BG_SEND_11111){Power_setConstraint(PowerCC26XX_SB_DISALLOW);if( !uart_is_init ){log("uart init\n");uart_init();}log("uart done %d \n" , uart_is_init);if( uart_is_init == true ){log("send data\n");ptc_write("111111111\r\n",9);}Task_sleep(((1000) * 1000) / Clock_tickPeriod);UART_close(uart_handle);//bg_set_event( BG_UART_CLOSE_EVENT );Power_releaseConstraint(PowerCC26XX_SB_DISALLOW);}
直接用close也不行,

user5799078:

回复 shakencity:

恩, 500 ua没办法做低功耗了。我想在想唤醒打开,休眠关掉, 每次close , 程序都死

user5799078:

回复 Alvin Chen:

你好,我试了NPI , 开启PWOER_SAVEING 之后没办法发数据了。 不开正常

我现在连续触发中断,可以一直的close open , 但是只要停顿一会. 程序就死。

赞(0)
未经允许不得转载:TI中文支持网 » cc2640r2f sensor controller 开启uart的功耗有点高啊
分享到: 更多 (0)