Xmos - Cmos Camera I/F

Technical questions regarding the XTC tools and programming with XMOS.
User avatar
Ross
XCore Expert
Posts: 966
Joined: Thu Dec 10, 2009 9:20 pm
Location: Bristol, UK

Post by Ross »



User avatar
mon2
XCore Legend
Posts: 1913
Joined: Thu Jun 10, 2010 11:43 am

Post by mon2 »

Hi christianj. Do you have the OV7670 module already ? We are working on the same project but only recently ordered a mix of modules from offshore vendors (Shenzhen, China).

You can get a great start on how to control the OV7670 module by downloading the Blob detector project posted here:

http://www.xcore.com/projects/blob-dete ... processing

Not sure if you noted this but...

a) Blob detector is working with the "raw" OV7670 sensor only with the XDK + external ram. Afterwards, someone enhanced the module and added an onboard LDO regulator + external AL422 FIFO for buffering. Likely the enhanced version of the module (with the FIFO) was not available when this Blob detector article was written.

b) for not much more coins, you can purchase the same module with an inline FIFO to permit some frame buffering. This is referenced as OV7670 with AL422 FIFO (also features an onboard LDO so you can operate the module directly from 3.3 volts + onboard 24 Mhz clock source). The prices do vary for sometimes the same module but for others with a higher grade lens.

c) We have incoming OV7670, OV7670 with AL422 FIFO, OV7725 with AL422 FIFO and some others (2 meg and a 5 Meg 1080p sensor). The OV7725 can scan at higher rates. We may receive these by late this week or early next (fingers crossed). In house we have additional WDR sensors (NIT, France) but we will leave those toys for later - after we master the simple flavours :)

There are excellent articles on the net dealing with the OV7670 modules - the versions with the FIFO (buffer) seem to be the most practical. Apparently an AVR (Atmel) can control this module (and without the external FIFO buffer) so XMOS should as well.

Will you be using the slice kits for this interfacing ? That is our platform. We will interface with the OV7670 (with FIFO) and attempt to display onto the LCD slice kit.

Kumar
User avatar
Ross
XCore Expert
Posts: 966
Joined: Thu Dec 10, 2009 9:20 pm
Location: Bristol, UK

Post by Ross »

christianj wrote:Any example code available ?
I will try to find it, but it is very, very old, it definitely won't build.

If anyone would like to supply me with a suitable module I will gladly try and knock something up! :)
User avatar
mon2
XCore Legend
Posts: 1913
Joined: Thu Jun 10, 2010 11:43 am

Post by mon2 »

Hi christianj. We ordered a variety of CMOS sensors from 2 different vendors in China. One of the parcels arrived late yesterday. We will start with the basic OV7670 (no buffer; requires 2.8 volts Vcc; requires external clock source) to interface to the slice kits. The first task is to extract monochrome data using this sensor and post onto the LCD slice kit.

Here is a very well written article on this topic:

http://embeddedprogrammer.blogspot.ca/2 ... cheat.html

Next week we should receive the OV7670 sensor with FIFO (AL422B). As noted earlier, we wish to master these modules before moving to the 2 Meg / 5 Meg sensors. Do you have these sensors already ? If not, we ordered from wayengineer.com (still in transit at this time through DHL :(. The basic sensor was sourced through uctronics.com - ordered on Sunday night; arrived here in Canada on Thursday ! (UPS kicks for service @ $30 shipping).

We do not have experience with JPEG encoding / decoding but did see a mix of sensors that feature this format. However, the CMOS sensors (with JPEG) versions I saw had serial interface so that may be too slow for any video capture. Some even feature H.264 encoding.

See here:

http://comediahk.com/category/uart-camera/

The XMOS is a very unique product when it comes to latency. While there is the ramp up time needed to code any secret sauce code that you may need, the end result should be worth the effort.


> Is the Xmos solution powerful enough for this type of tasks ?

Yes !

> Anyone done reasonable video > processing on it ?

Personally no. This is our first attempt to use such sensors but looks to be straight forward. Varying with your requirements, there is the possibility to use OpenCV on alternate platforms but then again...there are many related headaches with that road map. For example, using Cortex A8 / A9 with Linux and OpenCV is not a simple nor low cost feat. Also you will have to judge if the bill of materials will allow for an affordable end product for your market.

> Also, is Xmos a reliable company ? I would be planning to go to production and I obviously
> want to make sure that the supply of chips will keep coming

As a company, we are investing into these components as a potential cost reduction for some low latency designs. We have created many designs using a mix of vendors and have taken larger risks in the past. It takes big bucks to produce the silicon that they have so financially they have the support. Our small fear is that they will be bought out by a larger fish in the industry but at sometime you will need to jump on board this train :) We have seen this in our career a few times but the vendors will usually offer a last time buy if the component is placed on the EOL (end of life) list. I think you have many options to support your design, including with XMOS. A very nice feature of XMOS devices is the ability to cascade additional devices to further enhance your design with more CPU horsepower.

We will post our results on this sensor interfacing. Bye for now.