Search

Technical Discussion Group Forum

This forum is provided for user discussion. While Beacon EmbeddedWorks support staff and engineers participate, Beacon EmbeddedWorks does not guarantee the accuracy of all information within in the Technical Discussion Group (TDG).

The "Articles" forums provide brief Articles written by Beacon EmbeddedWorks engineers that address the most frequently asked technical questions.

To receive email notifications when updates are posted for a Beacon EmbeddedWorks product download, please subscribe to the TDG Forum of interest.

TDG Forum

PrevPrev Go to previous topic
NextNext Go to next topic
Last Post 08 Oct 2019 10:46 AM by  Ryan Crowell
DM3730 Torpedo with MT9J003 image sensor
 4 Replies
Sort:
You are not authorized to post a reply.
Author Messages
Ryan Crowell
New Member
New Member
Posts:15


--
08 Oct 2019 07:55 AM

    We are interested in using the On Semiconductor MT9J003 image sensor with the DM3730 Torpeo SOM, and would like to gauge how much work this is going to be.  I believe the MT9P031 sensor is fully supported "out of the box", and the MT9J003 and MT9P031 sensors are similar to each other, though there are significant differences in the control register addressing.

     

    I have seen references to Linux drivers for the MT9J003, though I'm not sure if there are any "official" drivers, or if what I'm seeing are more experimental in nature.  If necssary, I don't mind modifying an existing driver to work with our selected sensor, as long as I have reasonably clear directions on what files to change and how to get everything compiled.

    I have read through AN596 and I do understand that I need to modify the SOM to work with the 12-bit camera interface - that's all fine with me.  What I'm looking for here is some idea of the complexity of getting this sensor to work with the DM3730 Torpedo...is a driver already in the current OS, or is one available for downlaod?  If not, do you think it will be relatively easy to adapt an existing driver or will that be a months long, intensive, development effort.

     

    Thanks for any help!

    Ryan

    Adam Ford
    Advanced Member
    Advanced Member
    Posts:794


    --
    08 Oct 2019 08:55 AM
    Are you looking to use the 2.4-4 BSP based on the 3.0 kernel or some of the newer kernels? The older 2.4-4 BSP supports the DSP and some of the gstreamer plugins, but the newere kernels have lost DSP support from TI, and none of the gstreamer plugins will work anymore.

    The reason I ask is because the method of configuring the routing different assuming there is a driver available in the kernel.

    For what it's worth, we patched the kernel driver to make the MT9P031 work with the reduced interface width. Most likely the same could be done for the other camera as well.

    adam
    Ryan Crowell
    New Member
    New Member
    Posts:15


    --
    08 Oct 2019 09:25 AM
    Hi Adam,
    I'm primarily looking at using the newer kernels. I understand about the DSP (and I'm upset/angry about that!)

    I'm also aware of the patch you implemented to work with the MT9P031 in an 8-bit mode. I'm not yet sure whether we'll need 8, 10 or 12 bits for our application, but I'll worry about that after I have a basic demonstration going.
    Ryan
    Adam Ford
    Advanced Member
    Advanced Member
    Posts:794


    --
    08 Oct 2019 10:20 AM

    I could not find a driver when I looked for a driver, but assumming there is a driver available somehwere compatible with the modern kernel that supports the device tree implementation of modern kernels, the software integration should be fairly straight forward. 

    The following is an excerpt from the device tree entry for the Torpedo's baseboard to support the camera.

    &i2c2 {
    	mt9p031@48 {
    		compatible = "aptina,mt9p031";
    		reg = <0x48>;
    		clocks = <&isp 0>;
    		vaa-supply = <&vaux4>;
    		vdd-supply = <&vaux4>;
    		vdd_io-supply = <&vaux4>;
    		port {
    			mt9p031_out: endpoint {
    				input-clock-frequency = <24000000>;
    				pixel-clock-frequency = <72000000>;
    				remote-endpoint = <&ccdc_ep>;
    			};
    		};
    	};
    };
    

    The camera points to the camera interface.

    The Camera interfaces points to this with:

    &isp {
    	pinctrl-names = "default";
    	pinctrl-0 = <&isp_pins>;
    	ports {
    		port@0 {
    			reg = <0>;
    			ccdc_ep: endpoint {
    				remote-endpoint = <&mt9p031_out>;
    				bus-width = <8>;
    				hsync-active = <1>;
    				vsync-active = <1>;
    				pclk-sample = <0>;
    			};
    		};
    	};
    };
    

    The ISP endpoint then points to the camera.

     

    Most likely, you'll need to remove the mt9p031 node and replace it with comparable node for the mt9j003, then points the isp node to the corresponding endpoint.

    We have a design services group, so if you'd like us to quote the work of developing a mt9j003 driver or modifying the mt9p031 to support the mt9j003 work with the Torpedo development kit, we can do that.

     

    adam

    Ryan Crowell
    New Member
    New Member
    Posts:15


    --
    08 Oct 2019 10:46 AM
    Thanks Adam!
    Ryan
    You are not authorized to post a reply.