RT1060 Uart Tx Complete Interrupt

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

RT1060 Uart Tx Complete Interrupt

721件の閲覧回数
fwguy
Contributor I

I am having issues with the UART Tx complete interrupt not triggering after a transmit. The UART is sending approximately 5 million packets a day without issue. The Tx complete interrupt will not trigger after a indeterminate period of time which locks up the UART and the UART stops working. The only way is to reset the fw.

 

I have setup the UART as follows

/* Initialise UART */
LPUART_Init(base, &LPUART_config, LPUART_CLOCK_SOURCE);

/* Create a callback function */
LPUART_TransferCreateHandle(base, &g_lpuartHandle, LPUART_UserCallback, NULL);

/* TX complete IRQ enable */
LPUART_EnableInterrupts(base, kLPUART_TransmissionCompleteInterruptEnable);

 

Data is sent using a non-blocking transmit function.

/* Send the data, Callback will notify us when done */
LPUART_TransferSendNonBlocking(base, &g_lpuartHandle, &xfer);

 

The Tx Interrupt gets triggered when the transfer is complete.

void LPUART_UserCallback(LPUART_Type *base, lpuart_handle_t *handle, status_t status, void *userData)
{
    if (kStatus_LPUART_TxIdle == status)
    {
        /* Signal Tx transfer is complete */
        uart_tx_complete();
    }
}

 

Once this is triggered, I start the Rx Transfer.

LPUART_TransferStartRingBuffer(base, &g_lpuartHandle, ring_buffer, nBytes);

 

Once the Rx data has finished, the transfer is aborted.

/* Abort the Receive handler, all data received */
LPUART_TransferAbortReceive(base, &g_lpuartHandle);
	
/* Disable the ring Buffer */
LPUART_TransferStopRingBuffer(base, &g_lpuartHandle);

 

This process is repeated every Tx and Rx (the init is only done once). I have tried removing the Ring buffer from the process but the same thing happens. Unfortunately it can take up to two weeks before it happens so I cannot reproduce it easily. Is there something wrong with the way I am doing things?

 

Is there an issue with the Tx Interrupt configuration? I have updated the SDK to the latest version (2.7.6) and the issue remains.

 

Any help in this would be greatly appreciated.

fwguy

ラベル(2)
0 件の賞賛
返信
3 返答(返信)

680件の閲覧回数
DanielRuvalcaba
NXP TechSupport
NXP TechSupport

Hi,

 

The SDK you are using is very old. Could you please try with the latest SDK release (2.15.000)?

 

Regards,

Daniel.

0 件の賞賛
返信

664件の閲覧回数
fwguy
Contributor I

Sorry, i wasn't clear. The fsl_uart is on version 2.7.6. I am on the latest SDK (2.15.0)

0 件の賞賛
返信

652件の閲覧回数
DanielRuvalcaba
NXP TechSupport
NXP TechSupport

Thanks for the clarification.

I got informed someone else created an internal ticket regarding this query.

I will continue the support in the internal case.

 

Regards,

Daniel.

0 件の賞賛
返信