<?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 ADC slef Test in S32K</title>
    <link>https://community.nxp.com/t5/S32K/ADC-slef-Test/m-p/2167985#M52609</link>
    <description>&lt;H3&gt;&lt;STRONG&gt;Project Overview&lt;/STRONG&gt;&lt;/H3&gt;&lt;P&gt;I’m working on a design where ADC sampling is triggered through an&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;eMIOS → BCTU → ADC&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;chain. The BCTU receives triggers from&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;eMIOS PWM channels&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;configured in&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;OPWMT mode&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;to create precise timing offsets between trigger events.&lt;/P&gt;&lt;HR /&gt;&lt;H3&gt;&lt;STRONG&gt;Current Setup&lt;/STRONG&gt;&lt;/H3&gt;&lt;UL&gt;&lt;LI&gt;&lt;STRONG&gt;ADC0&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;processes two groups of signals:&lt;UL&gt;&lt;LI&gt;&lt;STRONG&gt;Group 1&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(two ADC channels) triggered by&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;eMIOS_0_CH1&lt;/STRONG&gt;&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;Group 2&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(two ADC channels) triggered by&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;eMIOS_0_CH2&lt;/STRONG&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;LI&gt;Each signal sample takes about&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;1.3 µs&lt;/STRONG&gt;, so each group requires approximately&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;2.6 µs&lt;/STRONG&gt;.&lt;/LI&gt;&lt;LI&gt;The second group (triggered by CH2) is offset by&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;3.6 µs (+1 µs margin)&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;to avoid overlap with the first group.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;Timing sequence:&lt;/STRONG&gt;&lt;/P&gt;&lt;PRE&gt;Time (µs):    0          1.3        2.6        3.6        4.9        6.2        7.2
              |----------|----------|----------|----------|----------|----------|----------|

eMIOS_0_CH1   ---&amp;gt; adc_ch1 (start at 0 µs)
              ---&amp;gt; adc_ch2 (after 1.3 µs)

eMIOS_0_CH2   (offset by 3.6 µs)
              ---&amp;gt; adc_ch1 (start at 3.6 µs)
              ---&amp;gt; adc_ch2 (after 1.3 µs → ~4.9 µs)

