AnsweredAssumed Answered

RT1050 CSI Inactive

Question asked by variable_andrew on Jan 3, 2020
Latest reply on Jan 20, 2020 by variable_andrew

Basing code off of AN12110, I have code in place to start the CSI and am expecting some data, but despite data coming from my camera (via parallel interface) CSI seems to be dead - my code is stuck at:

while (kStatus_Success != CAMERA_RECEIVER_GetFullBuffer(&cameraReceiver, (uint32_t *) &(csiFrameBuf[i]) )) { }

 

Diving further in shows that:

status_t CSI_TransferGetFullBuffer(CSI_Type *base, csi_handle_t *handle, uint32_t *frameBuffer)
{   
   uint32_t csicr1;

   /* No full frame buffer. */
   if (handle->queueUserReadIdx == handle->queueDrvWriteIdx)
   {
   return kStatus_CSI_NoFullBuffer;
   }

is returning because of NoFullBuffer (even tho the Logic Analyzer is showing FV, LV (HSYNC), and data pins are all providing data to the CSI Parallel pins.

 

I thought this issue might be similar: i.MX6 SoloX Parallel CSI Problem 

But in my case - I do see the CSICR1 have the reset value of 0x40000800
BUUUT, CSI_Init from the MCUXpresso SDK doesn't seem to be overwriting that value. In fsl_csi.c, line 232, it tries to set base->CSICR1 = 0x40020912, but the debugger doesn't show any change in memory at that address (still at the reset value after single stepping over it). 

 

 I also am not using PXP or Camera interface. Like the issue I linked to above, do I need to enable these interfaces to somehow enable the CSI to function?

 

Why else would the CSI not seem to activate?

Outcomes