This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Using small pixel amount sensor with the 6437

Hi,

I am using the dm6437 evaluation board and sensor with these specifications:
Output: 8 bits per pixel bayer pattern B G B G ..., G R G R ..., B G B G ..., G R G R ..., ...
Resolution: 220 x 224

I am trying to use these settings

 

#define HEIGHT 224
#define WIDTH 220

  PSP_VPFECcdcConfigParams      vpfeCcdcConfigParams = {
    FVID_CCDC_RAW_FORMAT,
    FVID_FIELD_MODE,
    HEIGHT,
    WIDTH,
    WIDTH,
    0,
    0,
    NULL,
    {
        NULL,
        NULL,
        NULL
    },
    0,
    { // raw ccdc params
        PSP_VPFE_BITS8,
        PSP_VPFE_PACK8_8BITS_PIXEL,
        PSP_VPFE_DataPol_Normal,
        PSP_VPFE_SyncPol_Negative,
        PSP_VPFE_SyncPol_Negative,
        PSP_VPFE_SyncDir_Input,
        67,
        274,
        WIDTH,
        HEIGHT,
        PSP_VPFE_ALaw_Disable,
        PSP_VPFE_ALaw_bits15_6
    }
  };

but i cannot see any correct input buffer.

any help?

 

thanks,

Eran

  • Do you see any values in the input buffer and is the VPFE actually cycling through FVID_exchange calls or is it just halted? In other words the first step would be to determine if you are actually getting syncs and cycling the VPFE and your data is just bad, or if you are not actually getting syncs and cycling the VPFE and thus you have no data at all.

  • Hi Bernie,
    The input buffer seems to be halted - no change

  • In your video loop are you making it past FVID_exchange or is your loop getting stuck? If it is getting stuck you may want to see if you are actually getting into the VPSS interrupt routine meaning you are getting events from the video source. If you are not getting such events you will want to verify your hardware connection, and that the sync lines are transitioning as expected as well as that they are making it all the way to the DM6437 and that the DM6437's pinmux settings are open to let the sync signals in.

  • I am using the FVID_exchange function inside the main loop which is not getting stuck.
    I can even see a self manipulated output.

  • Hi Bernie,
    Since I have not ear any answer from you, I assume you did not get my answer.
    Well, The main loop is not getting stuck and works perfectly.
    Can you please tell me if ccdc definitions matches the sensor properties I mentioned in my first post?

    Eran

  • The configuration is a bit strange, most sensors have some sort of offset between the sync and the valid video data, however if yours does not that is ok. I can give a recommendation below with some comments but you probably need to just try a few varying values until you get something that looks partially valid in memory and than tweak it from there. As I do not have a raw sensor hooked up to one of these devices on my end, it is not something I can really try out and debug.

    #define HEIGHT 224
    #define WIDTH 220
    #define HD_BLANKING 67 //horizontal width of invalid pixels during hsync
    #define VD_BLANKING 274 //vertical height of invalid lines during vsync

      PSP_VPFECcdcConfigParams      vpfeCcdcConfigParams = {
        FVID_CCDC_RAW_FORMAT,
        FVID_FIELD_MODE,
        HEIGHT,
        WIDTH,
        WIDTH, //this assumes one byte per pixel...
        0, //no offset from hsync?
        0, //no offset from vsync?

        NULL,
        {
            NULL,
            NULL,
            NULL
        },
        0,
        { // raw ccdc params
            PSP_VPFE_BITS8,
            PSP_VPFE_PACK8_8BITS_PIXEL,
            PSP_VPFE_DataPol_Normal,
            PSP_VPFE_SyncPol_Negative,
            PSP_VPFE_SyncPol_Negative,
            PSP_VPFE_SyncDir_Input,
            67, //HDW ignored when syncs are input...
            274, //VDW ignored when syncs are input...
            WIDTH + HD_BLANKING, //PPLN should cover total number of pixels between hsync events
            HEIGHT + VD_BLANKING, //HLPFR should cover total number of lines between vsync events

            PSP_VPFE_ALaw_Disable,
            PSP_VPFE_ALaw_bits15_6
        }
      };

    In general you probably want to compare your sensor to figure 3 of SPRU977a to ensure your timing values you give to the CCDC all make sense, based on what you posted, I believe the above should do, but this is something you have to try out.