eMIOS_0_CH4   (offset by 7.2 µs)
              ---&amp;gt; software trigger for ADC0 self-test&lt;/PRE&gt;&lt;UL&gt;&lt;LI&gt;After both groups complete, I added&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;eMIOS_0_CH4&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;as a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;software trigger&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(via callback) to start an&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;ADC self-test&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;on ADC0.using the&amp;nbsp;Adc_Sar_Ip_SelfTest&amp;nbsp;API&lt;/LI&gt;&lt;LI&gt;CH4 is offset by&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;7.2 µs&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;to ensure all sampling is complete before the self-test begins.&lt;/LI&gt;&lt;/UL&gt;&lt;HR /&gt;&lt;H3&gt;&lt;STRONG&gt;Observation&lt;/STRONG&gt;&lt;/H3&gt;&lt;P&gt;When I toggle a GPIO in the CH4 callback, it fires as expected. However, running the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;ADC self-test&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;for a single ADC instance takes about&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;13 µs&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(measured in software).&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Skærmbillede 2025-09-11 173539.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/356541i693EEEED278EC4E0/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Skærmbillede 2025-09-11 173539.png" alt="Skærmbillede 2025-09-11 173539.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;HR /&gt;&lt;H3&gt;&lt;STRONG&gt;Question&lt;/STRONG&gt;&lt;/H3&gt;&lt;UL&gt;&lt;LI&gt;Is this self-test duration (~13 µs) expected for S32K3xx ADC (Algorithm S + C)?&lt;/LI&gt;&lt;LI&gt;My calculations:&lt;UL&gt;&lt;LI&gt;Sampling Phase Time (ST) = 23&lt;/LI&gt;&lt;LI&gt;Evaluation Time per bit = 4&lt;/LI&gt;&lt;LI&gt;Data Processing Time (DP) = 2&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Ayaz_1-1757609074765.png" style="width: 565px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/356538iBC58C5EB5EA04E32/image-dimensions/565x126?v=v2" width="565" height="126" role="button" title="Ayaz_1-1757609074765.png" alt="Ayaz_1-1757609074765.png" /&gt;&lt;/span&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;LI&gt;What is the best way to schedule the self-test without impacting the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;25 µs acquisition cycle&lt;/STRONG&gt;? Are there alternative or more efficient methods to trigger self-tests for ADCs, considering that each instance may contain multiple ADC channel groups? I'm currently using the&amp;nbsp;Adc_Sar_Ip_SelfTest&amp;nbsp;API from the RTD, and I would like to know whether it's more appropriate to perform the self-test during initialization, at runtime, or both. What are the best practices for handling ADC self-tests in terms of timing, reliability, and overall system performance?&lt;/LI&gt;&lt;LI&gt;Would masking only ADC0 triggers (instead of freezing all BCTU triggers) be the right approach to keep ADC1 and ADC2 running during the self-test?&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;Goal:&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Ensure periodic self-test on ADC0 without disturbing the real-time sampling of other ADCs.&lt;BR /&gt;&amp;nbsp;I have attached my project so you can have a look.&lt;BR /&gt;s32k344&lt;BR /&gt;RTD_6.0.0&lt;/P&gt;</description>
    <pubDate>Thu, 11 Sep 2025 16:51:40 GMT</pubDate>
    <dc:creator>Ayaz</dc:creator>
    <dc:date>2025-09-11T16:51:40Z</dc:date>
    <item>
      <title>ADC slef Test</title>
      <link>https://community.nxp.com/t5/S32K/ADC-slef-Test/m-p/2167985#M52609</link>
      <description>&lt;H3&gt;&lt;STRONG&gt;Project Overview&lt;/STRONG&gt;&lt;/H3&gt;&lt;P&gt;I’m working on a design where ADC sampling is triggered through an&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;eMIOS → BCTU → ADC&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;chain. The BCTU receives triggers from&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;eMIOS PWM channels&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;configured in&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;OPWMT mode&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;to create precise timing offsets between trigger events.&lt;/P&gt;&lt;HR /&gt;&lt;H3&gt;&lt;STRONG&gt;Current Setup&lt;/STRONG&gt;&lt;/H3&gt;&lt;UL&gt;&lt;LI&gt;&lt;STRONG&gt;ADC0&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;processes two groups of signals:&lt;UL&gt;&lt;LI&gt;&lt;STRONG&gt;Group 1&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(two ADC channels) triggered by&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;eMIOS_0_CH1&lt;/STRONG&gt;&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;Group 2&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(two ADC channels) triggered by&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;eMIOS_0_CH2&lt;/STRONG&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;LI&gt;Each signal sample takes about&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;1.3 µs&lt;/STRONG&gt;, so each group requires approximately&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;2.6 µs&lt;/STRONG&gt;.&lt;/LI&gt;&lt;LI&gt;The second group (triggered by CH2) is offset by&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;3.6 µs (+1 µs margin)&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;to avoid overlap with the first group.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;Timing sequence:&lt;/STRONG&gt;&lt;/P&gt;&lt;PRE&gt;Time (µs):    0          1.3        2.6        3.6        4.9        6.2        7.2
              |----------|----------|----------|----------|----------|----------|----------|

eMIOS_0_CH1   ---&amp;gt; adc_ch1 (start at 0 µs)
              ---&amp;gt; adc_ch2 (after 1.3 µs)

eMIOS_0_CH2   (offset by 3.6 µs)
              ---&amp;gt; adc_ch1 (start at 3.6 µs)
              ---&amp;gt; adc_ch2 (after 1.3 µs → ~4.9 µs)

