Tool/software: TI-RTOS
Hi Forum,
I found something strange (using Simple Link Studio CC13x0 2.20.0.38): After closing an uart, that was opened in callback mode, the sleep current raised form several uA to something 1 mA (or with the emulator connected (external supply) from 1.8 mA "sleeping" to 2.1 mA).
I found out, that after an active read in callback mode seems to be the problem. Even if the read was canceled before closing.
If I re-open and close the uart again (in blocking mode) everythings works as expected (lines marked with /* TEST.. */
Is this a bug or did I foregt something?
Thanks for your comments,
Juergen
int16_t modem_open(void){ UART_Params uartParams; UART_Params_init(&uartParams); uartParams.writeDataMode = UART_DATA_BINARY; uartParams.readDataMode = UART_DATA_BINARY; uartParams.readReturnMode = UART_RETURN_FULL; uartParams.readEcho = UART_ECHO_OFF; uartParams.baudRate = 115200; uartParams.readMode = UART_MODE_CALLBACK; uartParams.readCallback = _modem_uart_read_cb; uartParams.writeMode = UART_MODE_CALLBACK; uartParams.writeCallback = _modem_uart_write_cb; modem_uart = UART_open(CC_MODEM_NOFLOW, &uartParams); // global if(!modem_uart) return -1004; UART_control(modem_uart, UARTCC26XX_CMD_RETURN_PARTIAL_ENABLE, NULL); // UART_read(modem_uart, modem_rx_buf , (MODEM_LRX_BUFSIZE/4)); // max 1/4 buffer in one step /***PROBLEM***/ return 0; } void modem_close(void){ if(modem_uart) { UART_readCancel(modem_uart); UART_writeCancel(modem_uart); UART_close(modem_uart); UART_Params uartParams; /* TEST */ UART_Params_init(&uartParams); /* TEST, def. mode: no callbacks */ modem_uart = UART_open(CC_MODEM_NOFLOW, &uartParams); /* TEST, dummy open */ UART_close(modem_uart); /* TEST, close again*/ modem_uart=NULL; } }