How to implement the full-duplex feature of UART1 on M-Core

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

How to implement the full-duplex feature of UART1 on M-Core

Jump to solution
1,696 Views
DylanZhao
Contributor I

1: Uart_AsyncSend and Uart_AsyncReceive interfaces block each other when one of them is transmitting, for example, when I call Uart_AsyncReceive ready to receive the data, the status of UART is UART_STATUS_OPERATION_ONGOING if there is no data input. In this case, Uart_AsyncSend can not work expectedly.

DylanZhao_0-1671419007261.png

2: What should I do to implement full-duplex communication of UART on M-Core, My RTD version is 3.0.2.

Thank you

 

Tags (2)
0 Kudos
Reply
1 Solution
1,618 Views
nxf92355
NXP Employee
NXP Employee

Hi DylanZhao

Hope you are doing well

Sorry for late.  You can use API ->  Linflexd_Uart_Ip_AsyncReceive() which starts data reception from the LINFLEXD module in UART mode with non-blocking method. This enables an a-sync method for receiving data. When used with a non-blocking transmission, the UART driver can perform a full duplex operation. Non-blocking means that the function returns immediately. The application has to get the receive status to know when the receive is complete.

As same you can use API-> Linflexd_Uart_Ip_AsyncSend() which sends data using LINFLEXD module in UART mode with non-blocking method.

I have RTDv4.0.0. you can also refer an example in RTD(v4.0.0) name as  Linflexd_Uart_Ip_Example_S32G274A_M7.

Please refer RTD_UART_UM.pdf @the location (in my RTD v4.0.0)  /NXP/S32DS.3.4/S32DS/software/PlatformSDK_S32XX_4_0_0/RTD/Uart_TS_T40D11M40I0R0/doc/RTD_UART_UM.pdf 

 

Regards

Tushar

View solution in original post

0 Kudos
Reply
3 Replies
1,619 Views
nxf92355
NXP Employee
NXP Employee

Hi DylanZhao

Hope you are doing well

Sorry for late.  You can use API ->  Linflexd_Uart_Ip_AsyncReceive() which starts data reception from the LINFLEXD module in UART mode with non-blocking method. This enables an a-sync method for receiving data. When used with a non-blocking transmission, the UART driver can perform a full duplex operation. Non-blocking means that the function returns immediately. The application has to get the receive status to know when the receive is complete.

As same you can use API-> Linflexd_Uart_Ip_AsyncSend() which sends data using LINFLEXD module in UART mode with non-blocking method.

I have RTDv4.0.0. you can also refer an example in RTD(v4.0.0) name as  Linflexd_Uart_Ip_Example_S32G274A_M7.

Please refer RTD_UART_UM.pdf @the location (in my RTD v4.0.0)  /NXP/S32DS.3.4/S32DS/software/PlatformSDK_S32XX_4_0_0/RTD/Uart_TS_T40D11M40I0R0/doc/RTD_UART_UM.pdf 

 

Regards

Tushar

0 Kudos
Reply
1,676 Views
Daniel-Aguirre
NXP TechSupport
NXP TechSupport

Hi,

Which example are you using? We are looking into the "Linflexd_Uart_Ip_Example_S32G274A_M7" provided in RTD 3.0.2 HF01 and cannot find the referenced function you are showing.

Please, let us know.

0 Kudos
Reply
883 Views
wenyunhao
Contributor II

hello ,

 I have the same question.  can anyone give an example of the usage with mcal and s32k3 ?

0 Kudos
Reply