eMIOS_0_CH4   (offset by 7.2 µs)
              ---&amp;gt; software trigger for ADC0 self-test&lt;/PRE&gt;&lt;UL&gt;&lt;LI&gt;After both groups complete, I added&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;eMIOS_0_CH4&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;as a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;software trigger&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(via callback) to start an&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;ADC self-test&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;on ADC0.using the&amp;nbsp;Adc_Sar_Ip_SelfTest&amp;nbsp;API&lt;/LI&gt;&lt;LI&gt;CH4 is offset by&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;7.2 µs&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;to ensure all sampling is complete before the self-test begins.&lt;/LI&gt;&lt;/UL&gt;&lt;HR /&gt;&lt;H3&gt;&lt;STRONG&gt;Observation&lt;/STRONG&gt;&lt;/H3&gt;&lt;P&gt;When I toggle a GPIO in the CH4 callback, it fires as expected. However, running the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;ADC self-test&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;for a single ADC instance takes about&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;13 µs&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(measured in software).&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Skærmbillede 2025-09-11 173539.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/356541i693EEEED278EC4E0/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Skærmbillede 2025-09-11 173539.png" alt="Skærmbillede 2025-09-11 173539.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;HR /&gt;&lt;H3&gt;&lt;STRONG&gt;Question&lt;/STRONG&gt;&lt;/H3&gt;&lt;UL&gt;&lt;LI&gt;Is this self-test duration (~13 µs) expected for S32K3xx ADC (Algorithm S + C)?&lt;/LI&gt;&lt;LI&gt;My calculations:&lt;UL&gt;&lt;LI&gt;Sampling Phase Time (ST) = 23&lt;/LI&gt;&lt;LI&gt;Evaluation Time per bit = 4&lt;/LI&gt;&lt;LI&gt;Data Processing Time (DP) = 2&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Ayaz_1-1757609074765.png" style="width: 565px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/356538iBC58C5EB5EA04E32/image-dimensions/565x126?v=v2" width="565" height="126" role="button" title="Ayaz_1-1757609074765.png" alt="Ayaz_1-1757609074765.png" /&gt;&lt;/span&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;LI&gt;What is the best way to schedule the self-test without impacting the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;25 µs acquisition cycle&lt;/STRONG&gt;? Are there alternative or more efficient methods to trigger self-tests for ADCs, considering that each instance may contain multiple ADC channel groups? I'm currently using the&amp;nbsp;Adc_Sar_Ip_SelfTest&amp;nbsp;API from the RTD, and I would like to know whether it's more appropriate to perform the self-test during initialization, at runtime, or both. What are the best practices for handling ADC self-tests in terms of timing, reliability, and overall system performance?&lt;/LI&gt;&lt;LI&gt;Would masking only ADC0 triggers (instead of freezing all BCTU triggers) be the right approach to keep ADC1 and ADC2 running during the self-test?&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;Goal:&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Ensure periodic self-test on ADC0 without disturbing the real-time sampling of other ADCs.&lt;BR /&gt;&amp;nbsp;I have attached my project so you can have a look.&lt;BR /&gt;s32k344&lt;BR /&gt;RTD_6.0.0&lt;/P&gt;</description>
      <pubDate>Thu, 11 Sep 2025 16:51:40 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/ADC-slef-Test/m-p/2167985#M52609</guid>
      <dc:creator>Ayaz</dc:creator>
      <dc:date>2025-09-11T16:51:40Z</dc:date>
    </item>
    <item>
      <title>Re: ADC slef Test</title>
      <link>https://community.nxp.com/t5/S32K/ADC-slef-Test/m-p/2172326#M52828</link>
      <description>&lt;P&gt;Thank you for your interest in our products and for contributing to our community.&lt;/P&gt;
&lt;P&gt;According with &lt;EM&gt;60.3.17.2 Self-test&lt;/EM&gt; section: &lt;EM&gt;Individual steps can take up to 1 µs at 80 MHz ADC clock frequency.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;Please find attached example. In practice, I cannot get less than 14us per instance.&lt;/P&gt;
&lt;P&gt;For safety applications, it is important to verify correct operation at regular intervals. But also consider that the ADC Self-Test function should be called at any time after driver was initialized and there are no ongoing conversions.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="_Leo__0-1758237227307.png" style="width: 999px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/357614iE0C49172958BDFD8/image-size/large?v=v2&amp;amp;px=999" role="button" title="_Leo__0-1758237227307.png" alt="_Leo__0-1758237227307.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;When you suspend debug session, in &lt;EM&gt;Expressions&lt;/EM&gt; tab you can observe results: &lt;EM&gt;g_fifo1Result&lt;/EM&gt;, which corresponds to the BCTU list measurements, meanwhile &lt;EM&gt;g_fifo1Volts&lt;/EM&gt; corresponds to the conversion in volts.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="_Leo__1-1758237302648.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/357615i1182A6528F989166/image-size/medium?v=v2&amp;amp;px=400" role="button" title="_Leo__1-1758237302648.png" alt="_Leo__1-1758237302648.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;We hope this resolves your issue.&lt;/P&gt;
&lt;P&gt;For more questions, please help me creating a &lt;STRONG&gt;new post&lt;/STRONG&gt;.&lt;/P&gt;</description>
      <pubDate>Thu, 18 Sep 2025 23:18:50 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/ADC-slef-Test/m-p/2172326#M52828</guid>
      <dc:creator>_Leo_</dc:creator>
      <dc:date>2025-09-18T23:18:50Z</dc:date>
    </item>
  </channel>
</rss>

