SPDIF Output Jitter on MIMXRT1170-EVKB Using NXP SDK spdif_edma_transfer Example Hello NXP Support Team, I am investigating an SPDIF issue using the MIMXRT1170-EVKB development board. The project is based on the official NXP SDK spdif_edma_transfer example. Test configuration: - Board: MIMXRT1170-EVKB - Core: Cortex-M4 - SPDIF input: J46 (GPIO_AD_15) - SPDIF output: J45 (GPIO_AD_16) - Sample rate: 48 kHz - Transfer method: eDMA - Mode: Continuous SPDIF input-to-output forwarding Observed issue: The SPDIF input signal is received successfully. The DPLL locks correctly, and SPDIF transmission starts. However, jitter is observed in the SPDIF output signal. Expected behavior: The SPDIF output should reproduce the received SPDIF audio signal with stable timing. I have prepared a complete modified SDK demo project that reproduces this issue. Could an NXP engineer review the project and help identify the cause of the SPDIF output jitter? I would also like to know whether I can attach the complete project ZIP file to this discussion. Thank you for your support. Re: SPDIF Output Jitter on MIMXRT1170-EVKB Using NXP SDK spdif_edma_transfer Example Hi @yp_wang ,
Thanks for your reaching out!
Could you please provide the SDK version number? Additionally, if possible, please share a minimal reproducible project based on the latest version of the SDK. It would also be helpful to attach the waveform of the jitter you observed. This will assist us in reproducing the issue and identifying the cause.
Thanks in advance!
Best regards, Gavin Re: SPDIF Output Jitter on MIMXRT1170-EVKB Using NXP SDK spdif_edma_transfer Example thanks please refer to the spdif.pdf ,and mp4 file , something wrong with my NXP account, if you need the test code ,please give me your emal address Re: SPDIF Output Jitter on MIMXRT1170-EVKB Using NXP SDK spdif_edma_transfer Example files are attached Re: SPDIF Output Jitter on MIMXRT1170-EVKB Using NXP SDK spdif_edma_transfer Example Hi @yp_wang ,
Thanks for your attached file.
However, I cannot address the issue without the application code. If possible, could you please submit a ticket through the official channel? This way, any code or minimal reproduction project you upload will remain private and inaccessible to external users. Link: https://support.nxp.com/s/
Thanks! Re: SPDIF Output Jitter on MIMXRT1170-EVKB Using NXP SDK spdif_edma_transfer Example I’m unable to submit this attachment because the system says “Case creation disabled.” I also contacted NXP by email, but the issue still seems unresolved. Is there another way to submit it? @Gavin_Jia Re: SPDIF Output Jitter on MIMXRT1170-EVKB Using NXP SDK spdif_edma_transfer Example Hi @yp_wang ,
I am not sure why you are unable to create an SFDC ticket on your end. However, you can try contacting an online sales representative via the official website by clicking the button shown in the image below:
Link: www.nxp.com
They will be able to assist you with your account issues or help you create an SFDC ticket. Thank you!
Re: SPDIF Output Jitter on MIMXRT1170-EVKB Using NXP SDK spdif_edma_transfer Example Hi ,
Thanks for the attachments.
After reviewing your CM4/CM7 code and the SPDIF drivers, we believe the problem is not jitter generated by the SPDIF transmitter itself. It is most likely caused by clock-domain mismatch between RX and TX in your forwarding design.
1. RX and TX run on two independent clocks
RX follows the external source. The DPLL recovers its timing from the incoming SPDIF stream on J46.
TX uses the local clock. With STC[TxClk_Source] = 001 , the transmitter is clocked from SPDIF_CLK_ROOT , which your code derives from the Audio PLL.
DPLL lock only means the receiver is tracking the input. It does not make TX follow the input clock.
2. Consequence for continuous forwarding
Both sides are nominally 48 kHz, but the source clock and the local PLL are not exactly equal. In RX → memory → TX forwarding without rate matching, this small frequency difference gradually consumes the buffer margin. Over time this leads to periodic sample drops or repeats, followed by TX FIFO underrun or overrun.
3. The error-recovery code makes it worse
On a TX FIFO error, the ISR aborts TX only, then sets emptyBlock = BUFFER_NUM . However, RX transfers are still in flight, and txIndex / rxIndex are not reset. The buffer bookkeeping then no longer matches the real DMA state. Queued TX blocks are skipped, and the TX/RX distance after restart becomes arbitrary, so the next failure can come sooner. Also, kSPDIF_RxFIFOError is handled in the ISR but never enabled.
And here is our suggestions for your application:
Add rate matching. Use ASRC between SPDIF RX and the TX clock domain (see NXP AN14631)
Rewrite error recovery so that it stops both RX and TX, clears both driver queues and all buffer indexes, then restarts with a pre-filled buffer.
Discard the first 192 frames after DPLL lock, as required by RM §59.5.
For quick isolation, try hardware feed-through ( SCR[TxSel] = 001 ). If the output is clean in this mode, the board and measurement chain are fine, and the issue is in the software forwarding path.
Hope that helps!
Best regards, Gavin
Re: SPDIF Output Jitter on MIMXRT1170-EVKB Using NXP SDK spdif_edma_transfer Example attached the project ,based on the newest SDK, RAM download ,if you have any question ,please email
[email protected] Re: SPDIF Output Jitter on MIMXRT1170-EVKB Using NXP SDK spdif_edma_transfer Example You were right. I changed the clock source on the test equipment and configured it to stay synchronized with the SPDIF clock. After that, the jitter disappeared. Thank you. If I encounter any further issues with SPDIF or anything else, I will contact you again.