<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.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>fds garbage collection interferes with i2s communication</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/49256/fds-garbage-collection-interferes-with-i2s-communication</link><description>Hello Nordic Team, 
 I have an application where i am playing some samples over i2s to an audio amplifier. The application also uses fds to store those samples (they can be updated over ble) and some other settings. So it has a pretty big fds storage</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 03 Jul 2019 11:41:29 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/49256/fds-garbage-collection-interferes-with-i2s-communication" /><item><title>RE: fds garbage collection interferes with i2s communication</title><link>https://devzone.nordicsemi.com/thread/196242?ContentTypeID=1</link><pubDate>Wed, 03 Jul 2019 11:41:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b117e8be-28a7-4203-beb0-3d2238ddef47</guid><dc:creator>2PrintBeta</dc:creator><description>&lt;p&gt;Thank you for this information. I did not know that the cpu is fully halted while pages are ereased.&lt;/p&gt;
&lt;p&gt;The data i am playing is in normal memory (i am not playing directly from flash) so dma to i2s should still work.&lt;/p&gt;
&lt;p&gt;I just made some experiments and i can reduce/remove the distortions if i increase the dma buffers to much bigger sizes so i do not run out of data while the cpu is blocked.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: fds garbage collection interferes with i2s communication</title><link>https://devzone.nordicsemi.com/thread/196098?ContentTypeID=1</link><pubDate>Wed, 03 Jul 2019 02:31:40 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b6d4d2c6-b7bd-4fb1-8734-e4da9703e845</guid><dc:creator>RK</dc:creator><description>&lt;p&gt;well yes, from the product spec&lt;/p&gt;
&lt;table class="table parameter" id="unique_156661312__flash_programming" border="1" cellpadding="4" cellspacing="0" frame="border" rules="all" summary=""&gt;
&lt;tbody class="tbody"&gt;
&lt;tr class="row param" id="unique_156661312__t_erasepage"&gt;
&lt;td class="entry" colspan="1" headers="d14640828e6050" rowspan="1" valign="top" width="12.82051282051282%"&gt;t&lt;sub class="ph sub"&gt;ERASEPAGE&lt;/sub&gt;&lt;/td&gt;
&lt;td class="entry" colspan="1" headers="d14640828e6053" rowspan="1" valign="top" width="38.46153846153847%"&gt;
&lt;p class="p"&gt;Time to erase one page&lt;/p&gt;
&lt;/td&gt;
&lt;td class="entry" colspan="1" headers="d14640828e6056" rowspan="1" valign="top" width="6.41025641025641%"&gt;&lt;/td&gt;
&lt;td class="entry" colspan="1" headers="d14640828e6059" rowspan="1" valign="top" width="6.41025641025641%"&gt;&lt;/td&gt;
&lt;td class="entry" colspan="1" headers="d14640828e6062" rowspan="1" valign="top" width="6.41025641025641%"&gt;&lt;/td&gt;
&lt;td class="entry" colspan="1" headers="d14640828e6066" rowspan="1" valign="top" width="6.41025641025641%"&gt;&lt;span class="ph" id="unique_156661312__t_erasepage.min"&gt;2.05&lt;/span&gt;&lt;/td&gt;
&lt;td class="entry" colspan="1" headers="d14640828e6069" rowspan="1" valign="top" width="6.41025641025641%"&gt;&lt;span class="ph" id="unique_156661312__t_erasepage.typ"&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td class="entry" colspan="1" headers="d14640828e6072" rowspan="1" valign="top" width="6.41025641025641%"&gt;&lt;span class="ph" id="unique_156661312__t_erasepage.max"&gt;89.7&lt;/span&gt;&lt;/td&gt;
&lt;td class="entry" colspan="1" headers="d14640828e6075" rowspan="1" valign="top" width="3.8461538461538463%"&gt;ms&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;and during page erase the CPU is halted so you have at least 2ms and at most nearly 100ms during which time there&amp;#39;s no CPU work at all.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If you&amp;#39;re using flash for this there&amp;#39;s really not much you can do about it at all. The page has to be cleared, it&amp;#39;s going to take some number of ms to do that and you&amp;#39;re stuck with it. Your only option apart from storing the data in an entirely different place, eg a QSPI external memory or similar which doesn&amp;#39;t stop the CPU when it&amp;#39;s cleared I guess is to fade out the audio before a flash garbage collection and then fade it back it, at least it won&amp;#39;t be distorted. Don&amp;#39;t have a lot of better ideas.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>