6 Replies Latest reply on Aug 1, 2019 2:26 AM by 100asdf

    Problem with Aptina MT9M034 camera

      Hi everyone!

       

      I'm having trouble with this chip MT9M034 from Aptina, I can communicate with it perfectly through I2C, set its registers, PLL, clock, etc. But the signs on the parallel bus and "FRAME_VALID" and "LINE_VALID" are dead. Just de PIXEL_CLOCK signal is working, and in the exactly frequency that I configured.


      I've tried various registers settings and nothing happens, anyone can tell me if these Aptina chip have some trick to work? I'm about to give up, maybe I have damaged the chip while I was welding it on the PCB board

        • Re: Problem with Aptina MT9M034 camera
          sdh

          Hello.  Did you find an answer to your question?  I am having the exact same issue but have not found a solution.  Thanks -

          • Re: Problem with Aptina MT9M034 camera
            sdh

            Here is a solution to your question -

            Yes, unlike other sensors, the default settings on the registers do not produce the required signals.  And, after you set the registers in an intuitive way the following signals are still not active:  FRAME_VALID, LINE_VALID, DOUT[11..0].

             

            The following are the minimum set of registers that I have found that will activate the outputs (all in hex):

            Note - I am bypassing the PLL and just using the external clock (register 0x30B0), but the PLL works fine if you want to program it too.

            Note - The most unintuitive issue is that register 0x309E does not default to 0x0000 like it is supposed to.  Instead it defaults to 0x0196.  This appears to be the main reason there are no outputs from the part in its default settings.

             

            0     : Data at address 309E
            2     : Data at address 3002
            0     : Data at address 3004
            3C1     : Data at address 3006
            4FF     : Data at address 3008
            5300     : Data at address 30B0
            10DC     : Data at address 301A

             

            The following sequence is another minimum set of registers that will produce an output:

             

            58     : Data at address 301A
            2000     : Data at address 304C
            60     : Data at address 304A
            2     : Data at address 3002
            0     : Data at address 3004
            3C1     : Data at address 3006
            4FF     : Data at address 3008
            5300     : Data at address 30B0
            10DC     : Data at address 301A

             

            And, the following is a better set of registers that include:

            1. Setting 0x309E to the default of address of 0x0000 to get the outputs to work.

            2. Bypasses the PLL.

            3. Sets for 1280x960.

            4. Sets the pedestal up so that you do not have long strings of 0xA if you operate in 8 bit mode which caused problems.

            5. Turns the embedded data off which was showing up in the image on the first two lines of the active area.

            6. Sets up the row and column noise corrections.  

            7. Activates the parallel outputs and enables streaming.

             

            0     : Data at address 309E
            2     : Data at address 3002
            0     : Data at address 3004
            3C1     : Data at address 3006
            4FF     : Data at address 3008
            5300     : Data at address 30B0
            B8     : Data at address 301E
            1802     : Data at address 3064
            404     : Data at address 3044
            E007     : Data at address 30D4
            8     : Data at address 30BA
            11DC     : Data at address 301A
            11D8     : Data at address 301A
            10DC     : Data at address 301A

             

            The sensor works pretty well once you get past what is required to get it to output the required signals.