So I have been able to consistently capture JPEG images. There still seems to be a problem with my timing, since some of the images are split inside the frame (eg left half of image on the right side), but otherwise the images look good.
Here is the initialization command straight out of my VB code. Hopefully its clear enough:
'Sensor Core (page 0)
Call RegWrite(“F0”, “0000”) 'change page
Call RegWrite(“05”, “0204”) 'H-blanking (context B)
Call RegWrite(“06”, “0020”) 'V-blanking (B)
Call RegWrite(“09”, “0007”) 'Shutter Width
Call RegWrite(“20”, “0300”) 'Read mode for context B
Call RegWrite(“65”, “2000”) 'Clock control (enable PLL)
Call RegWrite(“66”, “4F07”) 'PLL params
'Color Pipeline (page 1)
Call RegWrite(“F0”, “0001”) 'change page
Call RegWrite(“08”, “01F8”) 'Pipeline control
Call RegWrite(“0B”, “00DF”) 'Enable Internal Clocks
Call RegWrite(“09”, “000A”) 'Disable output bypass (output JPEG)
Call RegWrite(“48”, “0000”) 'Test Pattern
'JPEG + FIFO (page 2)
Call RegWrite(“F0”, “0002”) 'change page (no register changes here)
'Sequencer Variables (ID = 1)
Call RegWrite(“F0”, “0001”) 'change page
Call RegWrite(“C6”, “A120”) '8-bit, offset 0x20: Capture Mode
Call RegWrite(“C8”, “0000”) 'write value
Call RegWrite(“C6”, “A121”) '8-bit, offset 0x21: # of Frames
Call RegWrite(“C8”, “0002”) 'write value
'Mode Variables (ID = 7)
Call RegWrite(“C6”, “2707”) '16-bit, offset 0x07: Frame Width
Call RegWrite(“C8”, “0640”) 'write value (1600)
Call RegWrite(“C6”, “2709”) '16-bit, offset 0x09: Frame Height
Call RegWrite(“C8”, “04B0”) 'write value (1200)
Call RegWrite(“C6”, “270B”) '16-bit, offset 0x0B: JPEG enable
Call RegWrite(“C8”, “0010”) 'write value (enable JPEG in context B)
Call RegWrite(“C6”, “2723”) '16-bit, offset 0x23: extra delay
Call RegWrite(“C8”, “06A1”) 'write value
Call RegWrite(“C6”, “2725”) '16-bit, offset 0x25: row speed
Call RegWrite(“C8”, “0011”) 'write value
Call RegWrite(“C6”, “2772”) '16-bit, offset 0x72: 'JPEG data params (adaptive pxl clock, spoof frames)
Call RegWrite(“C8”, “0267”) 'write value (spoof on)
Call RegWrite(“C6”, “A77E”) '8-bit, offset 0x7E: 'Output Format
Call RegWrite(“C8”, “0000”) 'write value
Call RegWrite(“C6”, “2779”) '16-bit, offset 0x79: 'spoof width
Call RegWrite(“C8”, “0640”) 'write value
Call RegWrite(“C6”, “277B”) '16-bit, offset 0x7B: 'spoof height
Call RegWrite(“C8”, “0258”) 'write value
Call RegWrite(“C6”, “2777”) '16-bit, offset 0x77: 'Len_Timing
Call RegWrite(“C8”, “0606”) 'write value
'JPEG Variables (ID = 9)
Call RegWrite(“C6”, “A906”) '8-bit, offset 0x06: JPEG Format
Call RegWrite(“C8”, “0000”) 'write value
Call RegWrite(“C6”, “A907”) '8-bit, offset 0x07: JPEG settings
Call RegWrite(“C8”, “0014”) 'write value
Call RegWrite(“C6”, “2908”) '16-bit, offset 0x08: restart interval
Call RegWrite(“C8”, “0002”) 'write value
I found out the images came out a lot better when I added a restart interval to correct errors in the JPEG. I can post my header generation code if that would be of interest to you as well, but it is very similar to the C code shown in the developer’s guide. I will also try and post a picture when I can find a site to host it.