2S TDM Master: Persistent 1-slot downward shift during continuous DMA streaming

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

2S TDM Master: Persistent 1-slot downward shift during continuous DMA streaming

296件の閲覧回数
Xanderwangx
Contributor I

1. Test Configuration

  • I2S configured as TDM Master, DSP mode with short WS
  • 8 slots per frame, 32-bit per slot, frame length = 256 bit
  • Using fsl_i2s_dma driver
  • Dual-buffer ping-pong transfer
  • FreeRTOS task waits on a semaphore from the DMA callback, fills the buffer, then calls I2S_TxTransferSendDMA to re-submit
  • Test data pattern: fixed 0x000Axxxx (upper 16 bits = 0x000A, lower 16 bits contain slot index and sample sequence number)

2. Persistent One-Slot Downward Shift (100% Reproducible)

Logic analyzer captures show:
  • Transmitted data is consistently shifted down by exactly one slot
  • Data intended for Slot 0 appears in the physical Slot 1 position
  • Data intended for Slot 1 appears in the physical Slot 2 position
  • By extension, data intended for Slot 7 appears in Slot 0 of the next frame (or is lost)
  • This shift is stable after the stream starts; it does not drift further over time and remains a fixed 1-slot offset

3. Startup Data Misalignment (Intermittent)

The logic analyzer occasionally observes:
  • After the WS frame sync pulse, the DATA line remains at low level (all zeros) for a period
  • After a blank interval of 1~3 frames, valid test data suddenly appears
  • Once the blank interval ends, the data still exhibits the 1-slot offset described in item 2
    Xanderwangx_0-1780141578772.png

     

ラベル(1)
0 件の賞賛
返信
3 返答(返信)

211件の閲覧回数
Celeste_Liu
NXP Employee
NXP Employee

Hello @Xanderwangx ,

Thank you for your post. Could you please let us know which NXP MCU you are using? Also, are you working with one of our evaluation boards or a custom board? Are you using the SDK example code, or is this based on your own implementation? If it is your own code, would you be able to share it with us for further analysis?
BR
Celeste
0 件の賞賛
返信

55件の閲覧回数
Xanderwangx
Contributor I

MCU: MIMXRT685-EVK (i.MX RT685)
Board: Custom product board based on RT685.

I am using
Loop DMA mode with ping-pong buffers. The DMA is configured with I2S_TransferSendLoopDMA() using 2 descriptors. In the DMA callback, I fill the next buffer and the loop continues automatically.

void I2S1_TDM_Init(void)
{
    I2S_Type *base = I2S1;

    /* I2S Configuration */
    i2s_config_t cfg;
    I2S_TxGetDefaultConfig(&cfg);
    cfg.masterSlave = kI2S_MasterSlaveNormalMaster;
    cfg.mode        = kI2S_ModeDspWsShort;     /* TDM = DSP mode */
    cfg.divider     = 24576000 / (TDM_SAMPLE_RATE * TDM_SLOT_NUM * TDM_SLOT_WIDTH);
    cfg.dataLength  = TDM_SLOT_WIDTH;          /* 32-bit */
    cfg.frameLength = TDM_FRAME_LENGTH;        /* 256-bit */
    cfg.oneChannel  = false;
    cfg.position    = 0;
    cfg.wsPol       = true;                    /* DSP A or B */
    I2S_TxInit(base, &cfg);

    /* Enable 8 slots (Primary + 3 Secondary Channels) */
    /* Note: Using 4 channels to cover 8 slots with 32-bit data */
    I2S_EnableSecondaryChannel(base, kI2S_SecondaryChannel1, false, 32 * 2);
    I2S_EnableSecondaryChannel(base, kI2S_SecondaryChannel2, false, 32 * 4);
    I2S_EnableSecondaryChannel(base, kI2S_SecondaryChannel3, false, 32 * 6);

    /* DMA Loop Transfer Setup */
    DMA_Init(DMA0);
    DMA_EnableChannel(DMA0, I2S_TX_DMA_CH);
    DMA_SetChannelPriority(DMA0, I2S_TX_DMA_CH, kDMA_ChannelPriority3);

    DMA_CreateHandle(&dma_handle, DMA0, I2S_TX_DMA_CH);
    I2S_TxTransferCreateHandleDMA(base, &i2s_handle, &dma_handle,
                                  I2S1_Callback, tdm_xfer);
    I2S_TransferInstallLoopDMADescriptorMemory(&i2s_handle, tdm_desc, 2);

    if (I2S_TransferSendLoopDMA(base, &i2s_handle, &tdm_xfer[0], 2)
            != kStatus_Success) {
        while (1);  /* Fails if TDM_FRAMES * 8 > DMA_MAX_TRANSFER_COUNT(1024) */
    }
}

