Thursday, July 2, 2009

TCM8230MD Camera Images Within Reach

Last night I was able issue a start command over I2c to the TCM8230MD camera module to have it start sending images. I'm now receiving valid YUV 422 data off of the 8 bit bus along with the necessary clock and sync pulses.

This camera is definitely not the easiest thing to work with. The datasheet is not as clear I would have liked and the timings necessary for the startup sequence took a little bit longer to figure out than I had expected.

The next step will be to be to send the camera a few more control codes to lower the frame rate and resolution to get the data rate to a more manageable level for the pic. I'm hoping to capture and display my first usable image over the weekend.


  1. hmmmm, I have a little question.
    How were you able to deal with the weird voltages required by the camera module?

  2. Hello Brad,

    Do you have a more elaborate datasheet of the TMS8230 than the one from the Sparkfun website ?

    We have a hard time figuring out the control register meanings. Do you have an overview of these these ?

    Best regards, Jef

  3. HI.. i m also working with this sensor. I wanted to know as to how to deal with the different voltages required by the camera module.

  4. Do you have a schematics of that circuit? How did you finally deal with the timings? Using Capacitors?

  5. Curious-- what crystal are you using? The datasheet suggests ~12mhz min, 25-27mhz max depending on frame rate.

    Did you ever get good images out of the camera?

    I'm about to start playing with mine.

    Finally and about ready to order parts for a breakout board based on this:

  6. I recognize that logic analyzer it's a 1631D. It looks like you used it to troubleshooot the I2C problem. I stopped using my 1631D years ago. That analyzer doesn't have any hard drive to go bad. Everythings is in ROM.

  7. @Jan - I didn't catch that... I use a 1650A for protocol troubleshooting like that.

  8. Hi! I'm currently working with TCM8230MD. I'm having a problem in the initialization part. I am not able to write the data in the registers. I am getting an ACK as well. I read the registers by I2C and they remaining to their default value. Can you please help? Thanks in advance! :)