<?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 How long does an ISELED command needs? in S32 SDK</title>
    <link>https://community.nxp.com/t5/S32-SDK/How-long-does-an-ISELED-command-needs/m-p/961911#M1237</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="vertical-align: inherit; "&gt;Hi,&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="vertical-align: inherit; "&gt;I am using ISELED BETA_3.9.0 SDK in combination with SDK RTM 3. &lt;/SPAN&gt;&lt;SPAN style="vertical-align: inherit; "&gt;0 &lt;/SPAN&gt;&lt;SPAN style="vertical-align: inherit; "&gt;.0 &lt;/SPAN&gt;&lt;SPAN style="vertical-align: inherit; "&gt;on &lt;/SPAN&gt;&lt;SPAN style="vertical-align: inherit; "&gt;S32 &lt;/SPAN&gt;&lt;SPAN style="vertical-align: inherit; "&gt;K &lt;/SPAN&gt;&lt;SPAN style="vertical-align: inherit; "&gt;144.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="vertical-align: inherit; "&gt;I would like to know &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="vertical-align: inherit; "&gt;1. what is the formula to calculate timeout to initialize a strip with N LEDs on it?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="vertical-align: inherit; "&gt;2. How long does it take to&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="vertical-align: inherit; "&gt;digLED_Set_RGB () and&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="vertical-align: inherit; "&gt;digLED_Set_DIM () commands?&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="vertical-align: inherit;"&gt;&lt;SPAN style="vertical-align: inherit;"&gt;Currently it's taking over 200us to do that and sounds too long to me. &lt;/SPAN&gt;&lt;SPAN style="vertical-align: inherit;"&gt;I read in release note that&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="vertical-align: inherit; "&gt;[Compare with the old function (on S32K116, gcc, -O1 optimization): &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="vertical-align: inherit; "&gt;Flash usage: &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="vertical-align: inherit; "&gt;Old: 1724 bytes (text + rodata) &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="vertical-align: inherit; "&gt;New: 432 bytes (text + rodata) -&amp;gt; ~ 3.99x improvement &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="vertical-align: inherit; "&gt;Run time (DOWNSTREAM): &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="vertical-align: inherit; "&gt;Old: 21.166ns / iteration &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="vertical-align: inherit; "&gt;New: 2.144ns / iteration -&amp;gt; ~ 9.86x improvement &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="vertical-align: inherit; "&gt;Run time (UPSTREAM): &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="vertical-align: inherit; "&gt;Old: 8.916ns / iteration &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="vertical-align: inherit; "&gt;New: 2.494ns / iteration -&amp;gt; ~ 3.57x improvement]&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="vertical-align: inherit; "&gt;Is it only valid for&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="vertical-align: inherit; "&gt;S32K116?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="vertical-align: inherit; "&gt;Thank you for your time and help.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="vertical-align: inherit; "&gt;Best regards,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="vertical-align: inherit; "&gt;Leila&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 24 Oct 2019 10:51:54 GMT</pubDate>
    <dc:creator>leila</dc:creator>
    <dc:date>2019-10-24T10:51:54Z</dc:date>
    <item>
      <title>How long does an ISELED command needs?</title>
      <link>https://community.nxp.com/t5/S32-SDK/How-long-does-an-ISELED-command-needs/m-p/961911#M1237</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="vertical-align: inherit; "&gt;Hi,&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="vertical-align: inherit; "&gt;I am using ISELED BETA_3.9.0 SDK in combination with SDK RTM 3. &lt;/SPAN&gt;&lt;SPAN style="vertical-align: inherit; "&gt;0 &lt;/SPAN&gt;&lt;SPAN style="vertical-align: inherit; "&gt;.0 &lt;/SPAN&gt;&lt;SPAN style="vertical-align: inherit; "&gt;on &lt;/SPAN&gt;&lt;SPAN style="vertical-align: inherit; "&gt;S32 &lt;/SPAN&gt;&lt;SPAN style="vertical-align: inherit; "&gt;K &lt;/SPAN&gt;&lt;SPAN style="vertical-align: inherit; "&gt;144.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="vertical-align: inherit; "&gt;I would like to know &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="vertical-align: inherit; "&gt;1. what is the formula to calculate timeout to initialize a strip with N LEDs on it?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="vertical-align: inherit; "&gt;2. How long does it take to&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="vertical-align: inherit; "&gt;digLED_Set_RGB () and&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="vertical-align: inherit; "&gt;digLED_Set_DIM () commands?&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="vertical-align: inherit;"&gt;&lt;SPAN style="vertical-align: inherit;"&gt;Currently it's taking over 200us to do that and sounds too long to me. &lt;/SPAN&gt;&lt;SPAN style="vertical-align: inherit;"&gt;I read in release note that&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="vertical-align: inherit; "&gt;[Compare with the old function (on S32K116, gcc, -O1 optimization): &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="vertical-align: inherit; "&gt;Flash usage: &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="vertical-align: inherit; "&gt;Old: 1724 bytes (text + rodata) &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="vertical-align: inherit; "&gt;New: 432 bytes (text + rodata) -&amp;gt; ~ 3.99x improvement &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="vertical-align: inherit; "&gt;Run time (DOWNSTREAM): &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="vertical-align: inherit; "&gt;Old: 21.166ns / iteration &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="vertical-align: inherit; "&gt;New: 2.144ns / iteration -&amp;gt; ~ 9.86x improvement &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="vertical-align: inherit; "&gt;Run time (UPSTREAM): &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="vertical-align: inherit; "&gt;Old: 8.916ns / iteration &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="vertical-align: inherit; "&gt;New: 2.494ns / iteration -&amp;gt; ~ 3.57x improvement]&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="vertical-align: inherit; "&gt;Is it only valid for&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="vertical-align: inherit; "&gt;S32K116?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="vertical-align: inherit; "&gt;Thank you for your time and help.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="vertical-align: inherit; "&gt;Best regards,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="vertical-align: inherit; "&gt;Leila&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 24 Oct 2019 10:51:54 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32-SDK/How-long-does-an-ISELED-command-needs/m-p/961911#M1237</guid>
      <dc:creator>leila</dc:creator>
      <dc:date>2019-10-24T10:51:54Z</dc:date>
    </item>
    <item>
      <title>Re: How long does an ISELED command needs?</title>
      <link>https://community.nxp.com/t5/S32-SDK/How-long-does-an-ISELED-command-needs/m-p/961912#M1238</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Leila,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1.&amp;nbsp;The INIT sequence duration depends on the number of LEDs (max. 4072) and the time propagation delay (max. number will be defined by Inova but should be aprox. 8μs). The INIT command travels downstream and takes 4072*8μs and is being processed in every LED (~ns, can be ignored). After this, the 4072 response frames (length of 50 bits + 16 bit latency) travel upstream and take a tpd of 4072*8μs again. Due to fabrication tolerances, the max. bitwidth is +30% of the nominal value (500ns). The total result, for 4072 LEDs is approximately 245ms.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2. The "Set" commands all last the same amount of time to be transmitted. The transmission mode, however, can impact CPU load during the transmission as follows:&lt;/P&gt;&lt;P&gt;- Interrupts mode, CRC enabled:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_1.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/93912i3719F4DC108B9430/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_1.png" alt="pastedImage_1.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;The total time is the interval between the A1 and A2 markers - 68 us. This is the time between calling the digLED_Set_RGB() function, and digLED_Callback is called with the "TRANSMISSION_COMPLETE" event. The second channel represents the CPU usage during the transmission (Frame formatting, CRC calculation, and the transmit interrupts - in total 18.5 us)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;- DMA mode single frame, CRC enabled:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_2.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/93940iC3122B53EE6ED246/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_2.png" alt="pastedImage_2.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;Total time is 77 us, with the total CPU load 18.7 us. DMA mode is not more efficient than interrupts mode for single commands.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;- Block mode DMA, CRC enabled:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_3.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/94006i2A47599C2DA8A024/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_3.png" alt="pastedImage_3.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;This capture represents the Block transmission of 80 SET_RGB or SET_DIM commands using the single "digLED_Send_Cmd_Block" function. This is the most efficient way to address every LED in the strip. In this case, all the processing is done before the transmission begins (512 us) after which DMA sends the 80 frames (4.14 ms) - so about 6.4 us CPU processing time for each frame. The screenshots above were taken using S32K144 running at 80 Mhz, 40 Mhz FlexIO clock, cache enabled.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The times you are citing from the release notes refer to the CRC calculation time for one frame. It was measured on S32K116 as it is the least powerful. Those times are included in the CPU usage shown in the graphs.&lt;/P&gt;&lt;P&gt;Hope this helps.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;Dragos&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 29 Oct 2019 13:53:25 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32-SDK/How-long-does-an-ISELED-command-needs/m-p/961912#M1238</guid>
      <dc:creator>dragosrachitan</dc:creator>
      <dc:date>2019-10-29T13:53:25Z</dc:date>
    </item>
  </channel>
</rss>

