nRF9160 dk UARTE1 Baremetal : Not working

Hello,

I am new to the nordic family. I am trying to bring up the UART1 in 9160 DK but it's not working. The same code works for UART0 appropriately.

void my_Usart1_init(void)
{
    /* GPIO init */
    nrf_gpio_cfg_default(1);
    nrf_gpio_pin_set(1);
    nrf_gpio_cfg_default(0);
    nrf_gpio_pin_set(0);

    NRF_UARTE1->PSEL.TXD = 1;
    NRF_UARTE1->PSEL.RXD = 0;
    NRF_UARTE1->TASKS_STOPTX = 1;
    NRF_UARTE1->TASKS_STOPRX = 1;    

    NRF_UARTE1->BAUDRATE = (uint32_t)UARTE_BAUDRATE_BAUDRATE_Baud115200;

    /*Initialize DMA*/
    NRF_UARTE1->INTENCLR = 0xffffffffUL;
    NRF_UARTE1->INTENSET =
        (UARTE_INTEN_ENDTX_Enabled << UARTE_INTEN_ENDTX_Pos) |
        (UARTE_INTEN_ERROR_Enabled << UARTE_INTEN_ERROR_Pos);

    /* APP IRQ */
    Sys_clearFastAppIrq(UARTE1_SPIM1_SPIS1_TWIM1_TWIS1_IRQn);
    Sys_enableFastAppIrq(UARTE1_SPIM1_SPIS1_TWIM1_TWIS1_IRQn,
                         APP_LIB_SYSTEM_IRQ_PRIO_HI,
                         UARTE1_IRQHandler);
    NRF_UARTE1->ENABLE = UARTE_ENABLE_ENABLE_Enabled;

}

uint8_t tx_ptr1[1] = "Q";
void my_Usart1_transmit(void)
{
    NRF_UARTE1->TXD.PTR = (uint32_t) tx_ptr1;
    NRF_UARTE1->TXD.MAXCNT = 1;

    NRF_UARTE1->EVENTS_ENDTX = 0;
    NRF_UARTE1->TASKS_STARTTX = 1;
}

And the code for ISR is just simple:

void __attribute__((__interrupt__)) UARTE1_IRQHandler(void)
{
    /* TX transfer complete, start next */
    if (NRF_UARTE1->EVENTS_ENDTX != 0)
    {        
        NRF_UARTE1->EVENTS_ENDTX = 0;       
    }   
}

I tried hard and feel i need some expert advice.

Thank you.

Pawan

Related