<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://ez.analog.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Q&amp;amp;A - Recent Threads</title><link>https://ez.analog.com/dsp/sharc-processors/adsp-2156x/f/q-a</link><description /><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><lastBuildDate>Sat, 15 Aug 2026 02:39:47 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://ez.analog.com/dsp/sharc-processors/adsp-2156x/f/q-a" /><item><title>Relationship Between SCLK1 and the S/PDIF Receiver on ADSP-21562 at 192 kHz</title><link>https://ez.analog.com/thread/605678?ContentTypeID=0</link><pubDate>Sat, 15 Aug 2026 02:39:47 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:1c1f68ea-57e5-4e42-864b-b37331358e60</guid><dc:creator>Kasper Thomsen</dc:creator><slash:comments>0</slash:comments><comments>https://ez.analog.com/thread/605678?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-2156x/f/q-a/605678/relationship-between-sclk1-and-the-s-pdif-receiver-on-adsp-21562-at-192-khz/rss?ContentTypeId=0</wfw:commentRss><description>&lt;div&gt;
&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I&amp;#39;m working with an &lt;strong&gt;ADSP-21562&lt;/strong&gt; and using the internal &lt;strong&gt;S/PDIF receiver&lt;/strong&gt; to receive audio. I&amp;#39;m trying to better understand the requirements for &lt;strong&gt;SCLK1&lt;/strong&gt; when operating at higher sample rates.&lt;/p&gt;
&lt;p&gt;My questions are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;What is the exact relationship between &lt;strong&gt;SCLK1&lt;/strong&gt; and the incoming &lt;strong&gt;S/PDIF stream&lt;/strong&gt;?&lt;/li&gt;
&lt;li&gt;What are the requirements for the &lt;strong&gt;SCLK1 frequency&lt;/strong&gt; to allow the S/PDIF receiver to reliably lock to and receive a &lt;strong&gt;192 kHz&lt;/strong&gt; audio stream?&lt;/li&gt;
&lt;li&gt;Does SCLK1 need to meet a specific minimum frequency relative to the sample rate or recovered bit clock?&lt;/li&gt;
&lt;li&gt;Is there a recommended safety margin above the minimum requirement?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I&amp;#39;ve reviewed the Hardware Reference Manual, but I&amp;#39;m still not clear on how the internal S/PDIF receiver depends on SCLK1 and how to determine the required SCLK1 frequency for stable operation at 192 kHz.&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;One additional observation from my testing is that I experience S/PDIF lock issues at 192 kHz when &lt;strong&gt;SCLK1 = 200 MHz&lt;/strong&gt;, while operation stable when &lt;strong&gt;SCLK1 = 250 MHz&lt;/strong&gt;. This suggests there may be a practical minimum SCLK1 requirement beyond what I have been able to identify in the documentation.&lt;/p&gt;
&lt;p&gt;Has anyone encountered similar behavior or found any related guidance from Analog Devices?&lt;/p&gt;
&lt;p&gt;Thanks in advance!&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>200R DDR3 memory clock termination</title><link>https://ez.analog.com/thread/605539?ContentTypeID=0</link><pubDate>Wed, 05 Aug 2026 14:18:43 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:9fb55ee7-39a9-4796-a6c9-54217d3ed457</guid><dc:creator>FlorianK</dc:creator><slash:comments>2</slash:comments><comments>https://ez.analog.com/thread/605539?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-2156x/f/q-a/605539/200r-ddr3-memory-clock-termination/rss?ContentTypeId=0</wfw:commentRss><description>&lt;div&gt;
&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;we are currently working on a hardware design based on the ADSP-21569. The EV-21569-SOM evaluation board has been a great help in this regard.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;One thing I don&amp;#39;t fully understand is the 200 &amp;Omega; differential termination resistor between &lt;strong&gt;DMC0_CK&lt;/strong&gt; and &lt;strong&gt;DMC0_CK_N&lt;/strong&gt;. My understanding is that the DMC interface provides on-die termination for the differential signals. If so, could you explain the purpose of the external termination resistor?&lt;/div&gt;
&lt;br /&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;br /&gt; Florian&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://ez.analog.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/863/pastedimage1785939058797v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thanks and best regards,&lt;/p&gt;
&lt;p&gt;Florian&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>How to configure external clock for SPORT interface as described to get 62.5Mhz for receive</title><link>https://ez.analog.com/thread/604784?ContentTypeID=0</link><pubDate>Wed, 08 Jul 2026 14:03:08 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:55169591-fdaf-47f9-8b37-5e6619fe6a35</guid><dc:creator>joelleoj</dc:creator><slash:comments>4</slash:comments><comments>https://ez.analog.com/thread/604784?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-2156x/f/q-a/604784/how-to-configure-external-clock-for-sport-interface-as-described-to-get-62-5mhz-for-receive/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I plan to use adsp-2156x series of microcontrollers and i want to know what is meant my using&amp;nbsp; SPORT with external clock and does using PCG count as an external clock in this case. As per the datasheet spec SPORT can receive data with external clock up to 62.5 MHz&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Boot Mode to be used to program the external flash</title><link>https://ez.analog.com/thread/604607?ContentTypeID=0</link><pubDate>Tue, 07 Jul 2026 13:33:41 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:2d35fdd4-4d98-4e8f-8fa5-46ba414430c4</guid><dc:creator>tavinoth</dc:creator><slash:comments>1</slash:comments><comments>https://ez.analog.com/thread/604607?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-2156x/f/q-a/604607/boot-mode-to-be-used-to-program-the-external-flash/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p class="isSelectedEnd"&gt;&lt;span&gt;I am using the EV-21569-SOM and an ICE-2000 emulator for programming.&lt;/span&gt;&lt;/p&gt;
&lt;p class="isSelectedEnd"&gt;&lt;span&gt;My goal is to program the external flash using the emulator and then boot the DSP from the external flash.&lt;/span&gt;&lt;/p&gt;
&lt;p class="isSelectedEnd"&gt;&lt;span&gt;Do we need to keep the DSP in No Boot/Custom Boot mode (BMODE&lt;span class="text-token-text-primary cursor-text rounded-sm" data-placeholder-token="true"&gt;[2:0]&lt;/span&gt; = 000) while programming the external flash using the ICE-2000 emulator, and then change BMODE to 001 for booting from the external flash?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Could you please confirm if this is the recommended procedure?&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Schematic review.</title><link>https://ez.analog.com/thread/604587?ContentTypeID=0</link><pubDate>Fri, 05 Jun 2026 03:43:11 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:05f09b72-1529-4745-801d-58ee7203246d</guid><dc:creator>LeverBridge</dc:creator><slash:comments>5</slash:comments><comments>https://ez.analog.com/thread/604587?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-2156x/f/q-a/604587/schematic-review/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi everyone,&lt;/p&gt;
&lt;p&gt;I&amp;#39;m hoping someone with experience across DSP, analog audio, and power design might be willing to cast an eye over my schematic. I&amp;#39;d be grateful for any feedback on errors, oversights, or improvements across all three sheets.&lt;/p&gt;
&lt;p&gt;---&lt;/p&gt;
&lt;p&gt;Page 1 &amp;mdash; Analog Input &amp;amp; Codec&lt;/p&gt;
&lt;p&gt;This page covers the input preamp stage through to the ADAU1761BCPZ codec. The preamp is built around an OPA134 op-amp with an MMBFJ113 JFET, feeding the ADAU1761 LINP pin single-ended, with LINN tied to CM. The CM pin has 10&amp;micro;F and 22&amp;micro;F in parallel to GND (32&amp;micro;F total). MONOOUT is used as the single output, via a 10&amp;micro;F capacitor and 100&amp;Omega; series resistor to the output stage. The codec is configured via I&amp;sup2;C and clocked via MCLK. ADDR0 and ADDR1 are both tied to GND giving address 0x38. IOVDD, AVDD, and DVDDOUT are all individually decoupled.&lt;/p&gt;
&lt;p&gt;---&lt;/p&gt;
&lt;p&gt;Page 2 &amp;mdash; Power Section&lt;/p&gt;
&lt;p&gt;Three rails generated from a 9V DC input:&lt;/p&gt;
&lt;p&gt;- 3.3V: ADP7104ARDZ-3.3-R7 LDO. Input decoupled with 100nF, 4.7&amp;micro;F, and 10&amp;micro;F. Output decoupled with 100nF and 10&amp;micro;F.&lt;br /&gt;- 1.1V: TPS62130A buck converter fed from 3.3V. Feedback resistor R24 (37.4k&amp;Omega;) sets the output. L1 is 2.2&amp;micro;H. DEF pin tied to GND. FSW pin tied to GND (400kHz switching frequency). Output decoupled with 2.2&amp;micro;F and 22&amp;micro;F.&lt;br /&gt;- 1.8V: AP2112K-1.8 LDO fed from 3.3V. EN tied to VIN. Input and output each decoupled with 1&amp;micro;F.&lt;/p&gt;
&lt;p&gt;The&amp;nbsp;clock is an ASV-24.576MHz active oscillator. EN tied to VDD (always enabled). Output fed via 22&amp;Omega; to the DSP CLKIN net and via a separate 22&amp;Omega; to the codec MCLK pin. Oscillator VDD decoupled with 100nF.&lt;/p&gt;
&lt;p&gt;---&lt;/p&gt;
&lt;p&gt;Page 3 &amp;mdash; ADSP-21565 DSP Core&lt;/p&gt;
&lt;p&gt;The DSP is the ADSP-21565BSWZ10 in 120-pin LQFP_EP package.&lt;/p&gt;
&lt;p&gt;Power:&lt;br /&gt;- VDD_INT (1.1V): 100nF per pin, bulk 10&amp;micro;F&lt;br /&gt;- VDD_EXT (3.3V): 100nF per pin&lt;br /&gt;- VDD_REF (1.8V): 10nF + 100nF per pin&lt;br /&gt;- VDD_ANA (1.8V, Pin 85): 100nF + 10&amp;micro;F&lt;br /&gt;- Exposed pad (Pin 121): GND&lt;/p&gt;
&lt;p&gt;Boot mode: SYS_BMODE0 (Pin 105) pulled high via 10k&amp;Omega;, SYS_BMODE1 (Pin 106) pulled low via 10k&amp;Omega; &amp;mdash; BMODE 01 = SPI&amp;nbsp;boot.&lt;/p&gt;
&lt;p&gt;Reset: SYS_HWRST (Pin 104) pulled high via 10k&amp;Omega; with 100nF to GND.&lt;/p&gt;
&lt;p&gt;Audio interface (DAI1, I&amp;sup2;S): DAI1_PIN01/02/03/08 (Pins 77/76/75/70) connecting to ADAU1761 BCLK, LRCLK, ADC_SDATA, and DAC_SDATA respectively, each with 22&amp;Omega; series resistors.&lt;/p&gt;
&lt;p&gt;SPI flash: W25Q16JVSSQ connected on DAI1_PIN04&amp;ndash;07 (Pins 74/73/72/71). WP and HOLD pulled high via 10k&amp;Omega; to 3.3V.&lt;/p&gt;
&lt;p&gt;I&amp;sup2;C / TWI0: PA_10 (Pin 28) = SCL, PA_11 (Pin 34) = SDA. 2k&amp;Omega; pull-ups to 3.3V on both lines.&lt;/p&gt;
&lt;p&gt;JTAG: ICE-1000 compatible 14-pin header. TDI/TCK/TMS direct, TDO via 22&amp;Omega;, TRST via 4.7k&amp;Omega; pull-down to GND. VDDIO on header pulled up via 4.7k&amp;Omega; to 3.3V. EMU left unconnected.&lt;/p&gt;
&lt;p&gt;GPIO LEDs: Five LEDs on PA_00&amp;ndash;PA_04 (Pins 14/15/16/18/19), each with a series current limiting resistor.&lt;/p&gt;
&lt;p&gt;HADC pins (81&amp;ndash;84): All tied directly to GND, unused.&lt;/p&gt;
&lt;p&gt;---&lt;/p&gt;
&lt;p&gt;My specific concerns are:&lt;br /&gt;1. Power sequencing &amp;mdash; does the ADSP-21565 have hard sequencing requirements between the 1.1V, 1.8V, and 3.3V rails, and does a passive approach satisfy them?&lt;br /&gt;2. Are there any issues with the single-ended preamp into the ADAU1761 differential input as described above?&lt;br /&gt;3. Any general errors or omissions I may have missed across any of the three pages.&lt;/p&gt;
&lt;p&gt;I&amp;#39;m happy to share the schematic PDF with anyone willing to take a look. Thank you in advance.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Power rails</title><link>https://ez.analog.com/thread/604579?ContentTypeID=0</link><pubDate>Tue, 02 Jun 2026 15:58:49 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:f8a224c4-8f9e-407c-b9b6-f9a728056728</guid><dc:creator>LeverBridge</dc:creator><slash:comments>4</slash:comments><comments>https://ez.analog.com/thread/604579?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-2156x/f/q-a/604579/power-rails/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;&amp;quot;I&amp;#39;m designing a board around the ADSP-21565 with three power rails &amp;mdash; 3.3V (ADP7104), 1.8V (AP2112K), and 1.1V (TPS62130A). The 1.8V feeds VDD_REF and VDD_ANA, the 1.1V feeds VDD_INT, and 3.3V feeds VDD_EXT. Does the ADSP-21565 have any hard power sequencing requirements between these rails, and if so, does a passive RC-based sequencing approach satisfy them or is active sequencing required?&amp;quot;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;regards,&lt;/p&gt;
&lt;p&gt;Mark.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>DMC pin remap</title><link>https://ez.analog.com/thread/604273?ContentTypeID=0</link><pubDate>Mon, 11 May 2026 04:31:59 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:28e1e504-29e7-427c-96cb-9dd5f2eb83fd</guid><dc:creator>David_Ashman</dc:creator><slash:comments>6</slash:comments><comments>https://ez.analog.com/thread/604273?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-2156x/f/q-a/604273/dmc-pin-remap/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi -&lt;/p&gt;
&lt;p&gt;I&amp;#39;m laying out a custom PCB with a 21569 and DDR3L memory.&amp;nbsp; Using the ADSP-21569 SOM evaluation board layout as a guide, I see that the 16 bit data bus is bit-swapped in order to provide better routing paths and equidistant lengths.&amp;nbsp; I&amp;#39;m struggling to find the registers used to provide lane/bit remapping to support this.&amp;nbsp; Can anyone point me to that configuration section of code in the board support package?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thanks in advance!&lt;/p&gt;
&lt;p&gt;Dave&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>I want to extend the timer</title><link>https://ez.analog.com/thread/604251?ContentTypeID=0</link><pubDate>Thu, 07 May 2026 10:23:50 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:ad0d3dfb-1800-48eb-96d8-c3ba52a3f2ab</guid><dc:creator>mako2771</dc:creator><slash:comments>1</slash:comments><comments>https://ez.analog.com/thread/604251?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-2156x/f/q-a/604251/i-want-to-extend-the-timer/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi.&lt;/p&gt;
&lt;p&gt;I am waiting for the filter to settle using a timer. While the timer was running, a change occurred in the filter. I want to reset the timer to allow time for the modified filter to settle.&lt;/p&gt;
&lt;p&gt;How can I extend the duration of a timer while it is running?&lt;/p&gt;
&lt;p&gt;What should I do?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#39;m starting Timer like this.&lt;/p&gt;
&lt;p&gt;*pREG_TIMER0_TMR1_WID=TIMER_WIDTH_10*WAITCOEF_GEQ[0];&lt;br /&gt; *pREG_TIMER0_RUN=((1 &amp;lt;&amp;lt; BITP_TIMER_RUN_TMR01) &amp;amp; BITM_TIMER_RUN_TMR01); // Enable the timer&lt;/p&gt;
&lt;p&gt;Here are the timer settings&lt;/p&gt;
&lt;p&gt;// Open the timer&lt;br /&gt; adi_tmr_Open(GEQ_TIMER_NUM, TimerMemory01, ADI_TMR_MEMORY, TimerHandler_GEQ, NULL, &amp;amp;ghTimer01);&lt;br /&gt; // Set the mode to PWM OUT&lt;br /&gt; adi_tmr_SetMode(ghTimer01, ADI_TMR_MODE_SINGLE_PWMOUT);&lt;br /&gt; // Set the timer width&lt;br /&gt; adi_tmr_SetWidth(ghTimer01, TIMER_WIDTH_10);&lt;br /&gt; // Set the timer_delay&lt;br /&gt; adi_tmr_SetDelay(ghTimer01, TIMER_DELAY);&lt;br /&gt; adi_tmr_EnableGracefulStop(ghTimer01, true);&lt;br /&gt; adi_tmr_SetClkInSource(ghTimer01, ADI_TMR_CLKIN_SYSCLK);&lt;br /&gt; adi_tmr_SetPulsePolarity(ghTimer01, false);&lt;br /&gt; adi_tmr_DisableOutput(ghTimer01, true);&lt;br /&gt; adi_tmr_SetEmuRun(ghTimer01, true);&lt;br /&gt; adi_tmr_SetIRQMode(ghTimer01, ADI_TMR_IRQMODE_WIDTH_DELAY);&lt;br /&gt; // Open the timer&lt;/p&gt;
&lt;p&gt;Thanks &amp;amp; Best Regards,&lt;/p&gt;
&lt;p&gt;YAMAMOTO&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Secure SSL when Cache is enabled</title><link>https://ez.analog.com/thread/604164?ContentTypeID=0</link><pubDate>Fri, 01 May 2026 06:27:32 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:1ab8e2ec-a958-410c-b452-1526a5a2fc92</guid><dc:creator>BernhardM</dc:creator><slash:comments>2</slash:comments><comments>https://ez.analog.com/thread/604164?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-2156x/f/q-a/604164/secure-ssl-when-cache-is-enabled/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;if using SecureBoot_OpenPart with cache enabled,&amp;nbsp;adi_rom_Boot() failes.&lt;/p&gt;
&lt;p&gt;If running without cache it succeeds.&lt;/p&gt;
&lt;p&gt;Is there an example for a Secure&amp;nbsp;Second Stage Loader with cache enabled?&lt;/p&gt;
&lt;p&gt;Regards&lt;/p&gt;
&lt;p&gt;Bernhard&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>ADSP-21565 ASRC Usage</title><link>https://ez.analog.com/thread/603516?ContentTypeID=0</link><pubDate>Fri, 20 Mar 2026 07:06:50 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:55d85dca-08bd-406e-bf9d-d864431a0e60</guid><dc:creator>pjs</dc:creator><slash:comments>2</slash:comments><comments>https://ez.analog.com/thread/603516?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-2156x/f/q-a/603516/adsp-21565-asrc-usage/rss?ContentTypeId=0</wfw:commentRss><description>&lt;div data-lark-html-role="root"&gt;&lt;span class="text-only" data-eleid="3"&gt;I am currently using the ASRC module on the ADSP-21565. We require 12 input channels and 4 output channels, all in TDM8 format.&lt;/span&gt;&lt;span class="text-only" data-eleid="2"&gt; &lt;/span&gt;&lt;span class="text-only" data-eleid="5"&gt;There are two &lt;span class="text-only text-with-abbreviation text-with-abbreviation-bottomline windows-bottomline"&gt;TDM&lt;/span&gt; input data lines: we need to capture all 8 channels from the first data line, and only the first 4 channels from the second data line.&lt;/span&gt;&lt;span class="text-only" data-eleid="4"&gt; &lt;/span&gt;&lt;span class="text-only" data-eleid="7"&gt;There is one TDM output data line, which uses only the first 4 channels.&lt;/span&gt;&lt;span class="text-only" data-eleid="6"&gt; &lt;/span&gt;&lt;span class="text-only" data-eleid="9"&gt;We plan to use 3 ASRC pairs for input processing and 1 ASRC pair for output.&lt;/span&gt;&lt;span class="text-only" data-eleid="8"&gt; &lt;/span&gt;&lt;span class="text-only" data-eleid="11"&gt;Is this achievable? If so, how should the ASRC be configured specifically?&lt;/span&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>How important is additional filtering on VDD_PLL and VDD_FPLLANA?</title><link>https://ez.analog.com/thread/603173?ContentTypeID=0</link><pubDate>Wed, 04 Mar 2026 20:11:01 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:a5cea460-e6ed-4a5b-9c1e-428cf88b71ea</guid><dc:creator>InoJosh</dc:creator><slash:comments>3</slash:comments><comments>https://ez.analog.com/thread/603173?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-2156x/f/q-a/603173/how-important-is-additional-filtering-on-vdd_pll-and-vdd_fpllana/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I have a design using the ADSP-21569.&lt;br /&gt;I am potentially replacing it with ADSP-21834. I have already done so on a test board, and it is working.&lt;br /&gt;But, there are power domains VDD_PLL and&amp;nbsp;VDD_FPLLANA that don&amp;#39;t get any special treatment on&amp;nbsp;&lt;span&gt;ADSP-21569 (they are just VDD_INT and VDD_REF).&lt;br /&gt;Looking at the schematic for&amp;nbsp;ADSP21835W-EV-SOM, there is additional filtering for both:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://ez.analog.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/863/8080.pastedimage1772654889535v1.png" alt=" " /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://ez.analog.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/863/5074.pastedimage1772654908438v2.png" alt=" " /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;My design as it stands does not have this filtering, since it was designed with the ADSP-21569.&lt;br /&gt;I know these are &amp;quot;pin compatible&amp;quot;, but realistically, how important is this additional filtering? Do we need to do another board revision to add it in if switching to ADSP-21834?&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Hardware Compatibility between ADSP-21569, ADSP-21593 and ADSP-21835</title><link>https://ez.analog.com/thread/602798?ContentTypeID=0</link><pubDate>Mon, 16 Feb 2026 18:08:08 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:f571f8c3-edb7-43af-a181-01ea6f1d686c</guid><dc:creator>AlClark</dc:creator><slash:comments>6</slash:comments><comments>https://ez.analog.com/thread/602798?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-2156x/f/q-a/602798/hardware-compatibility-between-adsp-21569-adsp-21593-and-adsp-21835/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;We have board designs that support both ADSP-21569 and ADSP-21593. This means we have sufficient core supply for the 21593.&lt;/p&gt;
&lt;p&gt;I understand that the ADSP-21835 is almost pin compatible. We boot from an external SPI flash and this has changed.&lt;/p&gt;
&lt;p&gt;Can the ADI team outline the changes that are needed to do one or both of the following:&lt;/p&gt;
&lt;p&gt;1. Changes needed to make&amp;nbsp;an existing hardware design universal.&lt;br /&gt;2. If this is impractical, then a complete list of changes needed.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I am sure many other users have this question and no one wants to do two revisions if they miss something the first time.&lt;br /&gt;&lt;br /&gt;Al&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>System Crossbars (SCB)</title><link>https://ez.analog.com/thread/602606?ContentTypeID=0</link><pubDate>Thu, 05 Feb 2026 19:09:28 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:f49fe073-54bf-4b2a-9838-57d62d30ec70</guid><dc:creator>daim</dc:creator><slash:comments>4</slash:comments><comments>https://ez.analog.com/thread/602606?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-2156x/f/q-a/602606/system-crossbars-scb/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi.&lt;/p&gt;
&lt;p&gt;I have some questions about&amp;nbsp;System Crossbars (SCB).&lt;/p&gt;
&lt;p&gt;1. Where is &lt;strong&gt;the Sharc+ core SCB&lt;/strong&gt; on the&amp;nbsp;Figure 41-3: SCB Block Diagram?&lt;/p&gt;
&lt;p&gt;2. How&amp;nbsp;can &lt;strong&gt;C0_I&lt;/strong&gt; get access to L1 according&amp;nbsp;Figure 41-5: SCB Block Diagram - Interconnections?&lt;/p&gt;
&lt;p&gt;3. On&amp;nbsp;41&amp;ndash;12 says&lt;/p&gt;
&lt;p&gt;&lt;em&gt;S2 slave port of SHARCs is intended primarily for MDMA between the L1 of the 2 SHARCs. Hence, only the&amp;nbsp;Max BW MDMA is given access to S2 ports while all others masters are given access to S1 port.This arrangement also means that S1 and S2 port now share the same address space as against the ADSP-2156x family of&amp;nbsp;processors where an alias address space was maintained.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Can you explain about the sentence which contains &amp;quot;the &lt;strong&gt;2&lt;/strong&gt; SHARCs&amp;quot;?&lt;/p&gt;
&lt;p&gt;Can you explain about the sentence which contains &amp;quot;&lt;strong&gt;as against&lt;/strong&gt; the ADSP-2156x family&amp;quot;?&lt;/p&gt;
&lt;p&gt;4. How do&amp;nbsp;&lt;strong&gt;SCB Arbitration&lt;/strong&gt; work in the case which describe below.&lt;/p&gt;
&lt;p&gt;My case is a simple&amp;nbsp;&lt;span class="context-results__info-main" dir="ltr"&gt;&lt;span class="context-results__translation" dir="ltr"&gt;interaction&lt;/span&gt;&lt;/span&gt;&amp;nbsp;between the internal core action and external devices. So my program do some work which are based on data from external devices and internal state machine variables.&lt;/p&gt;
&lt;p&gt;At the same time:&lt;/p&gt;
&lt;p&gt;4.1. MDMA channels copy L1-to-L1 memory : from&amp;nbsp;Source_MDMA_Destination_CORE_DataBufL1 to Destination_MDMA_Source_CORE_DataBufL1.&lt;/p&gt;
&lt;p&gt;4.2. The SHARC+&amp;nbsp;copy L1-to-L1 memory :&amp;nbsp; from Destination_MDMA_Source_CORE_DataBufL1 to Source_MDMA_Destination_CORE_DataBufL1.&lt;/p&gt;
&lt;p&gt;4.3. Source_MDMA_Destination_CORE_DataBufL1and Destination_MDMA_Source_CORE_DataBufL1 have the same memory bank.&lt;/p&gt;
&lt;p&gt;Do&amp;nbsp;SCB Arbitration work every 32 bit L1 memory transfer or every&amp;nbsp;L1 memory transfer which has&amp;nbsp;some package length?&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Daim&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>EV-21569-SOM: Application Not Running After Reset When Loaded via JTAG</title><link>https://ez.analog.com/thread/602322?ContentTypeID=0</link><pubDate>Fri, 23 Jan 2026 09:30:52 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:1d2e5f30-ba38-4e4d-a704-5ef48297bf4f</guid><dc:creator>AD9364</dc:creator><slash:comments>1</slash:comments><comments>https://ez.analog.com/thread/602322?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-2156x/f/q-a/602322/ev-21569-som-application-not-running-after-reset-when-loaded-via-jtag/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p data-start="84" data-end="87"&gt;Hi,&lt;/p&gt;
&lt;p data-start="89" data-end="213"&gt;I am working with the &lt;strong data-start="111" data-end="127"&gt;EV-21569-SOM&lt;/strong&gt; board and loading my application using &lt;strong data-start="167" data-end="212"&gt;JTAG via CrossCore Embedded Studio (CCES)&lt;/strong&gt;.&lt;/p&gt;
&lt;p data-start="215" data-end="372"&gt;I am able to successfully load the code through JTAG, but when the board is reset, the &lt;strong data-start="302" data-end="331"&gt;Power-On Self-Test (POST)&lt;/strong&gt; code executes instead of my application.&lt;/p&gt;
&lt;p data-start="374" data-end="643"&gt;I would like to understand how to prevent the POST from running and ensure that my application starts after reset when programming via &lt;strong data-start="509" data-end="522"&gt;JTAG only&lt;/strong&gt;.&lt;br data-start="523" data-end="526" /&gt; Please note that I am &lt;strong data-start="548" data-end="577"&gt;not using the serial port&lt;/strong&gt;; all loading and debugging is performed exclusively through JTAG.&lt;/p&gt;
&lt;p data-start="645" data-end="755"&gt;Any guidance on configuration settings, boot mode selection, or CCES options to achieve this would be helpful&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>DMA copy and copy working</title><link>https://ez.analog.com/thread/602004?ContentTypeID=0</link><pubDate>Fri, 09 Jan 2026 15:27:34 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:d89e9cc4-337d-417f-8787-dbb68069b328</guid><dc:creator>daim</dc:creator><slash:comments>11</slash:comments><comments>https://ez.analog.com/thread/602004?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-2156x/f/q-a/602004/dma-copy-and-copy-working/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi.&lt;br /&gt;Can you help me to understand my issue.&lt;br /&gt;0. CCLK is 1GHz.&lt;br /&gt;1. I have the code FUNC1 which execute some time T1 without any DMA and interrupts.&lt;br /&gt;2. I have the code FUNC2&lt;br /&gt;2.1. It config DMA to copy 4kBytes from L1 to L1 which may have same memory bank addresses&lt;br /&gt;2.2. It start DMA and exit.&lt;br /&gt;3. I compile with optimize_for_speed&lt;br /&gt;4. My test program TST:&lt;br /&gt;4.1. FUNC1.&lt;br /&gt;4.2. FUNC2.&lt;br /&gt;5. I see that FUNC2 in the program TST work some time T2.&lt;br /&gt;6. And T2 is bigger than T1.&lt;br /&gt;7. For example. T1 = 15us. T2 &amp;gt;= 16us.&lt;br /&gt;&lt;br /&gt;I can explain it that DMA starts early and wins SCB arbitration. So the core waits when it can access to L1.&lt;br /&gt;&lt;br /&gt;Is any idea?&lt;br /&gt;&lt;br /&gt;Best regards.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>DMC Initialization depending on anomaly 20000117</title><link>https://ez.analog.com/thread/601949?ContentTypeID=0</link><pubDate>Wed, 07 Jan 2026 11:39:07 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:700276dc-6695-45f2-92d1-49e44f18852a</guid><dc:creator>BernhardM</dc:creator><slash:comments>5</slash:comments><comments>https://ez.analog.com/thread/601949?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-2156x/f/q-a/601949/dmc-initialization-depending-on-anomaly-20000117/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;what is the correct way to initailize the dmc depending on anomaly&amp;nbsp;20000117.&lt;/p&gt;
&lt;p&gt;As i understand, the rom functions should not be used anymore.&lt;/p&gt;
&lt;p&gt;Can you provide an example project.&lt;/p&gt;
&lt;p&gt;Regards&lt;/p&gt;
&lt;p&gt;Bernhard&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>external flash can be operated when JTAG has been locked</title><link>https://ez.analog.com/thread/601616?ContentTypeID=0</link><pubDate>Tue, 16 Dec 2025 09:12:30 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:1ba9fa98-8a28-4d40-8aca-b1bf398fc78a</guid><dc:creator>wuxiangzhi</dc:creator><slash:comments>3</slash:comments><comments>https://ez.analog.com/thread/601616?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-2156x/f/q-a/601616/external-flash-can-be-operated-when-jtag-has-been-locked/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hello Support Team Guys,&lt;/p&gt;
&lt;p&gt;We follow the link of &amp;quot;&lt;a href="https://ez.analog.com/dsp/sharc-processors/adsp-2156x/f/q-a/115245/emulation-key-disable"&gt;Emulation Key Disable - Q&amp;amp;A - ADSP-2156x - EngineerZone&lt;/a&gt;&amp;quot; for JTAG locking. &lt;span&gt;Regarding the JTAG key protection of ADSP-21565, we hereby feedback our test and verification results, and have 2 questions that require your company&amp;rsquo;s response.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Regarding the issue of JTAG key protection for the ADSP21565, here is the feedback on the test verification results from our side:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;According to the previous document &amp;quot;EmulationKeyDisable - Copy.zip,&amp;quot; the current test results indicate that JTAG can be locked, and debugging via JTAG is indeed prevented.&lt;/li&gt;
&lt;li&gt;However, even with JTAG locked, it is still possible to program the corresponding external Flash of the ADSP21565 via JTAG.&lt;/li&gt;
&lt;li&gt;The method described in the &amp;quot;EmulationKeyDisable - Copy.zip&amp;quot; file for unlocking the JTAG interface by importing an XML file has not been successfully implemented by our team so far.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;two questions:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;We are currently puzzled because the JTAG key protection function for the ADSP21565 has not been successfully implemented. Is our approach incorrect, or does the ADSP21565 DSP chip itself not yet support this feature?&lt;/li&gt;
&lt;li&gt;please clarify whether the ADSP21565 DSP can indeed implement JTAG key protection&amp;mdash;specifically, whether JTAG can be locked to prevent programming the corresponding external Flash data via JTAG after locking, while still allowing unlocking via a key.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Thanks &amp;amp; Best regards,&lt;/p&gt;
&lt;p&gt;xiangzhi wu&lt;/p&gt;
&lt;p&gt;xiangzhi wu&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>EMDMA and System MMR Latencies</title><link>https://ez.analog.com/thread/601432?ContentTypeID=0</link><pubDate>Sat, 06 Dec 2025 19:11:49 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:a20eae43-02d4-4ef4-8898-5f35e9948514</guid><dc:creator>daim</dc:creator><slash:comments>3</slash:comments><comments>https://ez.analog.com/thread/601432?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-2156x/f/q-a/601432/emdma-and-system-mmr-latencies/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi.&lt;/p&gt;
&lt;p&gt;Can you check me for EMDMA&amp;nbsp;System MMR Latencies.&lt;/p&gt;
&lt;p&gt;I took System MMR Latencies from&amp;nbsp;ADSP-2156x SHARC+ Processor System Optimization Techniques (EE-412).&lt;/p&gt;
&lt;p&gt;I use&amp;nbsp;EMDMA TCBs for Standard Circular DMA. Each TCB copy one word from L1 memory to external (DDRIII) memory. I have 32 TCB list.&lt;/p&gt;
&lt;p&gt;So EMDMA need to load 8 Registers for Standard Circular DMA . So it take 8*43=344&amp;nbsp;core cycles.&lt;/p&gt;
&lt;p&gt;Than EMDMA must read data&amp;nbsp;from L1 memory and write to external memory. I don&amp;#39;t known how long it. I assume it be 43+44=87&amp;nbsp;core cycles.&lt;/p&gt;
&lt;p&gt;Than EMDMA must renew&amp;nbsp;External Index Register. It take 1*44=44&amp;nbsp;core cycles.&lt;/p&gt;
&lt;p&gt;So one TCB need 344+87+44=475&amp;nbsp;core cycles.&lt;/p&gt;
&lt;p&gt;32x TCB: 32*475=15200&amp;nbsp;core cycles.&lt;/p&gt;
&lt;p&gt;Am I right?&lt;/p&gt;
&lt;p&gt;Best regards.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>CCES SRU configuration</title><link>https://ez.analog.com/thread/601326?ContentTypeID=0</link><pubDate>Tue, 02 Dec 2025 05:04:50 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:e29cc122-b835-4639-9990-f7dded316ee8</guid><dc:creator>Bajupi</dc:creator><slash:comments>1</slash:comments><comments>https://ez.analog.com/thread/601326?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-2156x/f/q-a/601326/cces-sru-configuration/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I want to connect [ loudspeaker&amp;lt;-&amp;gt; EzKit &amp;lt;-&amp;gt; ADSP-21569-SOM &amp;lt;-&amp;gt; Brkout &amp;lt;-&amp;gt; AD2428WD1BZ &amp;lt;-&amp;gt; AD2428WC1BZ ] to make passthrough code.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;In this connection, I set SRU init to connect [&amp;nbsp;&lt;span&gt;ADSP-21569-SOM &amp;lt;-&amp;gt; Brkout &amp;lt;-&amp;gt; AD2428WD1BZ ]&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;This is my SRU init. Is there any error?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;void SRU_Init(void)&lt;br /&gt;{&lt;br /&gt; /* Enable DAI pins */&lt;br /&gt; *pREG_PADS0_DAI0_IE = 0x1ffffe;&lt;br /&gt; *pREG_PADS0_DAI1_IE = 0x1ffffe;&lt;/p&gt;
&lt;p&gt;/*==========================================================================&lt;br /&gt; * A2B Interface (DAI0) - DSP is Master&lt;br /&gt; * DAI0_PIN02: BCLK output to AD2428&lt;br /&gt; * DAI0_PIN03: SYNC output to AD2428&lt;br /&gt; * DAI0_PIN04: DTX0 input from AD2428&lt;br /&gt; *========================================================================*/&lt;/p&gt;
&lt;p&gt;/* PCG0 BCLK -&amp;gt; DAI0_PIN02 (output to A2B) */&lt;br /&gt; SRU(PCG0_CLKA_O, DAI0_PB02_I);&lt;br /&gt; SRU(HIGH, DAI0_PBEN02_I); /* Enable output */&lt;/p&gt;
&lt;p&gt;/* PCG0 SYNC -&amp;gt; DAI0_PIN03 (output to A2B) */&lt;br /&gt; SRU(PCG0_FSA_O, DAI0_PB03_I);&lt;br /&gt; SRU(HIGH, DAI0_PBEN03_I); /* Enable output */&lt;/p&gt;
&lt;p&gt;/* DAI0_PIN04 -&amp;gt; SPORT0A Data Input (A2B DTX0) */&lt;br /&gt; SRU(DAI0_PB04_O, SPT0_AD0_I);&lt;br /&gt; SRU(LOW, DAI0_PBEN04_I); /* Input */&lt;/p&gt;
&lt;p&gt;/* PCG0 BCLK -&amp;gt; SPORT0A Clock */&lt;br /&gt; SRU(PCG0_CLKA_O, SPT0_ACLK_I);&lt;/p&gt;
&lt;p&gt;/* PCG0 SYNC -&amp;gt; SPORT0A Frame Sync */&lt;br /&gt; SRU(PCG0_FSA_O, SPT0_AFS_I);&lt;/p&gt;
&lt;p&gt;/*==========================================================================&lt;br /&gt; * DAC Interface (DAI1) - DAC is Master (existing setup)&lt;br /&gt; * DAI1_PIN05: BCLK from DAC&lt;br /&gt; * DAI1_PIN04: FS from DAC&lt;br /&gt; * DAI1_PIN01: Data to DAC&lt;br /&gt; *========================================================================*/&lt;/p&gt;
&lt;p&gt;/* DAC BCLK input */&lt;br /&gt; SRU2(LOW, DAI1_PBEN05_I);&lt;/p&gt;
&lt;p&gt;/* DAC BCLK -&amp;gt; SPORT4A and SPORT4B Clock */&lt;br /&gt; SRU2(DAI1_PB05_O, SPT4_ACLK_I);&lt;br /&gt; SRU2(DAI1_PB05_O, SPT4_BCLK_I);&lt;/p&gt;
&lt;p&gt;/* DAC FS input */&lt;br /&gt; SRU2(LOW, DAI1_PBEN04_I);&lt;/p&gt;
&lt;p&gt;/* DAC FS -&amp;gt; SPORT4A and SPORT4B Frame Sync */&lt;br /&gt; SRU2(DAI1_PB04_O, SPT4_AFS_I);&lt;br /&gt; SRU2(DAI1_PB04_O, SPT4_BFS_I);&lt;/p&gt;
&lt;p&gt;/* SPORT4A Data -&amp;gt; DAC */&lt;br /&gt; SRU2(SPT4_AD0_O, DAI1_PB01_I);&lt;br /&gt; SRU2(HIGH, DAI1_PBEN01_I); /* Enable output */&lt;/p&gt;
&lt;p&gt;/* ADC Data -&amp;gt; SPORT4B (for RX) */&lt;br /&gt; SRU2(DAI1_PB06_O, SPT4_BD0_I);&lt;br /&gt; SRU2(LOW, DAI1_PBEN06_I); /* Input */&lt;/p&gt;
&lt;p&gt;/* DAC BCLK -&amp;gt; ADC (for DAC clock reference) */&lt;br /&gt; SRU2(DAI1_PB05_O, DAI1_PB12_I);&lt;br /&gt; SRU2(HIGH, DAI1_PBEN12_I);&lt;/p&gt;
&lt;p&gt;/* DAC FS -&amp;gt; ADC FS */&lt;br /&gt; SRU2(DAI1_PB04_O, DAI1_PB20_I);&lt;br /&gt; SRU2(HIGH, DAI1_PBEN20_I);&lt;br /&gt;}&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>EMDMA and some questions</title><link>https://ez.analog.com/thread/601313?ContentTypeID=0</link><pubDate>Mon, 01 Dec 2025 12:28:15 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:64276200-5a00-402f-b5f4-6c0dabfb5d8a</guid><dc:creator>daim</dc:creator><slash:comments>4</slash:comments><comments>https://ez.analog.com/thread/601313?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-2156x/f/q-a/601313/emdma-and-some-questions/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi.&lt;/p&gt;
&lt;p&gt;1. I can&amp;#39;t find the information about&amp;nbsp;EMDMA&amp;#39;s word width. I find only that&amp;nbsp;All the DMA addresses given by EMDMA are word-aligned byte addresses (p.28-3).&lt;/p&gt;
&lt;p&gt;Am I right that&amp;nbsp;EMDMA&amp;#39;s word width is 32-bit?&lt;/p&gt;
&lt;p&gt;2. HWR says that&amp;nbsp;The EMDMA_CTL.WRBEN bit enables write back of the EIEP register after reads and&amp;nbsp;or writes (p.28-24). But there are nothing about&amp;nbsp; EIEP register.&lt;/p&gt;
&lt;p&gt;I think It&amp;#39;s from Legacy Sharc.&lt;/p&gt;
&lt;p&gt;3. Functions as&amp;nbsp;PrepareEmdmaTCBXY convert the address to system address space and shift right by 2 bits.&lt;/p&gt;
&lt;p&gt;Do Shifting&amp;nbsp;right by 2 bits because&amp;nbsp;All the DMA addresses given by EMDMA are word-aligned byte addresses?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Enable BackChannel SigmaStudio+</title><link>https://ez.analog.com/thread/601239?ContentTypeID=0</link><pubDate>Thu, 27 Nov 2025 10:29:10 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:d0ab7ae3-e0bd-4ae2-ac03-8a86fe3b8096</guid><dc:creator>EricSa</dc:creator><slash:comments>1</slash:comments><comments>https://ez.analog.com/thread/601239?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-2156x/f/q-a/601239/enable-backchannel-sigmastudio/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hey together,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I&amp;#39;m getting forward with the evalutaion of the ADSP-21569. Now I&amp;#39;m at the point where i try to create my own project integrating SigmaStudio+ communication. So far everything goes well but I&amp;#39;m not able to enable the backchannel to SigmaStudio+. Here is my setup and what already works.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Setup: ADSP-21569-SOM + EV-SOMCRR-EZLITE&lt;/p&gt;
&lt;p&gt;What already works:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- Audio from ADC to DAC via SPORT and DMA. ASRC runs, UART and TWI is running. I also can compile in SigmaStudio+ 2.4 with my DXE and download it to the ADSP-21569. The ADSP tells me that the SMAP is received and calls &amp;quot;adi_ss_schematic_process()&amp;quot; in a while loop everytime i receive a new packet from SPORT DMA.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;What does not work:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- When the SMAP is downloaded, SigmaStudio+ tells &amp;quot;COMMUNICATION ERROR&amp;quot;. I guess the &amp;quot;Perform target (DSP) verification after download&amp;quot; fails. But I can also see that there is no communication on the MISO pin. I dont know how to enable this communication.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;For your reference here is my main code and the pinmux. But i can forward more details if required.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;int main(int argc, char *argv[])
{
	/**
	 * Initialize managed drivers and/or services that have been added to 
	 * the project.
	 * @return zero on success 
	 */
	adi_initComponents();
	adi_pwr_SetClkOutSelectRegister(ADI_PWR_CGU0, ADI_PWR_CLKOUT_CGU0_SYSCLK0);
	/* Begin adding your custom code here */
	DEBUG_INFORMATION(&amp;quot;Exploration SHARC\n&amp;quot;);

    /* SigmaStudio+*/
#if SIGMA_STUDIO_ENABLE
    ADI_SS_MEM_BLOCK oConnectionMemBlk, *pConnectionMemBlk;
    ADI_SS_CONNECTION_CONFIG oConnConfig, *pConnConfig;
    ADI_SS_CONNECTION_RESULT eConnRet = ADI_SS_CONNECTION_FAILED;
    ADI_SS_CONNECTION_HANDLE hConnHandle;
    ADI_SS_MEM_BLOCK oCommMemBlk, *pCommMemBlk;
    ADI_SS_COMM_CONFIG oCommnConfig, *pCommnConfig;
    ADI_SS_COMM_RESULT eCommRet = ADI_SS_COMM_FAILED;
    ADI_SS_COMM_HANDLE hCommHandle;
    ADI_SS_RESULT eSSRes;
	SS_SMAP_SSN_INFO    *pSSnInfo;
	ADI_SS_COMM_PROPERTIES pCommProp;

    /* Connection component Initialization */
	pConnConfig = &amp;amp;oConnConfig;
	pConnConfig-&amp;gt;eConnectionType = ADI_SS_CONNECTION_SPI;
	pConnConfig-&amp;gt;nDevId = 1; //TODO: Modified from 1
	pConnConfig-&amp;gt;eProcID = PROCESSOR_SH0;
	pConnectionMemBlk = &amp;amp;oConnectionMemBlk;
	pConnectionMemBlk-&amp;gt;nSize = ADI_SS_CONNECTION_MEMSIZE;
	pConnectionMemBlk-&amp;gt;pMem = adi_ss_connection_mem;
	eConnRet = adi_ss_connection_Init(pConnectionMemBlk, pConnConfig, &amp;amp;hConnHandle);
	if(eConnRet != ADI_SS_CONNECTION_SUCCESS){
		printf(&amp;quot;\nConnection component initialization failed&amp;quot;);
		return -1;
	}
	/* Communication component initialization*/
	pCommnConfig = &amp;amp;oCommnConfig;
	pCommnConfig-&amp;gt;bCRCBypass = false;
	pCommnConfig-&amp;gt;bFullPacketCRC = true;
	pCommnConfig-&amp;gt;pfCommCmd4CallBack = (ADI_SS_COMM_CMD4_CB) adi_ss_comm_callback_cmd4;
	pCommnConfig-&amp;gt;pfCommSMAPCallBack = (ADI_SS_COMM_SMAP_CB) adi_SMAP_Application_Callback;
	pCommnConfig-&amp;gt;pfSPIRxIsrCallBack = (ADI_SS_COMM_APP_ISR_CB) adi_ss_spi_rx_callback;
	pCommnConfig-&amp;gt;pfSPITxIsrCallBack = (ADI_SS_COMM_APP_ISR_CB) adi_ss_spi_tx_callback;
	pCommnConfig-&amp;gt;hConnectionHandle = hConnHandle;
	pCommnConfig-&amp;gt;pMemSMap[PROCESSOR_SH0] = &amp;amp;oSMAPSharc0;
	pCommnConfig-&amp;gt;pBkChnlInfo[0] = &amp;amp;oBkChannelInfoSharc0;
	pCommMemBlk = &amp;amp;oCommMemBlk;
	pCommMemBlk-&amp;gt;nSize = ADI_SS_COMM_MEMSIZE;
	pCommMemBlk-&amp;gt;pMem = adi_ss_commn_mem;
	eCommRet = adi_ss_comm_Init(pCommMemBlk, pCommnConfig, &amp;amp;hCommHandle);
	if(eCommRet != ADI_SS_COMM_SUCCESS){
		printf(&amp;quot;\nCommunication component initialization failed&amp;quot;);
		return -1;
	}

//	eConnRet = adi_ss_connection_set_CommHandle(hConnHandle, hCommHandle);
//	if(eConnRet != ADI_SS_CONNECTION_SUCCESS){
//		printf(&amp;quot;\nConnection component set comm failed&amp;quot;);
//		return -1;
//	}

    /* Wait for SMAP to be received from host */
    while(!nSMAPReceived)
    {
    }
   /* Populating Memory addresses of different blocks from SMAP */
   oSSnMemMap.nMemBlocks = 11;
   pSSnInfo = &amp;amp;oSMAPSharc0.oSSnInfo[0];
   for(int i=0; i&amp;lt;oSSnMemMap.nMemBlocks; i++){
	   oSSnMemMap.pMemBlocks[i] = &amp;amp;pSSnInfo-&amp;gt;oSSnBuff[i];
   }
   /* Create an instance of SSn */
   adi_ss_create( &amp;amp;hSSnHandle, &amp;amp;oSSnMemMap);
   if(hSSnHandle == NULL){
	   printf(&amp;quot;\n SSn instance creation failed&amp;quot;);
	   return -1;
   }
   /* Provide SSn handle to communication component using the adi_ss_comm_SetProperties() API */
   pCommProp.haSSnHandle[PROCESSOR_SH0][0] = hSSnHandle;
   pCommProp.nNumProcBlocks = 1;
   pCommProp.nProcId = PROCESSOR_SH0;
   eCommRet = adi_ss_comm_SetProperties(hCommHandle,ADI_COMM_PROP_SSN_HANDLE,&amp;amp;pCommProp);
   if(eCommRet != ADI_SS_COMM_SUCCESS){
     printf(&amp;quot;\nError in Communication component&amp;quot;);
     return -1;
   }
   /* Initialize the SSn instance */
   pSSnConfig = &amp;amp;oSSnConfig;
   pSSnConfig-&amp;gt;hSSComm = hCommHandle;
   pSSnConfig-&amp;gt;nBlockSize = BLOCK_SIZE ;
   pSSnConfig-&amp;gt;nInChannels = 8;
   pSSnConfig-&amp;gt;nOutChannels = 8;
   pSSnConfig-&amp;gt;bSkipProcessOnCRCError = 0;
   pSSnConfig-&amp;gt;bSkipInitialDownload = 0U;
   pSSnConfig-&amp;gt;nInitNoWait = 0;
   pSSnConfig-&amp;gt;eProcID = PROCESSOR_SH0;
   pSSnConfig-&amp;gt;bClearUnusedOutput = 1;
   eSSRes =  adi_ss_init(hSSnHandle, pSSnConfig);
   if(eSSRes != ADI_SS_SUCCESS){
    printf(&amp;quot;\nSSn instance initialization failed&amp;quot;);
    return -1;
   }
   pSSnProperties = &amp;amp;oSSnProperties;
   /* Initialize SigmaStudio I/O pointers */
   for(int i=0; i&amp;lt;NUM_CHANNELS; i++){
    pSSInBuff[i] = &amp;amp;aSSInOutBuff[i*BLOCK_SIZE];
    pSSOutBuff[i] = pSSInBuff[i];
   }

   eCommRet = adi_ss_comm_GetProperties(hCommHandle, &amp;amp;pCommProp);
   if(eCommRet != ADI_SS_COMM_SUCCESS){
	   printf(&amp;quot;\nError in Communication get properties&amp;quot;);
	   return -1;
   }

//	eConnRet =  adi_ss_connection_Enable(hConnHandle);
//	if(eConnRet != ADI_SS_CONNECTION_SUCCESS){
//		printf(&amp;quot;\nConnection component enable failed&amp;quot;);
//		return -1;
//	}
	#endif

	#if ADSP_I2S_MASTER
	DEBUG_INFORMATION(&amp;quot;SHARC runs as clock master\n&amp;quot;);
	#else
	DEBUG_INFORMATION(&amp;quot;SHARC runs as clock slave\n&amp;quot;);
	#endif
	ADI_UART_RESULT    eUartResult;
	ADI_TWI_RESULT 	eTwiResult;
    /* Open UART */
	eUartResult = adi_uart_Open(ADI_UART_0, ADI_UART_DIR_BIDIRECTION, Uart0Memory, ADI_UART_BIDIR_MEMORY_SIZE, &amp;amp;hDev0);
    CheckResult(eUartResult);
    eUartResult = adi_uart_ConfigBaudRate(hDev0, 1, 2170u); /* Prescaler: 1, Divisor: 2170 = 57600 Baudrate */
    CheckResult(eUartResult);
    char testBuffer[100] = &amp;quot;Hello from Eric Blocking \n&amp;quot;;
    eUartResult = adi_uart_CoreWrite(hDev0, testBuffer, strlen(testBuffer));
    /* Open TWI */
    int result = SPU_init();
//    int result = SUCCESS;
    if(result == SUCCESS){
    	result = ADAU1372_init(!slave);
    	if(result == SUCCESS){
    		result = Sport_init(slave);
    		if(result == SUCCESS){
    			Stop_TWI();
    		}
    	}
    }
    /* Copy Dummy values for SS */
    for(uint32_t ch = 0; ch &amp;lt; NUM_CHANNELS; ++ch){
    	for(uint32_t sample = 0; sample &amp;lt; BLOCK_SIZE; ++sample){
    		nTempBuff[ch*BLOCK_SIZE + sample] = ch;
    	}
    }

	/* Populating hardcoded values for readback */
	for(int i=0; i&amp;lt;2; i++)
	{
		oBkChannelInfoSharc0.nAvgMIPS[i]=10.0;
		oBkChannelInfoSharc0.nPeakMIPS[i]=20.0;
		oBkChannelInfoSharc0.nVersionInfo=0x47000000;
	}

	DEBUG_INFORMATION(&amp;quot;Process SigmaStudio\n&amp;quot;);

    while(1){
    	Sport_loop();
		while(!Sport_isDataReceived());
		Sport_clearDataReceived();
		/* Fixed to float conversion and copy to SS input buffer */
		for(uint32_t ch = 0; ch &amp;lt; NUM_CHANNELS; ch++){
			//CopyFix2Float((volatile uint32_t*)&amp;amp;pSportIn[i], NUM_CHANNELS, pSSInBuff[i], 1, BLOCK_SIZE, 1u);
			CopyFix2Float((volatile uint32_t*)&amp;amp;nTempBuff[ch], NUM_CHANNELS, pSSInBuff[ch], 1, BLOCK_SIZE, 1u);
		}
		DEBUG_INFORMATION(&amp;quot;call adi_ss_schematic_process\n&amp;quot;);
		adi_ss_schematic_process(hSSnHandle,BLOCK_SIZE,(adi_ss_sample_t **)pSSInBuff,(adi_ss_sample_t **)pSSOutBuff,pSSnProperties);

	}
//	return 0;
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" alt=" " src="https://ez.analog.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/863/pastedimage1764239313054v1.png" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;By the way: The function &amp;quot;&lt;span&gt;adi_ss_schematic_process()&amp;quot; is really called. I added a print out before. Here you can see the output of the debug log.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;pre class="ui-code" data-mode="text"&gt;Exploration SHARC
SigmaStudio+ SMAP received
SHARC runs as clock master
GPIO: PB03 Vol Up, PB05 Vol Down
PCG: Use Precision Clock Generator for SPORTs
SPORT: ASRC DAI1 send to DAC
SPORT: Only 2 channels are received
Process SigmaStudio
Process SigmaStudio
ASRC Device Initialized Callback Received, Ratio: 0.93, SR 51.60 kHz
call adi_ss_schematic_process
call adi_ss_schematic_process
call adi_ss_schematic_process
call adi_ss_schematic_process&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Thanks a lot for your help in advance.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Eric&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>ASRC 16 Bit left justified to I2S</title><link>https://ez.analog.com/thread/600460?ContentTypeID=0</link><pubDate>Wed, 29 Oct 2025 15:16:57 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:85eb1b60-0049-4253-8a54-636ab7ad8192</guid><dc:creator>EricSa</dc:creator><slash:comments>6</slash:comments><comments>https://ez.analog.com/thread/600460?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-2156x/f/q-a/600460/asrc-16-bit-left-justified-to-i2s/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hey together,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I have another question regarding the SPORTs and the ASRC of the ADSP-21569. Maybe you can help. So far I am able to receive and transmit data via SPORT + DMA while running the ADSP als clock master. I also tried it by using the internal clock for the SPORTs as well as the PCGA as clock source. Everything fine so far. Now I am trying to get the ASRCs running. Here I&amp;#39;m a bit lost and I get only some crappy noise out of the DAC.&lt;/p&gt;
&lt;p&gt;My plan is the following:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://ez.analog.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/863/adsp_5F00_asrc_5F00_1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;The first question would be:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- Q1: Is it really required to route the CRS outputs of the PCGA to a DAI1 PinBuffer? Is there no internal way to route the signals from PCGA to DAI1?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- Q2: How should the configuration of the ASRC look like? What is right in my setup and what is wrong?&lt;/p&gt;
&lt;p&gt;- Q3: When I am using the PCGA as clock source for the SPORTs, is the &amp;quot;nClockRatio&amp;quot; in the&amp;nbsp;adi_sport_ConfigClock() required?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Below is my code for the ASRC and the SPORT4A. Excuse by rought code, it is really hardcoded stuff but it is just for evaluation purpose.&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;#define COUNT 128
ADI_CACHE_ALIGN static int   int_SP4ABuffer0[COUNT];
ADI_CACHE_ALIGN static int   int_SP4ABuffer1[COUNT];

ADI_PDMA_DESC_LIST iSRC_LIST_1_SP4A;
ADI_PDMA_DESC_LIST iSRC_LIST_2_SP4A;
static uint8_t SPORTMemory4A[ADI_SPORT_MEMORY_SIZE];
static ADI_SPORT_HANDLE hSPORTDev4ARx; //ASRC RX

/*
Static Code for all other SPORTs and DMAs ...
*/


int SPU_init(void){
    if(adi_spu_Init(0, SpuMemory, NULL, NULL, &amp;amp;ghSpu) != ADI_SPU_SUCCESS)
    {
    	REPORT_ERROR(&amp;quot;Failed to initialize SPU service\n&amp;quot;);
		return FAILED;
    }

    /* Make SPORT 3A to generate secure transactions */
    if(adi_spu_EnableMasterSecure(ghSpu, SPORT_3A_SPU, true) != ADI_SPU_SUCCESS)
    {
    	REPORT_ERROR(&amp;quot;Failed to enable Master secure for SPORT3A\n&amp;quot;);
		return FAILED;
    }

    /* Make SPORT 3B to generate secure transactions */
    if(adi_spu_EnableMasterSecure(ghSpu, SPORT_3B_SPU, true) != ADI_SPU_SUCCESS)
    {
    	REPORT_ERROR(&amp;quot;Failed to enable Master secure for SPORT3B\n&amp;quot;);
		return FAILED;
    }

    /* Make SPORT 4A to generate secure transactions */
    if(adi_spu_EnableMasterSecure(ghSpu, SPORT_4A_SPU, true) != ADI_SPU_SUCCESS)
    {
    	REPORT_ERROR(&amp;quot;Failed to enable Master secure for SPORT4A\n&amp;quot;);
		return FAILED;
    }

    return SUCCESS;
}

static void PCG_init(void){
	ADI_PCG_CLK_INFO gClkInfoA;
	gClkInfoA.eClkInput = ADI_PCG_CLK_SCLK0;               /* Clock Source */
	gClkInfoA.nDiv = OUTPUT_PCG_CLOCK_DIV;               /* Clock Divisor */
	gClkInfoA.bExternalTrigger = false;                    /* External Trigger */

	ADI_PCG_FS_INFO gFsInfoA;
	gFsInfoA.eClkInput = ADI_PCG_FS_SCLK0;                 					/* Clock Source */
	gFsInfoA.nDiv = (OUTPUT_PCG_CLOCK_DIV)*(ADI_SPORT0A_CTL_SLEN + 1)*(2);	/* Frame Sync Divisor */
	gFsInfoA.nPulseWidth = (gFsInfoA.nDiv)/2;              					/* Pulse Width */
	gFsInfoA.nPhase = (OUTPUT_PCG_CLOCK_DIV)/2;                  			/* Phase */
	gFsInfoA.bExternalTrigger = false;                     					/* External Trigger */
	gFsInfoA.eFsBypassMode = ADI_PCG_FSBYPASS_MODE_NORMAL; 					/* Bypass Mode */

	adi_pcg_Init(ADI_PCG_DEV_A,&amp;amp;gClkInfoA,&amp;amp;gFsInfoA);

}

static int ASRC_init(void){
	ADI_ASRC_RESULT eAsrcResult = ADI_ASRC_FAILED;
	eAsrcResult = adi_asrc_Open(1u,                   /* Block number */
								0u,                   /* Device number */
								gAsrcMem,             /* Pointer to Memory */
								ADI_ASRC_MEMORY_SIZE, /* Memory Size */
								&amp;amp;hAsrc);
	if(eAsrcResult != ADI_ASRC_SUCCESS)
	{
		REPORT_ERROR(&amp;quot;Could not Open ASRC  0x%08X\n&amp;quot;, eAsrcResult);
		return FAILED;
	}
	eAsrcResult = adi_asrc_SetSerialFormat(hAsrc, ADI_ASRC_INPUT_16BIT_RIGHT_JUSTIFIED, ADI_ASRC_OUTPUT_I2S, ADI_ASRC_WORD_LENGTH_24);

    eAsrcResult = adi_asrc_RegisterCallback(hAsrc,AsrcCallback,NULL);
	if(eAsrcResult != ADI_ASRC_SUCCESS)
	{
		REPORT_ERROR(&amp;quot;Could not Register callback for ASRC  0x%08X\n&amp;quot;, eAsrcResult);
		return FAILED;
	}

	eAsrcResult = adi_asrc_Enable(hAsrc,true);
	if(eAsrcResult != ADI_ASRC_SUCCESS)
	{
		REPORT_ERROR(&amp;quot;Could not Enable ASRC  0x%08X\n&amp;quot;, eAsrcResult);
		return FAILED;
	}

	return SUCCESS;
}

static void PrepareDescriptors (void)
{

	iDESC_LIST_1_SP3A.pStartAddr	= (int *)int_SP0ABuffer1; /* Data array */
	iDESC_LIST_1_SP3A.Config		= ENUM_DMA_CFG_XCNT_INT ;
	iDESC_LIST_1_SP3A.XCount		= COUNT;
	iDESC_LIST_1_SP3A.XModify		= 4; /* Increase data address */
	iDESC_LIST_1_SP3A.YCount		= 0;
	iDESC_LIST_1_SP3A.YModify		= 0;
	iDESC_LIST_1_SP3A.pNxtDscp		= &amp;amp;iDESC_LIST_2_SP3A;

	iDESC_LIST_2_SP3A.pStartAddr	= (int *)int_SP0ABuffer2; /* Data array */
	iDESC_LIST_2_SP3A.Config		= ENUM_DMA_CFG_XCNT_INT ;
	iDESC_LIST_2_SP3A.XCount		= COUNT;
	iDESC_LIST_2_SP3A.XModify		= 4; /* Increase data address */
	iDESC_LIST_2_SP3A.YCount		= 0;
	iDESC_LIST_2_SP3A.YModify		= 0;
	iDESC_LIST_2_SP3A.pNxtDscp		= &amp;amp;iDESC_LIST_1_SP3A; /* Points to the first descriptor */

	iSRC_LIST_1_SP4A.pStartAddr	= (int *)int_SP4ABuffer0; /* Data array */
	iSRC_LIST_1_SP4A.Config		= ENUM_DMA_CFG_XCNT_INT ;
	iSRC_LIST_1_SP4A.XCount		= COUNT;
	iSRC_LIST_1_SP4A.XModify		= 4; /* Increase data address */
	iSRC_LIST_1_SP4A.YCount		= 0;
	iSRC_LIST_1_SP4A.YModify		= 0;
	iSRC_LIST_1_SP4A.pNxtDscp		= &amp;amp;iSRC_LIST_2_SP4A;

	iSRC_LIST_2_SP4A.pStartAddr	= (int *)int_SP4ABuffer1; /* Data array */
	iSRC_LIST_2_SP4A.Config		= ENUM_DMA_CFG_XCNT_INT ;
	iSRC_LIST_2_SP4A.XCount		= COUNT;
	iSRC_LIST_2_SP4A.XModify		= 4; /* Increase data address */
	iSRC_LIST_2_SP4A.YCount		= 0;
	iSRC_LIST_2_SP4A.YModify		= 0;
	iSRC_LIST_2_SP4A.pNxtDscp		= &amp;amp;iSRC_LIST_1_SP4A; /* Points to the first descriptor */
}

static void SPORTCallback(void *pAppHandle,uint32_t nEvent,void *pArg){
	int i;
    /* CASEOF (event type) */
    switch (nEvent){
        /* CASE (buffer processed) */
        case ADI_SPORT_EVENT_RX_BUFFER_PROCESSED:
        	adi_gpio_Toggle(GPIO_DAC_PORT,GPIO_DAC_PIN);
        break;
        default:
        break;
    }
}


static void SPORTCallbackASRC(void *pAppHandle, uint32_t nEvent, void *pArg){
	int i;
    /* CASEOF (event type) */
    switch (nEvent){
        /* CASE (buffer processed) */
        case ADI_SPORT_EVENT_RX_BUFFER_PROCESSED:
        	adi_gpio_Toggle(GPIO_ASRC_PORT,GPIO_ASRC_PIN);
			#if FORWARD_ASRC
			TestCallbackCount +=1;
			AsrcCallbackCount +=1;
			if(AsrcCallbackCount==1){
				for(i=0;i&amp;lt;COUNT;i+=2){
					int_SP0ABuffer1[i]=int_SP4ABuffer0[i];/*Copy ASRC Buffer to DAC */
					int_SP0ABuffer1[i+1]=int_SP4ABuffer0[i+1];/*Copy ASRC Buffer to DAC */
					++copyCount;
				}
			}
			if(AsrcCallbackCount==2){
				for(i=0;i&amp;lt;COUNT;i+=2){
					int_SP0ABuffer2[i]=int_SP4ABuffer1[i];/*Copy ASRC Buffer to DAC */
					int_SP0ABuffer2[i+1]=int_SP4ABuffer1[i+1];/*Copy ASRC Buffer to DAC */
					++copyCount;
				}
				AsrcCallbackCount=0;
			}
			#endif
        break;
        default:
        break;
    }
}

int Sport_init(bool slave, bool rxCH12, bool rxCH34){

	PCG_init();

    /* SPORT return code */
    ADI_SPORT_RESULT    eResult;

	/* Open the SPORT Device 3a */
	eResult = adi_sport_Open(SPORT_DEVICE_3A,ADI_HALF_SPORT_A,ADI_SPORT_DIR_TX, ADI_SPORT_I2S_MODE, SPORTMemory3A,ADI_SPORT_MEMORY_SIZE,&amp;amp;hSPORTDev3ATx);
	/* Try to enable the clock */
	adi_sport_ConfigClock(hSPORTDev3ATx,39,false,false,false);
	adi_sport_ConfigFrameSync(hSPORTDev3ATx,ADI_SPORT0A_CTL_SLEN,false,false,false,true,false,false);


	/* Open the SPORT Device 3B*/
	eResult = adi_sport_Open(SPORT_DEVICE_3B,ADI_HALF_SPORT_B,ADI_SPORT_DIR_RX, ADI_SPORT_I2S_MODE, SPORTMemory3B,ADI_SPORT_MEMORY_SIZE,&amp;amp;hSPORTDev3BRx);
	adi_sport_ConfigClock(hSPORTDev3BRx,39,false,false,false);
	adi_sport_ConfigFrameSync(hSPORTDev3BRx,ADI_SPORT0A_CTL_SLEN,false,false,false,true,false,false);

	/* Register SPORT Callback function */
	eResult = adi_sport_RegisterCallback(hSPORTDev3BRx,SPORTCallback,NULL);
	eResult = adi_sport_RegisterCallback(hSPORTDev3ATx,SPORTCallbackTx,NULL);

	/* Prepare descriptors */
	PrepareDescriptors();

	/* Open the SPORT Device 4A ASRC */
	eResult = adi_sport_Open(SPORT_DEVICE_4A, ADI_HALF_SPORT_A, ADI_SPORT_DIR_RX, ADI_SPORT_I2S_MODE, SPORTMemory4A, ADI_SPORT_MEMORY_SIZE, &amp;amp;hSPORTDev4ARx);
	CHECK_RESULT(eResult);
	adi_sport_ConfigData(hSPORTDev4ARx, ADI_SPORT_DTYPE_SIGN_FILL, 31, false, true, false);
	adi_sport_ConfigClock(hSPORTDev4ARx, 39, false, false, false);
	adi_sport_ConfigFrameSync(hSPORTDev4ARx, 31, false, false, false, false, false, false);
	eResult = adi_sport_RegisterCallback(hSPORTDev4ARx, SPORTCallbackASRC, NULL);
	ASRC_init();
	eResult = adi_sport_DMATransfer(hSPORTDev4ARx,&amp;amp;iSRC_LIST_1_SP4A,(DMA_NUM_DESC),ADI_PDMA_DESCRIPTOR_LIST, ADI_SPORT_CHANNEL_PRIM);

	/* Submit the first buffer for Rx.  */
	eResult = adi_sport_DMATransfer(hSPORTDev3BRx,&amp;amp;iSRC_LIST_1_SP3B,(DMA_NUM_DESC),ADI_PDMA_DESCRIPTOR_LIST, ADI_SPORT_CHANNEL_PRIM);
	eResult = adi_sport_DMATransfer(hSPORTDev3BRx,&amp;amp;iSRC_LIST_1_SP3B,(DMA_NUM_DESC),ADI_PDMA_DESCRIPTOR_LIST, ADI_SPORT_CHANNEL_SEC);

	/* Submit the first buffer for Tx.  */
	eResult = adi_sport_DMATransfer(hSPORTDev3ATx,&amp;amp;iDESC_LIST_1_SP3A,(DMA_NUM_DESC),ADI_PDMA_DESCRIPTOR_LIST, ADI_SPORT_CHANNEL_PRIM);

	/*Enable the Sport Device 4B */
	eResult = adi_sport_Enable(hSPORTDev3BRx,true);
	/*Enable the Sport Device 3a */
	eResult = adi_sport_Enable(hSPORTDev3ATx,true);
	/*Enable the Sport Device 4a */
	eResult = adi_sport_Enable(hSPORTDev4ARx,true);
	return eResult;
}

int main(int argc, char *argv[])
{
	/**
	 * Initialize managed drivers and/or services that have been added to 
	 * the project.
	 * @return zero on success 
	 */
	adi_initComponents();
	adi_pwr_SetClkOutSelectRegister(ADI_PWR_CGU0, ADI_PWR_CLKOUT_CGU0_CCLK0);
	/* Begin adding your custom code here */
	ADI_UART_RESULT    eUartResult;
	ADI_TWI_RESULT 	eTwiResult;
    if(result == SUCCESS){
    	result = ADAU1372_init(!slave);
    	if(result == SUCCESS){
    		result = Sport_init(slave, rxCH12, rxCH34);
    		if(result == SUCCESS){
    		
    		}
    	}
    }
    while(1){

	}
//	return 0;
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Thanks a lot in advance.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Eric&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>UART - DMA Descriptor Mode Ping Pong Buffer</title><link>https://ez.analog.com/thread/600202?ContentTypeID=0</link><pubDate>Mon, 20 Oct 2025 14:49:47 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:4f5db2db-4e0b-4585-a144-f66ef4cbdcc3</guid><dc:creator>SagiS</dc:creator><slash:comments>3</slash:comments><comments>https://ez.analog.com/thread/600202?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-2156x/f/q-a/600202/uart---dma-descriptor-mode-ping-pong-buffer/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I work with the ADSP21565 and I want to implement a UART communication based on DMA with descriptor list mode with ping pong buffering (2 buffers for RX and 2 for TX).&lt;/p&gt;
&lt;p&gt;I can&amp;#39;t find any example for it, all I can find is an example with a single buffer.&lt;/p&gt;
&lt;p&gt;Is there any example? as I don&amp;#39;t think changing the DMA_NUM_DESC macro to 2 is enough.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Sagi.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Selection of DAI0/1 pins when there's limited pin count</title><link>https://ez.analog.com/thread/599469?ContentTypeID=0</link><pubDate>Sun, 21 Sep 2025 13:45:34 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:d2f41145-3036-4974-a501-a1236d2752c0</guid><dc:creator>Hfuhruhurr</dc:creator><slash:comments>2</slash:comments><comments>https://ez.analog.com/thread/599469?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-2156x/f/q-a/599469/selection-of-dai0-1-pins-when-there-s-limited-pin-count/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi all,&lt;/p&gt;
&lt;p&gt;say, we have a board which we want to equip with an ADSP21569 but we have limited pin count and can connect only 20 DAI pins.&lt;/p&gt;
&lt;p&gt;Thus, we have to leave some DAI0/1 pins unconnected.&lt;/p&gt;
&lt;p&gt;As I understand, the DAI0/1 pins 3/4/5/6 have an additional value as they can be cross connected to the other DAI.&lt;/p&gt;
&lt;p&gt;Pins 19/20 have additional value as they can change the signal polarity in hardware.&lt;/p&gt;
&lt;p&gt;I&amp;#39;d leave DAI pins 7/8/9/10 unconnected, then.&lt;/p&gt;
&lt;p&gt;Is there any downside when doing so?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Are there any limitations when using DAI0/1 pins 3/4/5/6 ?&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Rainer&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>extended precision (40 bit) float</title><link>https://ez.analog.com/thread/598701?ContentTypeID=0</link><pubDate>Fri, 22 Aug 2025 09:35:12 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:40549d91-ecd6-43f1-8a79-bff05c1d6152</guid><dc:creator>daim</dc:creator><slash:comments>1</slash:comments><comments>https://ez.analog.com/thread/598701?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/dsp/sharc-processors/adsp-2156x/f/q-a/598701/extended-precision-40-bit-float/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi.&lt;/p&gt;
&lt;p&gt;I Where can I find&amp;nbsp;IIR Filter Response example which is mentioned in&lt;/p&gt;
&lt;p&gt;The thread&amp;nbsp;&lt;a href="https://ez.analog.com/dsp/sharc-processors/adsp-2156x/f/q-a/567029/convert-from-64bit-floating-point-data-to-40bit-floating-point-data"&gt;Convert from 64bit floating point data to 40bit floating point data&lt;/a&gt;&amp;nbsp;is about how convert 40 bit float to double and vice versa. It prepare for hardware unit of Sharc++ processor.&lt;/p&gt;
&lt;p&gt;But I can&amp;#39;t use it for core calculation with&amp;nbsp;extended precision (40 bit) float.&lt;/p&gt;
&lt;p&gt;For Legacy Sharc I can use 48 bit width memory and do ALU/multiplier core operations which used&amp;nbsp;extended precision (40 bit) float.&lt;/p&gt;
&lt;p&gt;For Sharc++ I can&amp;#39;t solution how use&amp;nbsp;ALU/multiplier core operations which used&amp;nbsp;extended precision (40 bit) float if the char size is 8 bits.&lt;/p&gt;
&lt;p&gt;I think&amp;nbsp;I need the code in C/C++ as the code which used in CCES_HOME\SHARC\lib\src\osal_noos\Ports\SHARC\CCES\adi_osal_noos_arch_a.asm&lt;/p&gt;
&lt;p&gt;Something like that for load 40 bit float from long long&lt;br /&gt;&amp;nbsp; &amp;nbsp;px = dm(-24, i6) (lw); r0 = px;&lt;/p&gt;
&lt;p&gt;Something like that for save 40 bit float to long long&lt;br /&gt;&amp;nbsp; &amp;nbsp;px = r0; dm(-24, i6) = px (lw);&lt;/p&gt;
&lt;p&gt;But I can&amp;#39;t understand how it desire with asm() construct.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>