Hi Maciek,
1. Yes, the Data Rx output is associated with the Data Transfer block - we will investigate if this approach works for LPUART and LPSPI as well - for LPUART Transfer from what I tested it should be possible, I will keep you updated on this.
3. From my understanding of the SDK functions, both Read and Write in Transfer LPUART use the same Interrupt Handler (the default SDK implementation is in LPUART_TransferHandleIRQ). My guess (but I could be wrong) would be that even though you have different API functions for send and receive, the logic is similar as in LPI2C: the Transfer functions (Send or Receive) will enable the interrupts and return immediately, and the actual transfer is handled separately by the interrupt routine: so even though you start them without waiting for completion of the other, they will be executed in the order in which the interrupts are detected (I tested with a LPUART_TransferReceiveNonBlocking followed by a LPUART_TransferSendNonBlocking of an array of characters - the transmit sequence was started and at some point disrupted by the detection of a receive interrupt - the final result was the expected one, but honestly I do not know if this approach will work well in more complex scenarios.
A difference that I noticed was that for Receive, if the RX ring buffer is used, the data is read directly in the non-blocking function.
4. Yes, you are right with the Transfer Status output, it will contain the status of the last completed transfer, as returned by the interrupt handler.
5. The SDK uses a macro (MAKE_STATUS) to compute the status codes for each driver, and it is defined in fsl_common.h as :
#define MAKE_STATUS(group, code) ((((group)*100) + (code))),
where "group" is the Status Group Code of the peripheral (all of the peripheral codes are defined in the enum _status_groups in fsl_common.h) and "code" is the error code for each peripheral, defined in the SDK driver headers.
For example, for LPUART, the status group code is given as kStatusGroup_LPUART = 13, and the errors go from 0-15, so some of the status codes would be:
kStatus_LPUART_TxIdle = MAKE_STATUS(kStatusGroup_LPUART, 2) = 13 * 100 + 2 = 1302
kStatus_LPUART_RxIdle = MAKE_STATUS(kStatusGroup_LPUART, 3) = 13 * 100 + 3 = 1303
and so on. You can find the rest of the codes in fsl_lpuart.h (similar for the rest of the drivers). We will update the documentation of the blocks with the exact status codes as well.
To see exactly the context in which each status is returned, you can go look in the Interrupt Handler routine (LPUART_TransferHandleIRQ), and search for the lines of code where "handle->callback" is triggered, the third argument is the status which is returned in the function.
6. You should be allowed to change the default name of the Callback - I tested it now with a new name and it worked fine; the TLC generation script is parameterized to use the name configured by the user in ConfigTools, also the LPUART_TransferCreateHandle is updated with the new name.
Best regards,
Ioana