Hi,
I setted up the LIBUARTE on my custom board...
NRF52833,SDK17.0.2,With Softdevice enabled
CODE:
-----------------------------------
NRF_LIBUARTE_ASYNC_DEFINE(modem_libuarte, 0, 2, NRF_LIBUARTE_PERIPHERAL_NOT_USED, NRF_LIBUARTE_PERIPHERAL_NOT_USED, 255, 3);
nrf_libuarte_async_config_t nrf_libuarte_async_config_modem;
typedef struct {
uint8_t * p_data;
uint32_t length;
} buffer_t_modem;
NRF_QUEUE_DEF(buffer_t_modem, m_buf_queue_modem, 10, NRF_QUEUE_MODE_NO_OVERFLOW);
void uart_event_handler_modem(void * context, nrf_libuarte_async_evt_t * p_evt)
{
nrf_libuarte_async_t * p_libuarte = (nrf_libuarte_async_t *)context;
ret_code_t ret;
unsigned char mone_char;
switch (p_evt->type)
{
case NRF_LIBUARTE_ASYNC_EVT_ERROR:
//bsp_board_led_invert(0);
break;
case NRF_LIBUARTE_ASYNC_EVT_RX_DATA:
uart_rx_timeout = UART_RX_TIMEOUT;
for (mone_char=0;mone_char<p_evt->data.rxtx.length;mone_char++)
{
rec_char = p_evt->data.rxtx.p_data[mone_char];
modem_rx_interrupt(rec_char);
}
break;
case NRF_LIBUARTE_ASYNC_EVT_TX_DONE:
//nrf_libuarte_async_rx_free(p_libuarte, p_evt->data.rxtx.p_data, p_evt->data.rxtx.length);
if (!nrf_queue_is_empty(&m_buf_queue_modem))
{
buffer_t_modem buf;
ret = nrf_queue_pop(&m_buf_queue_modem, &buf);
APP_ERROR_CHECK(ret);
UNUSED_RETURN_VALUE(nrf_libuarte_async_tx(p_libuarte, buf.p_data, buf.length));
}
break;
default:
break;
}
}
void uart_modem_init(void)
{
ret_code_t err_code;
nrf_libuarte_async_config_modem.tx_pin = LEG_GSM_RX_IN;
nrf_libuarte_async_config_modem.rx_pin = LEG_GSM_TX_OUT;
nrf_libuarte_async_config_modem.cts_pin = NULL;
nrf_libuarte_async_config_modem.rts_pin = NULL;
nrf_libuarte_async_config_modem.baudrate = NRF_UARTE_BAUDRATE_115200;
nrf_libuarte_async_config_modem.parity = NRF_UARTE_PARITY_EXCLUDED;
nrf_libuarte_async_config_modem.hwfc = NRF_UARTE_HWFC_DISABLED;
nrf_libuarte_async_config_modem.timeout_us = 100;
nrf_libuarte_async_config_modem.int_prio = APP_IRQ_PRIORITY_HIGH;
err_code = nrf_libuarte_async_init(&modem_libuarte, &nrf_libuarte_async_config_modem, uart_event_handler_modem, (void *)&modem_libuarte);
APP_ERROR_CHECK(err_code);
nrf_libuarte_async_enable(&modem_libuarte);
}
void uart_modem_tx(unsigned char *x) // Which called every 1s....for testing
{
ret_code_t err_code;
// err_code = nrf_libuarte_async_tx(&modem_libuarte, x, strlen((char const *)x));
err_code = nrf_libuarte_async_tx(&modem_libuarte,"12345",5);
APP_ERROR_CHECK(err_code);
}
And what i see all the time is: (btw: i get the NRF_LIBUARTE_ASYNC_EVT_TX_DONE event)

It doesn't matter if i change to TIMER or RTC in NRF_LIBUARTE_ASYNC_DEFINE....i tried many options but the transmission is all the time is like this.
Any idea why?
Btw: After the uarte module will work, i need to set up 2 uarte ! If you got any example of setting 2 uartse on SDK17.0.2 with app_timer it will be great !
Also , I can't run the LIBUARTE example on my custom board directly. (the RTC is LP external crystal with 32.768K)
B.r,
Yuval.