The slot offset is random across power cycles, not fixed.I also tried disable interrupts before and after the DMA transfer to force synchronization, but slot misalignment still occurs.
Does I2S_TransferSendLoopDMA() guarantee frame-aligned DMA startup on RT685? If not, how to force alignment to WS boundary?
i.MX-RT600 

0 件の賞賛
返信

52件の閲覧回数
Celeste_Liu
NXP Employee
NXP Employee

Hello @Xanderwangx ,

Thank you for your reply. However, the RT family is not within my support scope. I mainly support MCX and Kinetis family. Also, this is MCX channel, not for RT product.

Could you please create a new post under i.MX RT Crossover MCUs - NXP Community? The RT support team will be able to assist you there.

BR

Celeste

0 件の賞賛
返信
%3CLINGO-SUB%20id%3D%22lingo-sub-2373820%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E2S%20TDM%E3%83%9E%E3%82%B9%E3%82%BF%E3%83%BC%EF%BC%9ADMA%E3%82%B9%E3%83%88%E3%83%AA%E3%83%BC%E3%83%9F%E3%83%B3%E3%82%B0%E3%81%8C%E7%B6%99%E7%B6%9A%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E9%96%93%E3%80%811%E3%82%B9%E3%83%AD%E3%83%83%E3%83%88%E5%88%86%E4%B8%8B%E6%96%B9%E3%81%B8%E3%82%B7%E3%83%95%E3%83%88%E3%81%8C%E6%8C%81%E7%B6%9A%E3%81%99%E3%82%8B%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2373820%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CH3%20id%3D%22toc-hId-2032873306%22%20id%3D%22toc-hId-2032895535%22%20id%3D%22toc-hId-2032895535%22%20id%3D%22toc-hId-2032895535%22%20id%3D%22toc-hId-2032895535%22%3E1.%20%E3%83%86%E3%82%B9%E3%83%88%E6%A7%8B%E6%88%90%3C%2FH3%3E%3CUL%3E%3CLI%3E%3CDIV%20class%3D%22%22%3EI2S%E3%81%AF%3CSTRONG%3ETDM%E3%83%9E%E3%82%B9%E3%82%BF%E3%83%BC%3C%2FSTRONG%3E%E3%80%81DSP%E3%83%A2%E3%83%BC%E3%83%89%E3%80%81%E7%9F%AD%E3%81%84WS%E3%81%A8%E3%81%97%E3%81%A6%E6%A7%8B%E6%88%90%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%3C%2FDIV%3E%3C%2FLI%3E%3CLI%3E%3CDIV%20class%3D%22%22%3E%3CSTRONG%3E%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%81%82%E3%81%9F%E3%82%8A8%E3%82%B9%E3%83%AD%E3%83%83%E3%83%88%3C%2FSTRONG%3E%E3%80%81%E3%82%B9%E3%83%AD%E3%83%83%E3%83%88%E3%81%82%E3%81%9F%E3%82%8A32%E3%83%93%E3%83%83%E3%83%88%E3%80%81%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E9%95%B7%EF%BC%9D256%E3%83%93%E3%83%83%E3%83%88%3C%2FDIV%3E%3C%2FLI%3E%3CLI%3E%3CDIV%20class%3D%22%22%3E%3CSTRONG%3Efsl_i2s_dma%3C%2FSTRONG%3E%E3%83%89%E3%83%A9%E3%82%A4%E3%83%90%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%3C%2FDIV%3E%3C%2FLI%3E%3CLI%3E%3CDIV%20class%3D%22%22%3E%3CSTRONG%3E%E3%83%87%E3%83%A5%E3%82%A2%E3%83%AB%E3%83%90%E3%83%83%E3%83%95%E3%82%A1%E3%83%BB%E3%83%94%E3%83%B3%E3%83%9D%E3%83%B3%3C%2FSTRONG%3E%E8%BB%A2%E9%80%81%3C%2FDIV%3E%3C%2FLI%3E%3CLI%3E%3CDIV%20class%3D%22%22%3EFreeRTOS%E3%82%BF%E3%82%B9%E3%82%AF%E3%81%AFDMA%E3%82%B3%E3%83%BC%E3%83%AB%E3%83%90%E3%83%83%E3%82%AF%E3%81%8B%E3%82%89%E3%81%AE%E3%82%BB%E3%83%9E%E3%83%95%E3%82%A9%E3%82%92%E5%BE%85%E6%A9%9F%E3%81%97%E3%80%81%E3%83%90%E3%83%83%E3%83%95%E3%82%A1%E3%82%92%E5%9F%8B%E3%82%81%E3%80%81%E3%81%9D%E3%81%AE%E5%BE%8CI2S_TxTransferSendDMA%E3%82%92%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%97%E3%81%A6%E5%86%8D%E9%80%81%E4%BF%A1%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FDIV%3E%3C%2FLI%3E%3CLI%3E%3CDIV%20class%3D%22%22%3E%E3%83%86%E3%82%B9%E3%83%88%E3%83%87%E3%83%BC%E3%82%BF%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3%EF%BC%9A%E5%9B%BA%E5%AE%9A%E5%80%A40x000Axxxx%EF%BC%88%E4%B8%8A%E4%BD%8D16%E3%83%93%E3%83%83%E3%83%88%EF%BC%9D0x000A%E3%80%81%E4%B8%8B%E4%BD%8D16%E3%83%93%E3%83%83%E3%83%88%E3%81%AB%E3%81%AF%E3%82%B9%E3%83%AD%E3%83%83%E3%83%88%E3%82%A4%E3%83%B3%E3%83%87%E3%83%83%E3%82%AF%E3%82%B9%E3%81%A8%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%82%B7%E3%83%BC%E3%82%B1%E3%83%B3%E3%82%B9%E7%95%AA%E5%8F%B7%E3%81%8C%E5%90%AB%E3%81%BE%E3%82%8C%E3%82%8B%EF%BC%89%3C%2FDIV%3E%3C%2FLI%3E%3C%2FUL%3E%3CH3%20id%3D%22toc-hId-225418843%22%20id%3D%22toc-hId-225441072%22%20id%3D%22toc-hId-225441072%22%20id%3D%22toc-hId-225441072%22%20id%3D%22toc-hId-225441072%22%3E2.%20%E6%8C%81%E7%B6%9A%E7%9A%84%E3%81%AA1%E3%82%B9%E3%83%AD%E3%83%83%E3%83%88%E4%B8%8B%E6%96%B9%E3%82%B7%E3%83%95%E3%83%88%EF%BC%88%E5%86%8D%E7%8F%BE%E7%8E%87100%25%EF%BC%89%3C%2FH3%3E%3CDIV%20class%3D%22%22%3E%E3%83%AD%E3%82%B8%E3%83%83%E3%82%AF%E3%82%A2%E3%83%8A%E3%83%A9%E3%82%A4%E3%82%B6%E3%81%AE%E3%82%AD%E3%83%A3%E3%83%97%E3%83%81%E3%83%A3%E7%B5%90%E6%9E%9C%EF%BC%9A%3C%2FDIV%3E%3CUL%3E%3CLI%3E%3CDIV%20class%3D%22%22%3E%E9%80%81%E4%BF%A1%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AF%3CSTRONG%3E%E5%B8%B8%E3%81%AB%E6%AD%A3%E7%A2%BA%E3%81%AB1%E3%82%B9%E3%83%AD%E3%83%83%E3%83%88%E5%88%86%E3%81%A0%E3%81%91%E4%B8%8B%E3%81%AB%E3%82%B7%E3%83%95%E3%83%88%E3%81%95%E3%82%8C%E3%82%8B%3C%2FSTRONG%3E%3C%2FDIV%3E%3C%2FLI%3E%3CLI%3E%3CDIV%20class%3D%22%22%3E%3CSTRONG%3E%E3%82%B9%E3%83%AD%E3%83%83%E3%83%880%3C%2FSTRONG%3E%E5%AE%9B%E3%81%A6%E3%81%AE%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AF%E3%80%81%E7%89%A9%E7%90%86%E7%9A%84%E3%81%AA%3CSTRONG%3E%E3%82%B9%E3%83%AD%E3%83%83%E3%83%881%E3%81%AE%3C%2FSTRONG%3E%E4%BD%8D%E7%BD%AE%E3%81%AB%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82%3C%2FDIV%3E%3C%2FLI%3E%3CLI%3E%3CDIV%20class%3D%22%22%3E%3CSTRONG%3E%E3%82%B9%E3%83%AD%E3%83%83%E3%83%881%3C%2FSTRONG%3E%E5%AE%9B%E3%81%A6%E3%81%AE%E3%83%87%E3%83%BC%E3%82%BF%E3%81%8C%E3%80%81%E7%89%A9%E7%90%86%E7%9A%84%E3%81%AB%E3%81%AF%3CSTRONG%3E%E3%82%B9%E3%83%AD%E3%83%83%E3%83%882%E3%81%AE%3C%2FSTRONG%3E%E4%BD%8D%E7%BD%AE%E3%81%AB%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82%3C%2FDIV%3E%3C%2FLI%3E%3CLI%3E%3CDIV%20class%3D%22%22%3E%E6%8B%A1%E5%BC%B5%E3%81%99%E3%82%8B%E3%81%A8%E3%80%81%3CSTRONG%3E%E3%82%B9%E3%83%AD%E3%83%83%E3%83%887%3C%2FSTRONG%3E%E3%81%AB%E5%89%B2%E3%82%8A%E5%BD%93%E3%81%A6%E3%82%89%E3%82%8C%E3%81%9F%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AF%3CSTRONG%3E%E3%80%81%E6%AC%A1%E3%81%AE%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%81%AE%E3%82%B9%E3%83%AD%E3%83%83%E3%83%880%3C%2FSTRONG%3E%E3%81%AB%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%82%8B%EF%BC%88%E3%81%BE%E3%81%9F%E3%81%AF%E5%A4%B1%E3%82%8F%E3%82%8C%E3%82%8B%EF%BC%89%E3%80%82%3C%2FDIV%3E%3C%2FLI%3E%3CLI%3E%3CDIV%20class%3D%22%22%3E%E3%81%93%E3%81%AE%E3%81%9A%E3%82%8C%E3%81%AF%E3%82%B9%E3%83%88%E3%83%AA%E3%83%BC%E3%83%A0%E9%96%8B%E5%A7%8B%E5%BE%8C%E3%81%AF%3CSTRONG%3E%E5%AE%89%E5%AE%9A%E3%81%97%E3%81%A6%3C%2FSTRONG%3E%E3%81%8A%E3%82%8A%E3%80%81%E6%99%82%E9%96%93%E3%81%AE%E7%B5%8C%E9%81%8E%E3%81%A8%E3%81%A8%E3%82%82%E3%81%AB%E3%81%95%E3%82%89%E3%81%AB%E3%81%9A%E3%82%8C%E3%82%8B%E3%81%93%E3%81%A8%E3%81%AF%E3%81%AA%E3%81%8F%E3%80%81%E5%9B%BA%E5%AE%9A%E3%81%AE1%E3%82%B9%E3%83%AD%E3%83%83%E3%83%88%E3%82%AA%E3%83%95%E3%82%BB%E3%83%83%E3%83%88%E3%81%AE%E3%81%BE%E3%81%BE%E3%81%A7%E3%81%99%E3%80%82%3C%2FDIV%3E%3C%2FLI%3E%3C%2FUL%3E%3CH3%20id%3D%22toc-hId--1582035620%22%20id%3D%22toc-hId--1582013391%22%20id%3D%22toc-hId--1582013391%22%20id%3D%22toc-hId--1582013391%22%20id%3D%22toc-hId--1582013391%22%3E3.%20%E8%B5%B7%E5%8B%95%E6%99%82%E3%81%AE%E3%83%87%E3%83%BC%E3%82%BF%E4%B8%8D%E6%95%B4%E5%90%88%EF%BC%88%E6%96%AD%E7%B6%9A%E7%9A%84%E3%81%AB%E7%99%BA%E7%94%9F%EF%BC%89%3C%2FH3%3E%3CDIV%20class%3D%22%22%3E%E3%83%AD%E3%82%B8%E3%83%83%E3%82%AF%E3%82%A2%E3%83%8A%E3%83%A9%E3%82%A4%E3%82%B6%E3%81%AF%E6%99%82%E6%8A%98%E6%AC%A1%E3%81%AE%E3%82%88%E3%81%86%E3%81%AA%E3%81%93%E3%81%A8%E3%82%92%E8%A6%B3%E6%B8%AC%E3%81%99%E3%82%8B%E3%80%82%3C%2FDIV%3E%3CUL%3E%3CLI%3E%3CDIV%20class%3D%22%22%3E%3CSTRONG%3EWS%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E5%90%8C%E6%9C%9F%E3%83%91%E3%83%AB%E3%82%B9%3C%2FSTRONG%3E%E3%81%AE%E5%BE%8C%E3%80%81%20%3CSTRONG%3EDATA%E3%83%A9%E3%82%A4%E3%83%B3%E3%81%AF%E4%B8%80%E5%AE%9A%E6%9C%9F%E9%96%93%E4%BD%8E%E3%83%AC%E3%83%99%E3%83%AB%EF%BC%88%E3%81%99%E3%81%B9%E3%81%A6%E3%82%BC%E3%83%AD%EF%BC%89%E3%81%AE%E3%81%BE%E3%81%BE%E3%81%AB%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%3C%2FSTRONG%3E%3C%2FDIV%3E%3C%2FLI%3E%3CLI%3E%3CDIV%20class%3D%22%22%3E%3CSTRONG%3E1%EF%BD%9E3%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%81%AE%E7%A9%BA%E7%99%BD%E6%9C%9F%E9%96%93%3C%2FSTRONG%3E%E3%81%AE%E5%BE%8C%E3%80%81%E6%9C%89%E5%8A%B9%E3%81%AA%E3%83%86%E3%82%B9%E3%83%88%E3%83%87%E3%83%BC%E3%82%BF%E3%81%8C%E7%AA%81%E7%84%B6%E7%8F%BE%E3%82%8C%E3%82%8B%E3%80%82%3C%2FDIV%3E%3C%2FLI%3E%3CLI%3E%3CDIV%20class%3D%22%22%3E%E7%A9%BA%E7%99%BD%E6%9C%9F%E9%96%93%E3%81%8C%E7%B5%82%E4%BA%86%E3%81%97%E3%81%A6%E3%82%82%E3%80%81%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AF%3CSTRONG%3E%3CSTRONG%3E%E9%A0%85%E7%9B%AE2%E3%81%A7%E8%AA%AC%E6%98%8E%E3%81%97%E3%81%9F1%E3%82%B9%E3%83%AD%E3%83%83%E3%83%88%E3%81%AE%E3%82%AA%E3%83%95%E3%82%BB%E3%83%83%E3%83%88%E3%82%92%E4%BE%9D%E7%84%B6%E3%81%A8%E3%81%97%E3%81%A6%E7%A4%BA%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3CBR%20%2F%3E%3C%2FSTRONG%3E%3C%2FSTRONG%3E%20%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22Xanderwangx_0-1780141578772.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Xanderwangx_0-1780141578772.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Xanderwangx_0-1780141578772.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Xanderwangx_0-1780141578772.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Xanderwangx_0-1780141578772.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F387359i961FF6CD42CA85AD%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22Xanderwangx_0-1780141578772.png%22%20alt%3D%22Xanderwangx_0-1780141578772.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%20%3CBR%20%2F%3E%3C%2FDIV%3E%3C%2FLI%3E%3C%2FUL%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-2373820%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CLINGO-LABEL%3E%E3%82%AA%E3%83%BC%E3%83%87%E3%82%A3%E3%82%AA%EF%BC%88PDM%20%7C%20I2S%20%7C%20SAI%EF%BC%89%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2374134%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%202S%20TDM%20Master%3A%20Persistent%201-slot%20downward%20shift%20during%20continuous%20DMA%20streaming%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2374134%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E3%80%81%20%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F263296%22%20target%3D%22_blank%22%3E%40Xanderwangx%20%E3%81%95%E3%82%93%3C%2FA%3E%E3%80%81%3C%2FP%3E%0A%3CDIV%3E%E6%8A%95%E7%A8%BF%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%81%94%E3%81%96%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%E3%81%8A%E4%BD%BF%E3%81%84%E3%81%AENXP%E8%A3%BDMCU%E3%81%AE%E6%A9%9F%E7%A8%AE%E3%82%92%E6%95%99%E3%81%88%E3%81%A6%E3%81%84%E3%81%9F%E3%81%A0%E3%81%91%E3%81%BE%E3%81%99%E3%81%A7%E3%81%97%E3%82%87%E3%81%86%E3%81%8B%EF%BC%9F%E3%81%BE%E3%81%9F%E3%80%81%E5%BC%8A%E7%A4%BE%E3%81%AE%E8%A9%95%E4%BE%A1%E3%83%9C%E3%83%BC%E3%83%89%E3%82%92%E3%81%94%E5%88%A9%E7%94%A8%E3%81%A7%E3%81%99%E3%81%8B%E3%80%81%E3%81%9D%E3%82%8C%E3%81%A8%E3%82%82%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%E3%83%9C%E3%83%BC%E3%83%89%E3%82%92%E3%81%94%E5%88%A9%E7%94%A8%E3%81%A7%E3%81%99%E3%81%8B%EF%BC%9FSDK%E3%81%AE%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%81%8B%E3%80%81%E3%81%9D%E3%82%8C%E3%81%A8%E3%82%82%E7%8B%AC%E8%87%AA%E3%81%AE%E5%AE%9F%E8%A3%85%E3%81%AB%E5%9F%BA%E3%81%A5%E3%81%84%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%E3%82%82%E3%81%97%E3%81%9D%E3%82%8C%E3%81%8C%E3%81%94%E8%87%AA%E8%BA%AB%E3%81%A7%E4%BD%9C%E6%88%90%E3%81%95%E3%82%8C%E3%81%9F%E3%82%B3%E3%83%BC%E3%83%89%E3%81%A7%E3%81%82%E3%82%8C%E3%81%B0%E3%80%81%E3%81%95%E3%82%89%E3%81%AA%E3%82%8B%E5%88%86%E6%9E%90%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AB%E5%85%B1%E6%9C%89%E3%81%97%E3%81%A6%E3%81%84%E3%81%9F%E3%81%A0%E3%81%91%E3%81%BE%E3%81%99%E3%81%A7%E3%81%97%E3%82%87%E3%81%86%E3%81%8B%EF%BC%9F%3C%2FDIV%3E%0A%3CDIV%3EBR%3C%2FDIV%3E%0A%3CDIV%3E%E3%82%BB%E3%83%AC%E3%82%B9%E3%83%86%3C%2FDIV%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2381182%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%202S%20TDM%20Master%3A%20Persistent%201-slot%20downward%20shift%20during%20continuous%20DMA%20streaming%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2381182%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E3%80%81%20%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F263296%22%20target%3D%22_blank%22%3E%40Xanderwangx%20%E3%81%95%E3%82%93%3C%2FA%3E%E3%80%81%3C%2FP%3E%0A%3CDIV%3E%0A%3CP%3E%E3%81%8A%E8%BF%94%E4%BA%8B%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%81%94%E3%81%96%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%E3%81%9F%E3%81%A0%E3%81%97%E3%80%81RT%E3%83%95%E3%82%A1%E3%83%9F%E3%83%AA%E3%83%BC%E3%81%AF%E7%A7%81%E3%81%AE%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E7%AF%84%E5%9B%B2%E5%A4%96%E3%81%A7%E3%81%99%E3%80%82%E7%A7%81%E3%81%AF%E4%B8%BB%E3%81%ABMCX%E3%81%A8Kinetis%E3%83%95%E3%82%A1%E3%83%9F%E3%83%AA%E3%82%92%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%E3%81%BE%E3%81%9F%E3%80%81%E3%81%93%E3%81%A1%E3%82%89%E3%81%AFMCX%E3%83%81%E3%83%A3%E3%83%8D%E3%83%AB%E3%81%A7%E3%81%82%E3%82%8A%E3%80%81RT%E8%A3%BD%E5%93%81%E7%94%A8%E3%81%A7%E3%81%AF%E3%81%82%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%3C%2FP%3E%0A%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fi-MX-RT-Crossover-MCUs%2Fbd-p%2Fimxrt%22%20target%3D%22_blank%22%3Ei.MX%20RT%20%E3%82%AF%E3%83%AD%E3%82%B9%E3%82%AA%E3%83%BC%E3%83%90%E3%83%BCMCU%20-%20NXP%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%83%86%E3%82%A3%3C%2FA%3E%E3%81%AB%E6%96%B0%E3%81%97%E3%81%84%E6%8A%95%E7%A8%BF%E3%82%92%E4%BD%9C%E6%88%90%E3%81%97%E3%81%A6%E3%81%84%E3%81%9F%E3%81%A0%E3%81%91%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9FRT%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E3%83%81%E3%83%BC%E3%83%A0%E3%81%8C%E3%81%9D%E3%81%A1%E3%82%89%E3%81%A7%E3%81%8A%E6%89%8B%E4%BC%9D%E3%81%84%E3%81%84%E3%81%9F%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%0A%3CP%3EBR%3C%2FP%3E%0A%3CP%3E%E3%82%BB%E3%83%AC%E3%82%B9%E3%83%86%3C%2FP%3E%0A%3C%2FDIV%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2381179%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%202S%20TDM%20Master%3A%20Persistent%201-slot%20downward%20shift%20during%20continuous%20DMA%20streaming%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2381179%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%3CSPAN%3E%3CSTRONG%3EMCU%3C%2FSTRONG%3E%20%EF%BC%9AMIMXRT685-EVK%EF%BC%88i.MX%20RT685%EF%BC%89%3CBR%20%2F%3E%3CSTRONG%3E%20%E5%9F%BA%E6%9D%BF%3C%2FSTRONG%3E%20%EF%BC%9ART685%E3%82%92%E3%83%99%E3%83%BC%E3%82%B9%E3%81%AB%E3%81%97%E3%81%9F%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%E8%A3%BD%E5%93%81%E5%9F%BA%E6%9D%BF%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3E%20%E7%A7%81%E3%81%AF%3C%2FSPAN%3E%3CSPAN%3E%20ping-pong%E3%83%90%E3%83%83%E3%83%95%E3%82%A1%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%9F%3C%2FSPAN%3E%3CSTRONG%3E%20%E3%83%AB%E3%83%BC%E3%83%97DMA%E3%83%A2%E3%83%BC%E3%83%89%20%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82DMA%E3%81%AF%3C%2FSTRONG%3E%20%E3%80%812%E3%81%A4%E3%81%AE%E3%83%87%E3%82%A3%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%82%BF%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6I2S_TransferSendLoopDMA()%E3%81%A7%E8%A8%AD%E5%AE%9A%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82DMA%E3%82%B3%E3%83%BC%E3%83%AB%E3%83%90%E3%83%83%E3%82%AF%E5%86%85%E3%81%A7%E3%80%81%E6%AC%A1%E3%81%AE%E3%83%90%E3%83%83%E3%83%95%E3%82%A1%E3%81%AB%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%82%80%E3%81%A8%E3%80%81%E3%83%AB%E3%83%BC%E3%83%97%E3%81%8C%E8%87%AA%E5%8B%95%E7%9A%84%E3%81%AB%E7%B6%99%E7%B6%9A%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82%3CSPAN%3E%3CBR%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-c%22%3E%3CCODE%20translate%3D%22no%22%3Evoid%20I2S1_TDM_Init(void)%0A%7B%0A%20%20%20%20I2S_Type%20*base%20%3D%20I2S1%3B%0A%0A%20%20%20%20%2F*%20I2S%20Configuration%20*%2F%0A%20%20%20%20i2s_config_t%20cfg%3B%0A%20%20%20%20I2S_TxGetDefaultConfig(%26amp%3Bcfg)%3B%0A%20%20%20%20cfg.masterSlave%20%3D%20kI2S_MasterSlaveNormalMaster%3B%0A%20%20%20%20cfg.mode%20%20%20%20%20%20%20%20%3D%20kI2S_ModeDspWsShort%3B%20%20%20%20%20%2F*%20TDM%20%3D%20DSP%20mode%20*%2F%0A%20%20%20%20cfg.divider%20%20%20%20%20%3D%2024576000%20%2F%20(TDM_SAMPLE_RATE%20*%20TDM_SLOT_NUM%20*%20TDM_SLOT_WIDTH)%3B%0A%20%20%20%20cfg.dataLength%20%20%3D%20TDM_SLOT_WIDTH%3B%20%20%20%20%20%20%20%20%20%20%2F*%2032-bit%20*%2F%0A%20%20%20%20cfg.frameLength%20%3D%20TDM_FRAME_LENGTH%3B%20%20%20%20%20%20%20%20%2F*%20256-bit%20*%2F%0A%20%20%20%20cfg.oneChannel%20%20%3D%20false%3B%0A%20%20%20%20cfg.position%20%20%20%20%3D%200%3B%0A%20%20%20%20cfg.wsPol%20%20%20%20%20%20%20%3D%20true%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F*%20DSP%20A%20or%20B%20*%2F%0A%20%20%20%20I2S_TxInit(base%2C%20%26amp%3Bcfg)%3B%0A%0A%20%20%20%20%2F*%20Enable%208%20slots%20(Primary%20%2B%203%20Secondary%20Channels)%20*%2F%0A%20%20%20%20%2F*%20Note%3A%20Using%204%20channels%20to%20cover%208%20slots%20with%2032-bit%20data%20*%2F%0A%20%20%20%20I2S_EnableSecondaryChannel(base%2C%20kI2S_SecondaryChannel1%2C%20false%2C%2032%20*%202)%3B%0A%20%20%20%20I2S_EnableSecondaryChannel(base%2C%20kI2S_SecondaryChannel2%2C%20false%2C%2032%20*%204)%3B%0A%20%20%20%20I2S_EnableSecondaryChannel(base%2C%20kI2S_SecondaryChannel3%2C%20false%2C%2032%20*%206)%3B%0A%0A%20%20%20%20%2F*%20DMA%20Loop%20Transfer%20Setup%20*%2F%0A%20%20%20%20DMA_Init(DMA0)%3B%0A%20%20%20%20DMA_EnableChannel(DMA0%2C%20I2S_TX_DMA_CH)%3B%0A%20%20%20%20DMA_SetChannelPriority(DMA0%2C%20I2S_TX_DMA_CH%2C%20kDMA_ChannelPriority3)%3B%0A%0A%20%20%20%20DMA_CreateHandle(%26amp%3Bdma_handle%2C%20DMA0%2C%20I2S_TX_DMA_CH)%3B%0A%20%20%20%20I2S_TxTransferCreateHandleDMA(base%2C%20%26amp%3Bi2s_handle%2C%20%26amp%3Bdma_handle%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20I2S1_Callback%2C%20tdm_xfer)%3B%0A%20%20%20%20I2S_TransferInstallLoopDMADescriptorMemory(%26amp%3Bi2s_handle%2C%20tdm_desc%2C%202)%3B%0A%0A%20%20%20%20if%20(I2S_TransferSendLoopDMA(base%2C%20%26amp%3Bi2s_handle%2C%20%26amp%3Btdm_xfer%5B0%5D%2C%202)%0A%20%20%20%20%20%20%20%20%20%20%20%20!%3D%20kStatus_Success)%20%7B%0A%20%20%20%20%20%20%20%20while%20(1)%3B%20%20%2F*%20Fails%20if%20TDM_FRAMES%20*%208%20%26gt%3B%20DMA_MAX_TRANSFER_COUNT(1024)%20*%2F%0A%20%20%20%20%7D%0A%7D%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%3CSPAN%3E%E3%82%B9%E3%83%AD%E3%83%83%E3%83%88%E3%81%AE%E3%82%AA%E3%83%95%E3%82%BB%E3%83%83%E3%83%88%E3%81%AF%E9%9B%BB%E6%BA%90%E3%82%B5%E3%82%A4%E3%82%AF%E3%83%AB%E3%81%94%E3%81%A8%E3%81%AB%3CSTRONG%3E%E3%83%A9%E3%83%B3%E3%83%80%E3%83%A0%3C%2FSTRONG%3E%E3%81%AB%E7%99%BA%E7%94%9F%E3%81%97%E3%80%81%E5%9B%BA%E5%AE%9A%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82DMA%E8%BB%A2%E9%80%81%E3%81%AE%E5%89%8D%E5%BE%8C%E3%81%A7%E5%89%B2%E3%82%8A%E8%BE%BC%E3%81%BF%E3%82%92%E7%84%A1%E5%8A%B9%E3%81%AB%E3%81%97%E3%81%A6%E5%90%8C%E6%9C%9F%E3%82%92%E5%BC%B7%E5%88%B6%E3%81%97%E3%82%88%E3%81%86%E3%81%A8%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%E3%81%8C%E3%80%81%E3%82%B9%E3%83%AD%E3%83%83%E3%83%88%E3%81%AE%E3%81%9A%E3%82%8C%E3%81%AF%E4%BE%9D%E7%84%B6%E3%81%A8%E3%81%97%E3%81%A6%E7%99%BA%E7%94%9F%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3CBR%20%2F%3EI2S_TransferSendLoopDMA()%E3%81%AF%E3%80%81RT685%E4%B8%8A%E3%81%A7%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%82%A2%E3%83%A9%E3%82%A4%E3%83%B3%E3%83%A1%E3%83%B3%E3%83%88%E3%81%95%E3%82%8C%E3%81%9FDMA%E8%B5%B7%E5%8B%95%E3%82%92%E4%BF%9D%E8%A8%BC%E3%81%97%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%E3%81%9D%E3%81%86%E3%81%A7%E3%81%AA%E3%81%84%E5%A0%B4%E5%90%88%E3%80%81WS%E5%A2%83%E7%95%8C%E3%81%AB%E5%BC%B7%E5%88%B6%E7%9A%84%E3%81%AB%E4%BD%8D%E7%BD%AE%E5%90%88%E3%82%8F%E3%81%9B%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%81%A9%E3%81%86%E3%81%99%E3%82%8C%E3%81%B0%E3%82%88%E3%81%84%E3%81%A7%E3%81%97%E3%82%87%E3%81%86%E3%81%8B%EF%BC%9F%3CBR%20%2F%3E%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fc-pwmxy87654%2Fi.MX-RT600%2Fpd-p%2Fi.MX-RT600%22%20class%3D%22lia-product-mention%22%20data-product%3D%22522-1%22%20target%3D%22_blank%22%3Ei.MX-RT600%3C%2FA%3E%3C%2FSPAN%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E