I'm currently trying to receive S/PDIF data using a MIMXRT101-EVK board via the interrupt method. In general it is working well - except the fact that all my received frames are empty and contain only 0. This is true even for the auxiliary part which is set to 0100 by the sender always.
The receiving operation in general works: when no signal is applied to my input GPIO_10 (configured as SPDIF:IN), the callback-handler is never called. As soon as I apply a S/PDIF-signal at this input, I can see the callback is called with kStatus_SPDIF_RxIdle, but the related buffer contains no data. I even can place a breakpoint to the interrupt service routine, when stepping through the related code I can see the related registers for left and right are read, but these reigsters also contain only zeros.
When measuring with an oscilloscope directly at pin 2 of the MCU, I can see my valid S/PDIF frames with their data, so they are definitely there.
So that's what I have:

My peripheral configuration is the default one except for the fact that I'm receiving only and enable the interrupt for my own.
This is the initialisation sequence and where I start transfer of data:
SPDIF_TransferRxCreateHandle(SPDIF_PERIPHERAL,&rxHandle,rxCallback,NULL);
EnableIRQ(SPDIF_IRQN);
rxXfer.dataSize = BUFFER_SIZE;
rxXfer.data = audioBuff;
SPDIF_TransferReceiveNonBlocking(SPDIF_PERIPHERAL, &rxHandle, &rxXfer);
And that's the callback function where I regularly get an kStatus_SPDIF_rxIdle but the related buffer does not contain the data to be expected.
static void rxCallback(SPDIF_Type *base, spdif_handle_t *handle, status_t status, void *userData)
{
if (status == kStatus_SPDIF_RxIdle)
{
dataReceived=true;
SPDIF_TransferReceiveNonBlocking(SPDIF_PERIPHERAL, &rxHandle, &rxXfer);
}
}
What I don't understand: when I receive these frames, this means the receiver must have identified at least the preamble and the valid-flag of each frame? So receiving of the frames works but the data do not get through!?
So...any idea what could be missing here?