<?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>Kinetis MicrocontrollersのトピックRe: can i get interrupt when DMA transfer done when one frame received?</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/can-i-get-interrupt-when-DMA-transfer-done-when-one-frame/m-p/834847#M50469</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Nilesh,&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;CITER is the counter of major loop. The minor loop is the sequence of read-write operations that transfers these NBYTES per service request, for example, 32 byte video data(flexIO buffer size). Each service request executes one iteration of the major loop, which transfers NBYTES of data, for example, a full 640x480/32 minor loop data. When mojor loop count complete, TCDn_CSR[DONE] will be set. If TCDn_CSR[INTMAJOR]==1, interrupt is generated.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As to the VSYNC, from the OV7670 spec, I get that one frame should have one VSYNC.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Jing&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 06 Jul 2018 07:18:35 GMT</pubDate>
    <dc:creator>jingpan</dc:creator>
    <dc:date>2018-07-06T07:18:35Z</dc:date>
    <item>
      <title>can i get interrupt when DMA transfer done when one frame received?</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/can-i-get-interrupt-when-DMA-transfer-done-when-one-frame/m-p/834844#M50466</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;i have integrate image sensor&amp;nbsp; with TWRK80 board using flexio DMA transfer. My image sensor resolution is 640*480&lt;/P&gt;&lt;P&gt;total 307200 bytes received. so i have confusion about interrupt when full frame received i&amp;nbsp; want interrupt in DMA transfer done. please help me out of this&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FLEXIO_Ov7670StartCapture(1); used for capture start&lt;/P&gt;&lt;P&gt;FLEXIO_Ov7670StartCapture(0);&amp;nbsp; for capture stop&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 30 Jun 2018 09:29:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/can-i-get-interrupt-when-DMA-transfer-done-when-one-frame/m-p/834844#M50466</guid>
      <dc:creator>nileshravaliya</dc:creator>
      <dc:date>2018-06-30T09:29:31Z</dc:date>
    </item>
    <item>
      <title>Re: can i get interrupt when DMA transfer done when one frame received?</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/can-i-get-interrupt-when-DMA-transfer-done-when-one-frame/m-p/834845#M50467</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Nilesh,&lt;/P&gt;&lt;P&gt;I don't know where 'FLEXIO_Ov7670StartCapture' comes from, so I only say something about EDMA and OV7670 base on AN5275(you can download it from NXP website). &lt;BR /&gt;I think there are 2 signals which you can use to generate frame interrupt. First is VSYNC. It is generated when a frame end. You can use it to generate interrupt. Please see the hardware_init.c line 118(in an5275sw). The other signal is from EDMA. Driver use EDMA channel3 to restore eDMA channel 17 iteation count(CITER) to synchronize with frame at VSYNC edge. It also can generate interrupt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Jing&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Jul 2018 09:38:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/can-i-get-interrupt-when-DMA-transfer-done-when-one-frame/m-p/834845#M50467</guid>
      <dc:creator>jingpan</dc:creator>
      <dc:date>2018-07-04T09:38:04Z</dc:date>
    </item>
    <item>
      <title>Re: can i get interrupt when DMA transfer done when one frame received?</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/can-i-get-interrupt-when-DMA-transfer-done-when-one-frame/m-p/834846#M50468</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi jingpan,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I know that vsync generates two times, first is start of frame and second is end of frame meanwhile two time vsync pulse generates for one frame am I right ??&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have added below code for vsync interrupt till I am getting image data slightly shift from left side as attached image.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;How to moniter CITER value in debug ?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Void main()&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;   stop=1;&lt;/P&gt;&lt;P&gt;   start=0;&lt;/P&gt;&lt;P&gt;    while (1)&lt;/P&gt;&lt;P&gt;    {&lt;/P&gt;&lt;P&gt;                while(stop)&lt;/P&gt;&lt;P&gt;                {&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                    FLEXIO_Ov7670StartCapture(1);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                }&lt;/P&gt;&lt;P&gt;      Stop=1; // again start capture&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;void BOARD_VSYNC_IRQHandler(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;    PORT_Type *portBase[] = PORT_BASE_PTRS;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PORT_ClearPinsInterruptFlags(portBase[BOARD_VSYNC_PORT_INDEX], 1U &amp;lt;&amp;lt; BOARD_VSYNC_PIN_INDEX);&lt;/P&gt;&lt;P&gt;  //  printf("v pulse\n");&lt;/P&gt;&lt;P&gt;    FLEXIO_Ov7670AsynCallback();&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;void FLEXIO_Ov7670StartCapture(uint8_t bufferIndex)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    s_FlexioStartCapture = bufferIndex;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;void FLEXIO_Ov7670AsynCallback(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    FLEXIO_CAMERA_ClearStatusFlags(&amp;amp;s_FlexioCameraDevice,&lt;/P&gt;&lt;P&gt;                                   kFLEXIO_CAMERA_RxDataRegFullFlag | kFLEXIO_CAMERA_RxErrorFlag);&lt;/P&gt;&lt;P&gt;    FLEXIO_CAMERA_EnableRxDMA(&amp;amp;s_FlexioCameraDevice, false);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if (s_FlexioStartCapture &amp;gt; 0 &amp;amp;&amp;amp; start&amp;lt;10)&lt;/P&gt;&lt;P&gt;    {&lt;/P&gt;&lt;P&gt;        start=start+1;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        /* Reset the EDMA source, dest address and transfer counter to sync picture frame */&lt;/P&gt;&lt;P&gt;        DMA0-&amp;gt;TCD[FLEXIO_DMA_CHANNEL].SADDR = FLEXIO_CAMERA_GetRxBufferAddress(&amp;amp;s_FlexioCameraDevice);&lt;/P&gt;&lt;P&gt;        DMA0-&amp;gt;TCD[FLEXIO_DMA_CHANNEL].DADDR = (uint32_t)&amp;amp;g_FlexioCameraFrameBuffer[0][0];&lt;/P&gt;&lt;P&gt;       DMA0-&amp;gt;TCD[FLEXIO_DMA_CHANNEL].CITER_ELINKNO = ((OV7670_FRAME_BYTES &amp;gt;&amp;gt; 5));//00000010010110000000&lt;/P&gt;&lt;P&gt;        DMA0-&amp;gt;TCD[FLEXIO_DMA_CHANNEL].BITER_ELINKNO = ((OV7670_FRAME_BYTES &amp;gt;&amp;gt; 5));&lt;/P&gt;&lt;P&gt;        FLEXIO_CAMERA_EnableRxDMA(&amp;amp;s_FlexioCameraDevice, true);&lt;/P&gt;&lt;P&gt;        s_FlexioStartCapture = 0;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    }&lt;/P&gt;&lt;P&gt;    else&lt;/P&gt;&lt;P&gt;    {&lt;/P&gt;&lt;P&gt;                stop=0;&lt;/P&gt;&lt;P&gt;                s_FlexioStartCapture = 0;&lt;/P&gt;&lt;P&gt;    }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards with&lt;/P&gt;&lt;P&gt;Nilesh Ravaliya&lt;/P&gt;&lt;P&gt;8980035565&lt;/P&gt;&lt;P&gt;Access Computech Pvt. Ltd.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Jul 2018 10:04:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/can-i-get-interrupt-when-DMA-transfer-done-when-one-frame/m-p/834846#M50468</guid>
      <dc:creator>nileshravaliya</dc:creator>
      <dc:date>2018-07-04T10:04:23Z</dc:date>
    </item>
    <item>
      <title>Re: can i get interrupt when DMA transfer done when one frame received?</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/can-i-get-interrupt-when-DMA-transfer-done-when-one-frame/m-p/834847#M50469</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Nilesh,&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;CITER is the counter of major loop. The minor loop is the sequence of read-write operations that transfers these NBYTES per service request, for example, 32 byte video data(flexIO buffer size). Each service request executes one iteration of the major loop, which transfers NBYTES of data, for example, a full 640x480/32 minor loop data. When mojor loop count complete, TCDn_CSR[DONE] will be set. If TCDn_CSR[INTMAJOR]==1, interrupt is generated.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As to the VSYNC, from the OV7670 spec, I get that one frame should have one VSYNC.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Jing&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 06 Jul 2018 07:18:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/can-i-get-interrupt-when-DMA-transfer-done-when-one-frame/m-p/834847#M50469</guid>
      <dc:creator>jingpan</dc:creator>
      <dc:date>2018-07-06T07:18:35Z</dc:date>
    </item>
  </channel>
</rss>

