Hi,
sorry, I didn't think about phhalHw_Pn5180_BalExchange. This function is called every time a SPI frame is sent to PN5180.
What I wrote above (if send buffer contains REQA, then receiver buffer contains ATQA in case of SUCCESS) refers to phhalHw_Pn5180_Exchange.
phhalHw_Pn5180_Exchange uses multiple calls to phhalHw_Pn5180_BalExchange, because typical send/receiver sequence requires several PN5180 commands to be executed.
phhalHw_Pn5180_Receive_Int() is just an internal function used to receive data after data has been sent out. So phhalHw_Pn5180_Exchange first sends out the data ('send out' means it sends the data over SPI to PN5180 and PN5180 then sends the data asynchronously via the CLIF to the card) and then phhalHw_Pn5180_Exchange calls phhalHw_Pn5180_Receive_Int to receive the card response. Also here, the card response is received by PN5180 full autonomously and is stored in a buffer within PN5180. Once data is received over the CLIF and stored in that internal buffer, PN5180 informs the host controller about that (via RxIRQ) and host controller can then read out this buffer via SPI. All this (wait for Rx IRQ and read out the buffer) is done within phhalHw_Pn5180_Receive_Int
Christian.