<?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 Re: LPC4370 ADCHS high interrupt jitter in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC4370-ADCHS-high-interrupt-jitter/m-p/973041#M38488</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, Vitaliy,&lt;/P&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;P&gt;I think your problem becomes the question how the LPC4370 can run in parallel, for example when the ADC interrupt happens, all the processes occur simultaneously. The DMA transfer data from ADC result register to memory, while the core fetches code from spifi flash or onm-chip RAM, the core writes registers to stack, so it is difficult.&lt;/P&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;P&gt;Anyway, pls refer to the Fig 2. LPC4370 Block diagram (flashless parts, triple-core, 12-bit ADCHS) in UM10503.pdf, put the code into on-chip RAM and run in on-chip, while keep in mind that you have to use different bus so that all the process can run in parallel.&lt;/P&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;P&gt;I do not know if it can help you.&lt;/P&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;P&gt;BR&lt;/P&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;P&gt;XiangJun Rong&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 31 Oct 2019 09:52:16 GMT</pubDate>
    <dc:creator>xiangjun_rong</dc:creator>
    <dc:date>2019-10-31T09:52:16Z</dc:date>
    <item>
      <title>LPC4370 ADCHS high interrupt jitter</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC4370-ADCHS-high-interrupt-jitter/m-p/973040#M38487</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello.&lt;/P&gt;&lt;P&gt;Our application uses HSADC and DMA to write samples to RAM. We also use threshold crossing interrupt to search signal edges.&lt;/P&gt;&lt;P&gt;We achieved the minimum HSADC ISR calling delay by moving the interrupt table and handler to RAM. Now it is about 100 ns. However, this value can only be obtained if the microcontroller is in interrupt wait mode (&lt;EM&gt;__WFI()&lt;/EM&gt;) before it is triggered. If the microcontroller performs any functions before the interrupt is triggered, the delay time becomes unstable and can take values from 100 ns to 2 μs.&lt;/P&gt;&lt;P&gt;Using code optimization and transferring all software to RAM improves stability a little, but does not completely solve the problem. Tell us, please, how to get around this problem?&lt;/P&gt;&lt;DIV style="position: absolute; left: 129px; top: 208.491px;"&gt;&lt;DIV class="gtx-trans-icon"&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV style="position: absolute; left: 466px; top: 81.6981px;"&gt;&lt;DIV class="gtx-trans-icon"&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 27 Oct 2019 20:27:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC4370-ADCHS-high-interrupt-jitter/m-p/973040#M38487</guid>
      <dc:creator>vitaliylivnov</dc:creator>
      <dc:date>2019-10-27T20:27:38Z</dc:date>
    </item>
    <item>
      <title>Re: LPC4370 ADCHS high interrupt jitter</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC4370-ADCHS-high-interrupt-jitter/m-p/973041#M38488</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, Vitaliy,&lt;/P&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;P&gt;I think your problem becomes the question how the LPC4370 can run in parallel, for example when the ADC interrupt happens, all the processes occur simultaneously. The DMA transfer data from ADC result register to memory, while the core fetches code from spifi flash or onm-chip RAM, the core writes registers to stack, so it is difficult.&lt;/P&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;P&gt;Anyway, pls refer to the Fig 2. LPC4370 Block diagram (flashless parts, triple-core, 12-bit ADCHS) in UM10503.pdf, put the code into on-chip RAM and run in on-chip, while keep in mind that you have to use different bus so that all the process can run in parallel.&lt;/P&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;P&gt;I do not know if it can help you.&lt;/P&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;P&gt;BR&lt;/P&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;P&gt;XiangJun Rong&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 31 Oct 2019 09:52:16 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC4370-ADCHS-high-interrupt-jitter/m-p/973041#M38488</guid>
      <dc:creator>xiangjun_rong</dc:creator>
      <dc:date>2019-10-31T09:52:16Z</dc:date>
    </item>
    <item>
      <title>Re: LPC4370 ADCHS high interrupt jitter</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC4370-ADCHS-high-interrupt-jitter/m-p/973042#M38489</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, &lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/xiangjun.rong"&gt;xiangjun.rong&lt;/A&gt;‌&lt;/P&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;P&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;P&gt;Thanks for your answer.&amp;nbsp;We tried to transfer all the code to RAM, and with this we turned off the parallel operation of DMA. Problems begin to occur as soon as the CPU performs any functions during the occurrence of an interrupt. And the more complex and voluminous the function, the greater the delay of the interrupt handler.&lt;/P&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;P&gt;We thought that perhaps the CPU is caching the current instructions, and this takes time.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 02 Nov 2019 21:31:19 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC4370-ADCHS-high-interrupt-jitter/m-p/973042#M38489</guid>
      <dc:creator>vitaliylivnov</dc:creator>
      <dc:date>2019-11-02T21:31:19Z</dc:date>
    </item>
    <item>
      <title>Re: LPC4370 ADCHS high interrupt jitter</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC4370-ADCHS-high-interrupt-jitter/m-p/973043#M38490</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, Vitaliy,&lt;/P&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;P&gt;As you know that the LPC4370 has MPU(Memory Protection Unit), you have to configure the SRAM as a region so that the SRAM location is code-fetch enabled.&lt;/P&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;P&gt;Pls refer to the following section.&lt;/P&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;P&gt;I copy the UM of Cortex-M4, which includes the MPU chapter.&lt;/P&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;P&gt;Hope it can help you&lt;/P&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;P&gt;BR&lt;/P&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;P&gt;Xiangjun Rong&lt;/P&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;P&gt;3.3.6 Memory Protection Unit (MPU)&lt;BR /&gt;The MPU is a integral part of the ARM Cortex-M4 for memory protection and supported by&lt;BR /&gt;all LPC43xx parts. The processor supports the standard ARMv7 Protected Memory&lt;BR /&gt;System Architecture model. The MPU provides full support for:&lt;BR /&gt;• protection regions&lt;BR /&gt;• overlapping protection regions, with ascending region priority (7 = highest priority, 0 =&lt;BR /&gt;lowest priority)&lt;BR /&gt;• access permissions&lt;BR /&gt;• exporting memory attributes to the system&lt;BR /&gt;MPU mismatches and permission violations invoke the programmable-priority&lt;BR /&gt;MemManage fault handler. See the ARMv7-M Architecture Reference Manual for more&lt;BR /&gt;information.&lt;BR /&gt;The access permission bits, TEX, C, B, AP, and XN, of the Region Access Control&lt;BR /&gt;Register control access to the corresponding memory region. If an access is made to an&lt;BR /&gt;area of memory without the required permissions, a permission fault is raised. For more&lt;BR /&gt;information, see the ARMv7-M Architecture Reference Manual.&lt;BR /&gt;The MPU is used to enforce privilege rules, to separate processes, and to enforce access&lt;BR /&gt;rules. For details on how to use the MPU and for the register description refer to the ARM&lt;BR /&gt;Cortex-M4 Technical Reference Manual.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 04 Nov 2019 02:48:41 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC4370-ADCHS-high-interrupt-jitter/m-p/973043#M38490</guid>
      <dc:creator>xiangjun_rong</dc:creator>
      <dc:date>2019-11-04T02:48:41Z</dc:date>
    </item>
    <item>
      <title>Re: LPC4370 ADCHS high interrupt jitter</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC4370-ADCHS-high-interrupt-jitter/m-p/973044#M38491</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, &lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/xiangjun.rong"&gt;xiangjun.rong&lt;/A&gt;‌&lt;/P&gt;&lt;P&gt;Thanks for your answer.&amp;nbsp;&lt;/P&gt;&lt;P&gt;We have the following configuration of regions.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="2019-11-08 (1).png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/93496i116E39D61EE6A304/image-size/large?v=v2&amp;amp;px=999" role="button" title="2019-11-08 (1).png" alt="2019-11-08 (1).png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;The code is executed from the RamLoc128 region. If I correctly understood the purpose of the MPU, it throws an exception if we try to execute code from a region that is not intended for this. We don’t have an exception; accordingly, our region has the correct configuration, right? Please correct me if I misunderstood you.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 Nov 2019 20:35:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC4370-ADCHS-high-interrupt-jitter/m-p/973044#M38491</guid>
      <dc:creator>vitaliylivnov</dc:creator>
      <dc:date>2019-11-08T20:35:37Z</dc:date>
    </item>
    <item>
      <title>Re: LPC4370 ADCHS high interrupt jitter</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC4370-ADCHS-high-interrupt-jitter/m-p/973045#M38492</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, Vitaliy,&lt;/P&gt;&lt;P&gt;You are right, for the MPU, if you configure region incorrectly, when you access the region, the MemManage exception will be triggered. If you don’t have an exception; accordingly, the region has the correct configuration.&lt;/P&gt;&lt;P&gt;BR&lt;/P&gt;&lt;P&gt;XiangJun Rong&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 11 Nov 2019 09:47:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC4370-ADCHS-high-interrupt-jitter/m-p/973045#M38492</guid>
      <dc:creator>xiangjun_rong</dc:creator>
      <dc:date>2019-11-11T09:47:17Z</dc:date>
    </item>
    <item>
      <title>Re: LPC4370 ADCHS high interrupt jitter</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC4370-ADCHS-high-interrupt-jitter/m-p/973046#M38493</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi. &lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/xiangjun.rong"&gt;xiangjun.rong&lt;/A&gt;‌&lt;/P&gt;&lt;P&gt;That is, at the moment, the cause of the problem is unclear?&lt;BR /&gt;I noticed that MPU allows you to disable caching for different regions. Perhaps this can speed up the code and reduce jitter time of ISR call?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 13 Nov 2019 08:40:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC4370-ADCHS-high-interrupt-jitter/m-p/973046#M38493</guid>
      <dc:creator>vitaliylivnov</dc:creator>
      <dc:date>2019-11-13T08:40:44Z</dc:date>
    </item>
  </channel>
</rss>

