<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic 2S TDM Master: Persistent 1-slot downward shift during continuous DMA streaming in MCX Microcontrollers</title>
    <link>https://community.nxp.com/t5/MCX-Microcontrollers/2S-TDM-Master-Persistent-1-slot-downward-shift-during-continuous/m-p/2373820#M5458</link>
    <description>&lt;H3&gt;1. Test Configuration&lt;/H3&gt;&lt;UL&gt;&lt;LI&gt;&lt;DIV class=""&gt;I2S configured as &lt;STRONG&gt;TDM Master&lt;/STRONG&gt;, DSP mode with short WS&lt;/DIV&gt;&lt;/LI&gt;&lt;LI&gt;&lt;DIV class=""&gt;&lt;STRONG&gt;8 slots per frame&lt;/STRONG&gt;, 32-bit per slot, frame length = 256 bit&lt;/DIV&gt;&lt;/LI&gt;&lt;LI&gt;&lt;DIV class=""&gt;Using &lt;STRONG&gt;fsl_i2s_dma&lt;/STRONG&gt; driver&lt;/DIV&gt;&lt;/LI&gt;&lt;LI&gt;&lt;DIV class=""&gt;&lt;STRONG&gt;Dual-buffer ping-pong&lt;/STRONG&gt; transfer&lt;/DIV&gt;&lt;/LI&gt;&lt;LI&gt;&lt;DIV class=""&gt;FreeRTOS task waits on a semaphore from the DMA callback, fills the buffer, then calls I2S_TxTransferSendDMA to re-submit&lt;/DIV&gt;&lt;/LI&gt;&lt;LI&gt;&lt;DIV class=""&gt;Test data pattern: fixed 0x000Axxxx (upper 16 bits = 0x000A, lower 16 bits contain slot index and sample sequence number)&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;H3&gt;2. Persistent One-Slot Downward Shift (100% Reproducible)&lt;/H3&gt;&lt;DIV class=""&gt;Logic analyzer captures show:&lt;/DIV&gt;&lt;UL&gt;&lt;LI&gt;&lt;DIV class=""&gt;Transmitted data is &lt;STRONG&gt;consistently shifted down by exactly one slot&lt;/STRONG&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;LI&gt;&lt;DIV class=""&gt;Data intended for &lt;STRONG&gt;Slot 0&lt;/STRONG&gt; appears in the physical &lt;STRONG&gt;Slot 1&lt;/STRONG&gt; position&lt;/DIV&gt;&lt;/LI&gt;&lt;LI&gt;&lt;DIV class=""&gt;Data intended for &lt;STRONG&gt;Slot 1&lt;/STRONG&gt; appears in the physical &lt;STRONG&gt;Slot 2&lt;/STRONG&gt; position&lt;/DIV&gt;&lt;/LI&gt;&lt;LI&gt;&lt;DIV class=""&gt;By extension, data intended for &lt;STRONG&gt;Slot 7&lt;/STRONG&gt; appears in &lt;STRONG&gt;Slot 0 of the next frame&lt;/STRONG&gt; (or is lost)&lt;/DIV&gt;&lt;/LI&gt;&lt;LI&gt;&lt;DIV class=""&gt;This shift is &lt;STRONG&gt;stable&lt;/STRONG&gt; after the stream starts; it does not drift further over time and remains a fixed 1-slot offset&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;H3&gt;3. Startup Data Misalignment (Intermittent)&lt;/H3&gt;&lt;DIV class=""&gt;The logic analyzer occasionally observes:&lt;/DIV&gt;&lt;UL&gt;&lt;LI&gt;&lt;DIV class=""&gt;After the &lt;STRONG&gt;WS frame sync pulse&lt;/STRONG&gt;, the &lt;STRONG&gt;DATA line remains at low level (all zeros)&lt;/STRONG&gt; for a period&lt;/DIV&gt;&lt;/LI&gt;&lt;LI&gt;&lt;DIV class=""&gt;After a &lt;STRONG&gt;blank interval of 1~3 frames&lt;/STRONG&gt;, valid test data suddenly appears&lt;/DIV&gt;&lt;/LI&gt;&lt;LI&gt;&lt;DIV class=""&gt;Once the blank interval ends, the data still exhibits the &lt;STRONG&gt;&lt;STRONG&gt;1-slot offset described in item 2&lt;BR /&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Xanderwangx_0-1780141578772.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/387359i961FF6CD42CA85AD/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Xanderwangx_0-1780141578772.png" alt="Xanderwangx_0-1780141578772.png" /&gt;&lt;/span&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;</description>
    <pubDate>Sat, 30 May 2026 11:46:49 GMT</pubDate>
    <dc:creator>Xanderwangx</dc:creator>
    <dc:date>2026-05-30T11:46:49Z</dc:date>
    <item>
      <title>2S TDM Master: Persistent 1-slot downward shift during continuous DMA streaming</title>
      <link>https://community.nxp.com/t5/MCX-Microcontrollers/2S-TDM-Master-Persistent-1-slot-downward-shift-during-continuous/m-p/2373820#M5458</link>
      <description>&lt;H3&gt;1. Test Configuration&lt;/H3&gt;&lt;UL&gt;&lt;LI&gt;&lt;DIV class=""&gt;I2S configured as &lt;STRONG&gt;TDM Master&lt;/STRONG&gt;, DSP mode with short WS&lt;/DIV&gt;&lt;/LI&gt;&lt;LI&gt;&lt;DIV class=""&gt;&lt;STRONG&gt;8 slots per frame&lt;/STRONG&gt;, 32-bit per slot, frame length = 256 bit&lt;/DIV&gt;&lt;/LI&gt;&lt;LI&gt;&lt;DIV class=""&gt;Using &lt;STRONG&gt;fsl_i2s_dma&lt;/STRONG&gt; driver&lt;/DIV&gt;&lt;/LI&gt;&lt;LI&gt;&lt;DIV class=""&gt;&lt;STRONG&gt;Dual-buffer ping-pong&lt;/STRONG&gt; transfer&lt;/DIV&gt;&lt;/LI&gt;&lt;LI&gt;&lt;DIV class=""&gt;FreeRTOS task waits on a semaphore from the DMA callback, fills the buffer, then calls I2S_TxTransferSendDMA to re-submit&lt;/DIV&gt;&lt;/LI&gt;&lt;LI&gt;&lt;DIV class=""&gt;Test data pattern: fixed 0x000Axxxx (upper 16 bits = 0x000A, lower 16 bits contain slot index and sample sequence number)&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;H3&gt;2. Persistent One-Slot Downward Shift (100% Reproducible)&lt;/H3&gt;&lt;DIV class=""&gt;Logic analyzer captures show:&lt;/DIV&gt;&lt;UL&gt;&lt;LI&gt;&lt;DIV class=""&gt;Transmitted data is &lt;STRONG&gt;consistently shifted down by exactly one slot&lt;/STRONG&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;LI&gt;&lt;DIV class=""&gt;Data intended for &lt;STRONG&gt;Slot 0&lt;/STRONG&gt; appears in the physical &lt;STRONG&gt;Slot 1&lt;/STRONG&gt; position&lt;/DIV&gt;&lt;/LI&gt;&lt;LI&gt;&lt;DIV class=""&gt;Data intended for &lt;STRONG&gt;Slot 1&lt;/STRONG&gt; appears in the physical &lt;STRONG&gt;Slot 2&lt;/STRONG&gt; position&lt;/DIV&gt;&lt;/LI&gt;&lt;LI&gt;&lt;DIV class=""&gt;By extension, data intended for &lt;STRONG&gt;Slot 7&lt;/STRONG&gt; appears in &lt;STRONG&gt;Slot 0 of the next frame&lt;/STRONG&gt; (or is lost)&lt;/DIV&gt;&lt;/LI&gt;&lt;LI&gt;&lt;DIV class=""&gt;This shift is &lt;STRONG&gt;stable&lt;/STRONG&gt; after the stream starts; it does not drift further over time and remains a fixed 1-slot offset&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;H3&gt;3. Startup Data Misalignment (Intermittent)&lt;/H3&gt;&lt;DIV class=""&gt;The logic analyzer occasionally observes:&lt;/DIV&gt;&lt;UL&gt;&lt;LI&gt;&lt;DIV class=""&gt;After the &lt;STRONG&gt;WS frame sync pulse&lt;/STRONG&gt;, the &lt;STRONG&gt;DATA line remains at low level (all zeros)&lt;/STRONG&gt; for a period&lt;/DIV&gt;&lt;/LI&gt;&lt;LI&gt;&lt;DIV class=""&gt;After a &lt;STRONG&gt;blank interval of 1~3 frames&lt;/STRONG&gt;, valid test data suddenly appears&lt;/DIV&gt;&lt;/LI&gt;&lt;LI&gt;&lt;DIV class=""&gt;Once the blank interval ends, the data still exhibits the &lt;STRONG&gt;&lt;STRONG&gt;1-slot offset described in item 2&lt;BR /&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Xanderwangx_0-1780141578772.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/387359i961FF6CD42CA85AD/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Xanderwangx_0-1780141578772.png" alt="Xanderwangx_0-1780141578772.png" /&gt;&lt;/span&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;</description>
      <pubDate>Sat, 30 May 2026 11:46:49 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MCX-Microcontrollers/2S-TDM-Master-Persistent-1-slot-downward-shift-during-continuous/m-p/2373820#M5458</guid>
      <dc:creator>Xanderwangx</dc:creator>
      <dc:date>2026-05-30T11:46:49Z</dc:date>
    </item>
    <item>
      <title>Re: 2S TDM Master: Persistent 1-slot downward shift during continuous DMA streaming</title>
      <link>https://community.nxp.com/t5/MCX-Microcontrollers/2S-TDM-Master-Persistent-1-slot-downward-shift-during-continuous/m-p/2374134#M5460</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/263296"&gt;@Xanderwangx&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;DIV&gt;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?&lt;/DIV&gt;
&lt;DIV&gt;BR&lt;/DIV&gt;
&lt;DIV&gt;Celeste&lt;/DIV&gt;</description>
      <pubDate>Mon, 01 Jun 2026 02:43:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MCX-Microcontrollers/2S-TDM-Master-Persistent-1-slot-downward-shift-during-continuous/m-p/2374134#M5460</guid>
      <dc:creator>Celeste_Liu</dc:creator>
      <dc:date>2026-06-01T02:43:56Z</dc:date>
    </item>
  </channel>
</rss>

