<?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: Implementation of Parallel Camera Functionality Using FlexIO on RT1176 in Processor Expert Software</title>
    <link>https://community.nxp.com/t5/Processor-Expert-Software/Implementation-of-Parallel-Camera-Functionality-Using-FlexIO-on/m-p/2033075#M5907</link>
    <description>&lt;P&gt;During HSYNC, the bytes received were width x 4 bytes.&lt;/P&gt;&lt;P&gt;An issue occurred with the received frame, causing flexio to not receive all 32 bytes.&lt;/P&gt;&lt;P&gt;Thank you for everything.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;BR,&lt;BR /&gt;seobi&lt;/P&gt;</description>
    <pubDate>Thu, 23 Jan 2025 09:26:35 GMT</pubDate>
    <dc:creator>seobi</dc:creator>
    <dc:date>2025-01-23T09:26:35Z</dc:date>
    <item>
      <title>Implementation of Parallel Camera Functionality Using FlexIO on RT1176</title>
      <link>https://community.nxp.com/t5/Processor-Expert-Software/Implementation-of-Parallel-Camera-Functionality-Using-FlexIO-on/m-p/2009008#M5865</link>
      <description>&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;We are preparing to integrate two cameras with the RT1176.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Currently, one camera is successfully operating with the CSI interface.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;For the additional camera, we are working on implementing the functionality to receive 16-bit parallel camera data using FLEXIO2.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Referring to AN12686 and the an-flexio_camera_rt1010 GitHub repository, we attempted to receive 16-bit data.&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;While the DMA callback is triggered, the received data appears to be incorrect.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;The HSYNC and PCLK (24MHz) signals are being received correctly.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;We would appreciate guidance on what additional configurations might be required.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Please find the relevant code attached. Your assistance would be greatly appreciated.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Best regards,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;void FLEXIO_CAMERA_Init(FLEXIO_CAMERA_Type *base, const flexio_camera_config_t *config)&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; assert((base != NULL) &amp;amp;&amp;amp; (config != NULL));&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; assert(base-&amp;gt;shifterCount &amp;gt; 0U);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint32_t i&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= 0U;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; volatile uint32_t controlVal = 0U;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;#if !(defined(FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL) &amp;amp;&amp;amp; FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; /* Ungate flexio clock. */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; CLOCK_EnableClock(s_flexioClocks[FLEXIO_CAMERA_GetInstance(base)]);&lt;/DIV&gt;&lt;DIV&gt;#endif /* FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; flexio_shifter_config_t shifterConfig;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; flexio_timer_config_t timerConfig;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; /* Clear the shifterConfig &amp;amp; timerConfig struct. */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; (void)memset(&amp;amp;shifterConfig, 0, sizeof(shifterConfig));&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; (void)memset(&amp;amp;timerConfig, 0, sizeof(timerConfig));&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; /* Configure flexio camera */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; controlVal = base-&amp;gt;flexioBase-&amp;gt;CTRL;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; controlVal &amp;amp;=&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ~(FLEXIO_CTRL_DOZEN_MASK | FLEXIO_CTRL_DBGE_MASK | FLEXIO_CTRL_FASTACC_MASK | FLEXIO_CTRL_FLEXEN_MASK);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; controlVal |= (FLEXIO_CTRL_DBGE(config-&amp;gt;enableInDebug) | FLEXIO_CTRL_FASTACC(config-&amp;gt;enableFastAccess) |&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;FLEXIO_CTRL_FLEXEN(config-&amp;gt;enablecamera));&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; if (!config-&amp;gt;enableInDoze)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; controlVal |= FLEXIO_CTRL_DOZEN_MASK;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; }&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; base-&amp;gt;flexioBase-&amp;gt;CTRL = controlVal;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; /* FLEXIO_CAMERA shifter config */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; shifterConfig.timerSelect&amp;nbsp; &amp;nbsp;= base-&amp;gt;timerIdx;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; shifterConfig.timerPolarity = kFLEXIO_ShifterTimerPolarityOnPositive;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; shifterConfig.pinConfig&amp;nbsp; &amp;nbsp; &amp;nbsp;= kFLEXIO_PinConfigOutputDisabled;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; shifterConfig.pinSelect&amp;nbsp; &amp;nbsp; &amp;nbsp;= base-&amp;gt;datPinStartIdx;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; shifterConfig.pinPolarity&amp;nbsp; &amp;nbsp;= kFLEXIO_PinActiveHigh;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; shifterConfig.shifterMode&amp;nbsp; &amp;nbsp;= kFLEXIO_ShifterModeReceive;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; shifterConfig.parallelWidth = 16 - 1U;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; shifterConfig.inputSource&amp;nbsp; &amp;nbsp;= kFLEXIO_ShifterInputFromNextShifterOutput;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; shifterConfig.shifterStop&amp;nbsp; &amp;nbsp;= kFLEXIO_ShifterStopBitDisable;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; shifterConfig.shifterStart&amp;nbsp; = kFLEXIO_ShifterStartBitDisabledLoadDataOnEnable;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; /* Configure the shifters as FIFO buffer. */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; for (i = base-&amp;gt;shifterStartIdx; i &amp;lt; (base-&amp;gt;shifterStartIdx + base-&amp;gt;shifterCount - 1U); i++)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; FLEXIO_SetShifterConfig(base-&amp;gt;flexioBase, (uint8_t)i, &amp;amp;shifterConfig);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; }&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; shifterConfig.inputSource = kFLEXIO_ShifterInputFromPin;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; FLEXIO_SetShifterConfig(base-&amp;gt;flexioBase, (uint8_t)i, &amp;amp;shifterConfig);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; /* FLEXIO_CAMERA timer config, the PCLK's clk is source of timer to drive the shifter, the HREF is the selecting&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* signal for available data. */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; timerConfig.triggerSelect&amp;nbsp; &amp;nbsp;= FLEXIO_TIMER_TRIGGER_SEL_PININPUT(base-&amp;gt;hrefPinIdx);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; timerConfig.triggerPolarity = kFLEXIO_TimerTriggerPolarityActiveHigh;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; timerConfig.triggerSource&amp;nbsp; &amp;nbsp;= kFLEXIO_TimerTriggerSourceInternal;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; timerConfig.pinConfig&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= kFLEXIO_PinConfigOutputDisabled;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; timerConfig.pinSelect&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= base-&amp;gt;pclkPinIdx;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; timerConfig.pinPolarity&amp;nbsp; &amp;nbsp; &amp;nbsp;= kFLEXIO_PinActiveHigh;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; timerConfig.timerMode&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= kFLEXIO_TimerModeSingle16Bit;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; timerConfig.timerOutput&amp;nbsp; &amp;nbsp; &amp;nbsp;= kFLEXIO_TimerOutputZeroNotAffectedByReset;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; timerConfig.timerDecrement&amp;nbsp; = kFLEXIO_TimerDecSrcOnPinInputShiftPinInput;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; timerConfig.timerReset&amp;nbsp; &amp;nbsp; &amp;nbsp; = kFLEXIO_TimerResetOnTimerTriggerRisingEdge;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; timerConfig.timerDisable&amp;nbsp; &amp;nbsp; = kFLEXIO_TimerDisableOnTriggerFallingEdge;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; timerConfig.timerEnable&amp;nbsp; &amp;nbsp; &amp;nbsp;= kFLEXIO_TimerEnableOnTriggerRisingEdge;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; timerConfig.timerStop&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= kFLEXIO_TimerStopBitDisabled;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; timerConfig.timerStart&amp;nbsp; &amp;nbsp; &amp;nbsp; = kFLEXIO_TimerStartBitDisabled;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;#ifdef __CAMERA_DATA_16BIT__&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; timerConfig.timerCompare&amp;nbsp; &amp;nbsp; = 2*((32*base-&amp;gt;shifterCount)/16)-1U;&lt;/DIV&gt;&lt;DIV&gt;#else&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;timerConfig.timerCompare = 8U * base-&amp;gt;shifterCount - 1U;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;#endif&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; FLEXIO_SetTimerConfig(base-&amp;gt;flexioBase, (uint8_t)base-&amp;gt;timerIdx, &amp;amp;timerConfig);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; /* Clear flags. */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; FLEXIO_ClearShifterErrorFlags(base-&amp;gt;flexioBase, (((1UL &amp;lt;&amp;lt; (base-&amp;gt;shifterCount)) - 1U) &amp;lt;&amp;lt; (base-&amp;gt;shifterStartIdx)));&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; FLEXIO_ClearTimerStatusFlags(base-&amp;gt;flexioBase, 1UL &amp;lt;&amp;lt; (base-&amp;gt;timerIdx));&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;int32_t cameraStartFrame(volatile uint8_t *pDest, const uint32_t numFrames)&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;busy = true;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;flexio_camera_transfer_t cameraTransfer;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; cameraTransfer.dataAddress = (uint32_t)pDest;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;cameraTransfer.dataNum = g_width * g_height * sizeof(uint16_t) * numFrames;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;frameCounter = 0;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;numFramesExpected = numFrames;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;FLEXIO_CAMERA_ClearStatusFlags(&amp;amp;g_FlexioCameraDevice, kFLEXIO_CAMERA_RxDataRegFullFlag | kFLEXIO_CAMERA_RxErrorFlag);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;g_cameraEdmaHandle.rxState = 0;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; FLEXIO_CAMERA_TransferReceiveEDMA(&amp;amp;g_FlexioCameraDevice, &amp;amp;g_cameraEdmaHandle, &amp;amp;cameraTransfer);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;return 0;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;int InitParallelCamera(void)&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;edma_config_t edmaConfig;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;flexio_camera_config_t cameraConfig;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;CLOCK_EnableClock(kCLOCK_Flexio2);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; FLEXIO_Reset(FLEXIO2);&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;/* Configure DMAMUX */&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;DMAMUX_Init(DMAMUX0);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;// DMAMUX_SetSource(DMAMUX0, FLEXIO_CAMERA_DMA_CHN, FLEXIO_CAMERA_DMA_MUX_SRC);&lt;/DIV&gt;&lt;DIV&gt;// DMAMUX_SetSource(DMAMUX0, FLEXIO_CAMERA_DMA_CHN, (g_FlexioCameraDevice.shifterStartIdx + 1U));&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;DMAMUX_EnableAlwaysOn(DMAMUX0, FLEXIO_CAMERA_DMA_CHN, true);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;DMAMUX_EnableChannel(DMAMUX0, FLEXIO_CAMERA_DMA_CHN);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;/* Configure DMA */&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;EDMA_GetDefaultConfig(&amp;amp;edmaConfig);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; edmaConfig.enableDebugMode = true;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;EDMA_Init(DMA0, &amp;amp;edmaConfig);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;EDMA_CreateHandle(&amp;amp;g_edmaHandle, DMA0, FLEXIO_CAMERA_DMA_CHN);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; FLEXIO_Reset(FLEXIO2);&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;FLEXIO_CAMERA_GetDefaultConfig(&amp;amp;cameraConfig);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;FLEXIO_CAMERA_Init(&amp;amp;g_FlexioCameraDevice, &amp;amp;cameraConfig);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;/* Clear all the flag. */&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;FLEXIO_CAMERA_ClearStatusFlags(&amp;amp;g_FlexioCameraDevice, kFLEXIO_CAMERA_RxDataRegFullFlag | kFLEXIO_CAMERA_RxErrorFlag);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;FLEXIO_ClearTimerStatusFlags(FLEXIO2, 0xFF);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;/* Enable FlexIO. */&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;FLEXIO_CAMERA_Enable(&amp;amp;g_FlexioCameraDevice, true);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;int32_t status = FLEXIO_CAMERA_TransferCreateHandleEDMA(&amp;amp;g_FlexioCameraDevice, &amp;amp;g_cameraEdmaHandle, FLEXIO_CAMERA_UserCallback, NULL, &amp;amp;g_edmaHandle);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;PRINTF("&amp;gt;&amp;gt;&amp;gt;&amp;gt; end InitparallelCamera() status = %d\r\n", status);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;</description>
      <pubDate>Fri, 06 Dec 2024 09:23:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Processor-Expert-Software/Implementation-of-Parallel-Camera-Functionality-Using-FlexIO-on/m-p/2009008#M5865</guid>
      <dc:creator>seobi</dc:creator>
      <dc:date>2024-12-06T09:23:10Z</dc:date>
    </item>
    <item>
      <title>Re: Implementation of Parallel Camera Functionality Using FlexIO on RT1176</title>
      <link>https://community.nxp.com/t5/Processor-Expert-Software/Implementation-of-Parallel-Camera-Functionality-Using-FlexIO-on/m-p/2010464#M5866</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/228348"&gt;@seobi&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;What camera are you using for the FlexIO side? Are you certain you have mirrored the extensive HW configurations that are described on the&amp;nbsp;&lt;A href="https://github.com/nxp-appcodehub/an-flexio_camera_rt1010" target="_blank"&gt;GitHub - nxp-appcodehub/an-flexio_camera_rt1010&lt;/A&gt;?&amp;nbsp;&lt;/P&gt;
