<?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 Analog frontend interface in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Analog-frontend-interface/m-p/615195#M36580</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have analog frontend IC sampling image sensor&amp;nbsp;which outputs data on 8 bit parallel bus every falling edge of its clock, approx. 600 000&amp;nbsp;samples per second.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I want the samples to be written to Kinetis K26 RAM as they arrive from the IC. Is it possible with some Kinetis peripheral (i.e. not involving CPU)?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 13 Jan 2017 23:20:05 GMT</pubDate>
    <dc:creator>martindusek</dc:creator>
    <dc:date>2017-01-13T23:20:05Z</dc:date>
    <item>
      <title>Analog frontend interface</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Analog-frontend-interface/m-p/615195#M36580</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have analog frontend IC sampling image sensor&amp;nbsp;which outputs data on 8 bit parallel bus every falling edge of its clock, approx. 600 000&amp;nbsp;samples per second.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I want the samples to be written to Kinetis K26 RAM as they arrive from the IC. Is it possible with some Kinetis peripheral (i.e. not involving CPU)?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 13 Jan 2017 23:20:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Analog-frontend-interface/m-p/615195#M36580</guid>
      <dc:creator>martindusek</dc:creator>
      <dc:date>2017-01-13T23:20:05Z</dc:date>
    </item>
    <item>
      <title>Re: Analog frontend interface</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Analog-frontend-interface/m-p/615196#M36581</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can use a GPIO to generate a DMA transfer request on any edge. A DMA channel can copy the 8 bits of data from the FlexBus to internal SRAM. 600kByte/s is a low load for this.&lt;/P&gt;&lt;P&gt;Below is how it is configured in the uTasker project (example of reading to a 1k circular RAM buffer on each falling edge of PTB16). Optionally an interrupt can be triggered each time the circular buffer is half-full or when it circles back. The code can be used on any Kinetis processor with DMA (compatible with Cortex M4 and M0+ parts).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="language-c line-numbers"&gt;&lt;CODE&gt;&lt;SPAN class="keyword token"&gt;static&lt;/SPAN&gt; &lt;SPAN class="keyword token"&gt;unsigned&lt;/SPAN&gt; &lt;SPAN class="keyword token"&gt;char&lt;/SPAN&gt; ucInputBuffer&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;1024&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;// circular buffer to receive into&lt;/SPAN&gt;
INTERRUPT_SETUP interrupt_setup&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;// interrupt configuration parameters&lt;/SPAN&gt;
interrupt_setup&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;int_type&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; PORT_INTERRUPT&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;// identifier to configure port interrupt/DMA&lt;/SPAN&gt;
interrupt_setup&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;int_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;// no interrupt handler when using DMA&lt;/SPAN&gt;
interrupt_setup&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;int_port&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; PORTB&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;// the port that the interrupt input is on&lt;/SPAN&gt;
interrupt_setup&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;int_port_bits&amp;nbsp; &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; PORTB_BIT16&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;// input pin controlling triggers&lt;/SPAN&gt;
interrupt_setup&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;int_port_sense &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;IRQ_FALLING_EDGE &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt; PULLUP_ON &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt; PORT_DMA_MODEL&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;// DMA on falling edges&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;// Configure DMA channel 9 to transfer a byte from an external address to the input circular buffer on each trigger&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;//&lt;/SPAN&gt;
&lt;SPAN class="token function"&gt;fnConfigDMA_buffer&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;9&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; DMAMUX0_CHCFG_SOURCE_PORTB&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="keyword token"&gt;sizeof&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;ucInputBuffer&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; EXTERNAL_ADDRESS&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; ucInputBuffer&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;DMA_DIRECTION_INPUT &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt; DMA_BYTES&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token function"&gt;fnConfigureInterrupt&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="keyword token"&gt;void&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;*&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="operator token"&gt;&amp;amp;&lt;/SPAN&gt;interrupt_setup&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;// configure interrupt/DMA and begin&lt;/SPAN&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Mark&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fwww.utasker.com%2Fkinetis%2FTWR-K65F180M.html" rel="nofollow noopener noreferrer" target="_blank"&gt;http://www.utasker.com/kinetis/TWR-K65F180M.html&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 14 Jan 2017 18:26:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Analog-frontend-interface/m-p/615196#M36581</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2017-01-14T18:26:13Z</dc:date>
    </item>
    <item>
      <title>Re: Analog frontend interface</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Analog-frontend-interface/m-p/615197#M36582</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, Martin,&lt;/P&gt;&lt;P&gt;I think the Kinetis K26 can read the data from the sensor via DMA or interrupt mode using the GPIO parallel data bus or FlexBus bus as Mark said, but we need the detail, can you give us the part number so that we can have a review?&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, 16 Jan 2017 03:23:16 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Analog-frontend-interface/m-p/615197#M36582</guid>
      <dc:creator>xiangjun_rong</dc:creator>
      <dc:date>2017-01-16T03:23:16Z</dc:date>
    </item>
  </channel>
</rss>