&lt;P&gt;BR,&lt;BR /&gt;Edwin.&lt;/P&gt;</description>
      <pubDate>Mon, 09 Dec 2024 20:48:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Processor-Expert-Software/Implementation-of-Parallel-Camera-Functionality-Using-FlexIO-on/m-p/2010464#M5866</guid>
      <dc:creator>EdwinHz</dc:creator>
      <dc:date>2024-12-09T20:48:06Z</dc:date>
    </item>
    <item>
      <title>Re: Implementation of Parallel Camera Functionality Using FlexIO on RT1176</title>
      <link>https://community.nxp.com/t5/Processor-Expert-Software/Implementation-of-Parallel-Camera-Functionality-Using-FlexIO-on/m-p/2010615#M5867</link>
      <description>&lt;P&gt;My camera is a 13-bit parallel camera.&lt;/P&gt;&lt;P&gt;I used data lines from FlexIO2 pins 1 through 16 sequentially, along with PCLK, VSYNC, and HSYNC.&lt;/P&gt;&lt;P&gt;Additionally, the last 3 bits of the 16 bits, which are unused, have been left as not connected.&lt;/P&gt;&lt;P&gt;It seems that no further hardware handling is necessary.&lt;/P&gt;&lt;P&gt;When reading the data, only specific vertical lines are being read.&lt;/P&gt;&lt;P&gt;Could you review if there are any issues in the attached source code regarding the 16-bit processing?&lt;/P&gt;&lt;P&gt;I'm suspecting the settings of the shifter and timer, but there's not much information on the subject...&lt;/P&gt;&lt;P&gt;I desperately need your help.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="seobi_0-1733797756913.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/314974i185B276E0813AE22/image-size/medium?v=v2&amp;amp;px=400" role="button" title="seobi_0-1733797756913.png" alt="seobi_0-1733797756913.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 10 Dec 2024 02:46:52 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Processor-Expert-Software/Implementation-of-Parallel-Camera-Functionality-Using-FlexIO-on/m-p/2010615#M5867</guid>
      <dc:creator>seobi</dc:creator>
      <dc:date>2024-12-10T02:46:52Z</dc:date>
    </item>
    <item>
      <title>Re: Implementation of Parallel Camera Functionality Using FlexIO on RT1176</title>
      <link>https://community.nxp.com/t5/Processor-Expert-Software/Implementation-of-Parallel-Camera-Functionality-Using-FlexIO-on/m-p/2011572#M5868</link>
      <description>&lt;P&gt;The yellow waveform in the figure below represents the timing when FLEXIO_CAMERA_TransferReceiveEDMA(&amp;amp;g_FlexioCameraDevice, &amp;amp;g_cameraEdmaHandle, &amp;amp;cameraTransfer) is called and the User Callback is invoked.&lt;/P&gt;&lt;P&gt;The green waveform indicates the timing of HSYNC reception.&lt;/P&gt;&lt;P&gt;I understood that, when using FlexIO2 to receive data from a 16-bit parallel camera, HSYNC serves as the trigger.&lt;/P&gt;&lt;P&gt;However, observing the actual waveform, I noticed that as soon as FLEXIO_CAMERA_TransferReceiveEDMA() is called, data starts accumulating.&lt;/P&gt;&lt;P&gt;After receiving the specified amount of data, the User Callback is immediately invoked.&lt;/P&gt;&lt;P&gt;Interestingly, the second yellow waveform appears even before HSYNC is triggered.&lt;/P&gt;&lt;P&gt;Isn't the structure designed to receive data via DMA only during the High period of HSYNC based on "timerConfig.triggerPolarity = kFLEXIO_TimerTriggerPolarityActiveHigh"?&lt;/P&gt;&lt;P&gt;What is the correct method to receive data only during the HSYNC period?&lt;/P&gt;&lt;P&gt;I desperately need your help.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="seobi_0-1733894052956.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/315243i717B7431D468A155/image-size/medium?v=v2&amp;amp;px=400" role="button" title="seobi_0-1733894052956.png" alt="seobi_0-1733894052956.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 11 Dec 2024 05:16:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Processor-Expert-Software/Implementation-of-Parallel-Camera-Functionality-Using-FlexIO-on/m-p/2011572#M5868</guid>
      <dc:creator>seobi</dc:creator>
      <dc:date>2024-12-11T05:16:17Z</dc:date>
    </item>
    <item>
      <title>Re: Implementation of Parallel Camera Functionality Using FlexIO on RT1176</title>
      <link>https://community.nxp.com/t5/Processor-Expert-Software/Implementation-of-Parallel-Camera-Functionality-Using-FlexIO-on/m-p/2021602#M5880</link>
      <description>&lt;P&gt;The root clock of FlexIO2 on the RT1176 was initially set to 24 MHz.&lt;/P&gt;&lt;P&gt;After replacing the root clock with 120 MHz, it started to normally receive 16 bits.&lt;/P&gt;&lt;P&gt;However, as shown in the picture below, there is an issue.&lt;/P&gt;&lt;P&gt;When counting the pixels, the 31,32nd byte appears abnormal.&lt;/P&gt;&lt;P&gt;The DMA setting of the FLEXIO_CAMERA_TransferReceiveEDMA() function is set to process 32 bytes at a time. Is this related?&lt;/P&gt;&lt;P&gt;I am waiting for your advice.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="grayscale.PNG" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/317969i71637A285BB239DD/image-size/medium?v=v2&amp;amp;px=400" role="button" title="grayscale.PNG" alt="grayscale.PNG" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;</description>
      <pubDate>Fri, 03 Jan 2025 04:36:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Processor-Expert-Software/Implementation-of-Parallel-Camera-Functionality-Using-FlexIO-on/m-p/2021602#M5880</guid>
      <dc:creator>seobi</dc:creator>
      <dc:date>2025-01-03T04:36:12Z</dc:date>
    </item>
    <item>
      <title>Re: Implementation of Parallel Camera Functionality Using FlexIO on RT1176</title>
      <link>https://community.nxp.com/t5/Processor-Expert-Software/Implementation-of-Parallel-Camera-Functionality-Using-FlexIO-on/m-p/2022014#M5881</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/228348"&gt;@seobi&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;Make sure the DMA is running at a proper speed according to the 120MHz of the FlexIO camera, so it has enough time to process the 31st and 32nd bit.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 03 Jan 2025 21:45:25 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Processor-Expert-Software/Implementation-of-Parallel-Camera-Functionality-Using-FlexIO-on/m-p/2022014#M5881</guid>
      <dc:creator>EdwinHz</dc:creator>
      <dc:date>2025-01-03T21:45:25Z</dc:date>
    </item>
    <item>
      <title>Re: Implementation of Parallel Camera Functionality Using FlexIO on RT1176</title>
      <link>https://community.nxp.com/t5/Processor-Expert-Software/Implementation-of-Parallel-Camera-Functionality-Using-FlexIO-on/m-p/2023657#M5883</link>
      <description>&lt;P&gt;I am using only one edma in this project, which is used by flexio.&lt;/P&gt;&lt;P&gt;I know that edma has default maximum bandwidth.&lt;/P&gt;&lt;P&gt;What can I change to get proper speed?&lt;/P&gt;</description>
      <pubDate>Wed, 08 Jan 2025 04:01:19 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Processor-Expert-Software/Implementation-of-Parallel-Camera-Functionality-Using-FlexIO-on/m-p/2023657#M5883</guid>
      <dc:creator>seobi</dc:creator>
      <dc:date>2025-01-08T04:01:19Z</dc:date>
    </item>
    <item>
      <title>Re: Implementation of Parallel Camera Functionality Using FlexIO on RT1176</title>
      <link>https://community.nxp.com/t5/Processor-Expert-Software/Implementation-of-Parallel-Camera-Functionality-Using-FlexIO-on/m-p/2023891#M5884</link>
      <description>&lt;P&gt;As you can see in the picture below, if flexio misses the 1st pixel, every 32nd pixel in that row is broken.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shift_pixel.PNG" style="width: 1324px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/318562i3627A46B9954A528/image-dimensions/1324x73?v=v2" width="1324" height="73" role="button" title="shift_pixel.PNG" alt="shift_pixel.PNG" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I thought it would be enough time for flexio to reset since it starts on the riging edge of HSYNC and kFLEXIO_PinActiveLow is set.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="pclk.PNG" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/318563iB142C58D01518446/image-size/medium?v=v2&amp;amp;px=400" role="button" title="pclk.PNG" alt="pclk.PNG" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;Is there a problem with the timing of flexio's timer?&lt;/P&gt;&lt;P&gt;I am waiting for your help.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 08 Jan 2025 08:48:22 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Processor-Expert-Software/Implementation-of-Parallel-Camera-Functionality-Using-FlexIO-on/m-p/2023891#M5884</guid>
      <dc:creator>seobi</dc:creator>
      <dc:date>2025-01-08T08:48:22Z</dc:date>
    </item>
    <item>
      <title>Re: Implementation of Parallel Camera Functionality Using FlexIO on RT1176</title>
      <link>https://community.nxp.com/t5/Processor-Expert-Software/Implementation-of-Parallel-Camera-Functionality-Using-FlexIO-on/m-p/2030189#M5893</link>
      <description>&lt;P&gt;When receiving dma via flexio, frames of 320x240 pixels are received normally.(16bit mode)&lt;/P&gt;&lt;P&gt;However, 316x240 pixels are received abnormally. And 312x240 pixels are received normally again.&lt;/P&gt;&lt;P&gt;Horizontal values that are multiples of 8 are received normally, but multiples of 4 are received abnormally (frames are broken).&lt;/P&gt;&lt;P&gt;DMA is transmitted based on 32 bytes, and flexio uses 8 shifters.&lt;/P&gt;&lt;P&gt;Can you tell me why it's only a multiple of 8?&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="seobi_0-1737333312038.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/320229i950EB7E8902B8F45/image-size/medium?v=v2&amp;amp;px=400" role="button" title="seobi_0-1737333312038.png" alt="seobi_0-1737333312038.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;BR.&lt;BR /&gt;seobi&lt;/P&gt;</description>
      <pubDate>Mon, 20 Jan 2025 00:36:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Processor-Expert-Software/Implementation-of-Parallel-Camera-Functionality-Using-FlexIO-on/m-p/2030189#M5893</guid>
      <dc:creator>seobi</dc:creator>
      <dc:date>2025-01-20T00:36:13Z</dc:date>
    </item>
    <item>
      <title>Re: Implementation of Parallel Camera Functionality Using FlexIO on RT1176</title>
      <link>https://community.nxp.com/t5/Processor-Expert-Software/Implementation-of-Parallel-Camera-Functionality-Using-FlexIO-on/m-p/2031696#M5898</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/228348"&gt;@seobi&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;This is due to the nature of the byte sizes for the screen's buffers. They are byte sized, which means that contain 8 bits each.&lt;/P&gt;</description>
      <pubDate>Tue, 21 Jan 2025 20:27:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Processor-Expert-Software/Implementation-of-Parallel-Camera-Functionality-Using-FlexIO-on/m-p/2031696#M5898</guid>
      <dc:creator>EdwinHz</dc:creator>
      <dc:date>2025-01-21T20:27:33Z</dc:date>
    </item>
    <item>
      <title>Re: Implementation of Parallel Camera Functionality Using FlexIO on RT1176</title>
      <link>https://community.nxp.com/t5/Processor-Expert-Software/Implementation-of-Parallel-Camera-Functionality-Using-FlexIO-on/m-p/2031958#M5900</link>
      <description>&lt;P&gt;Let me explain the problem in more detail.&lt;/P&gt;&lt;P&gt;Even at 316x240 resolution, when drawing pixels directly without using FlexIO and DMA, the display works properly.&lt;/P&gt;&lt;P&gt;However, when using the pixels received through FlexIO and DMA, the display gets corrupted.&lt;/P&gt;&lt;P&gt;It is in 16-bit mode, and 320x240 works fine. 312x240 also works fine (multiples of 8).&lt;/P&gt;&lt;P&gt;However, issues occur at 316x240 and 308x240 resolutions (multiples of 4).&lt;/P&gt;&lt;P&gt;The frame size received through FlexIO and DMA is being affected.&lt;/P&gt;&lt;P&gt;Why does this issue occur?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;BR,&lt;BR /&gt;seobi&lt;/P&gt;</description>
      <pubDate>Wed, 22 Jan 2025 04:16:41 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Processor-Expert-Software/Implementation-of-Parallel-Camera-Functionality-Using-FlexIO-on/m-p/2031958#M5900</guid>
      <dc:creator>seobi</dc:creator>
      <dc:date>2025-01-22T04:16:41Z</dc:date>
    </item>
    <item>
      <title>Re: Implementation of Parallel Camera Functionality Using FlexIO on RT1176</title>
      <link>https://community.nxp.com/t5/Processor-Expert-Software/Implementation-of-Parallel-Camera-Functionality-Using-FlexIO-on/m-p/2033075#M5907</link>
      <description>&lt;P&gt;During HSYNC, the bytes received were width x 4 bytes.&lt;/P&gt;&lt;P&gt;An issue occurred with the received frame, causing flexio to not receive all 32 bytes.&lt;/P&gt;&lt;P&gt;Thank you for everything.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;BR,&lt;BR /&gt;seobi&lt;/P&gt;</description>
      <pubDate>Thu, 23 Jan 2025 09:26:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Processor-Expert-Software/Implementation-of-Parallel-Camera-Functionality-Using-FlexIO-on/m-p/2033075#M5907</guid>
      <dc:creator>seobi</dc:creator>
      <dc:date>2025-01-23T09:26:35Z</dc:date>
    </item>
  </channel>
</rss>

