sync'ing 3D video - page 5 - Creative Uses of CHDK - CHDK Forum

sync'ing 3D video

  • 103 Replies
  • 39530 Views
*

Offline ahull

  • *****
  • 634
Re: sync'ing 3D video
« Reply #40 on: 27 / June / 2013, 16:03:04 »
Advertisements
Quote from: Microfunguy
"External synchronization is provided by a sync pulse from the microprocessor, which resets internal counters and resyncs the VD and HD outputs.
Alternatively, the AD9923A can be operated in slave mode, in which the VD and HD are provided externally from the image processor.
In this mode, the AD9923A timing is synchronized with VD and HD."

In the case of the Ixus 60/65, these signals come *from* the Digic (HD is designated as pin SSG
  • and VD as  SSG [1] see page 8 of the schematic)


The SCK SDI and SL signals are generated using GPIO-W0,  GPIO_W1 and GPIO_W2 respectively, so the Digic seems to be using these three pins to program the chip registers, this matches with the description of a 3 wire serial interface... "The internal registers are programmed using a 3-wire serial interface." (quote from page 1 of the "CCD Signal Processor with V-Driver and Precision Timing Generator" - AD9923A manual)

I suggest we need to find the routines that talk to this three wire interface, and also the routine(s) that configure SSG
  • and SSG [1]. Once we understand those, we should be able to control the CCD window and the horizontal and perhaps most importantly, the vertical sync.


Furthermore I suspect, once we understand this for the Ixus 60/65 we should be able to apply the same basic ideas to other camera platforms.

If we can manage all of that, we should be in a position to  sync to a simple  common clock signal sent on the +5v line of the USB port to multiple cameras.
« Last Edit: 27 / June / 2013, 16:46:19 by ahull »

Re: sync'ing 3D video
« Reply #41 on: 27 / June / 2013, 16:44:42 »
We need to find the routines that talk to this three wire interface, and configure SSG
  • and SSG [1]
Try searching for I2C, I think I have seen it previously.

In still photo mode on the S95, the following in the function that waits for switch to be released flashes the autofocus led in synch with the LiveView period counter for as long as the switch is pressed  :-

Code: [Select]
                if((*((int*)0xC0F07008) & 0xffff)<(STD_PERIOD/2))ubasic_set_led(9,1,100);
                else ubasic_set_led(9,0,0);

On the 'scope I see a nice square wave at about 30Hz.

So far, I cannot do a similar thing in movie mode.

i am hoping that movie capture synch is related to LiveView update-period synch.
« Last Edit: 27 / June / 2013, 16:47:19 by Microfunguy »

*

Offline ahull

  • *****
  • 634
Re: sync'ing 3D video
« Reply #42 on: 27 / June / 2013, 16:48:53 »
Sadly I don't have a scope to hand... Not in the office... I do however have an Ixus 60 (I might be able to get two working, but one is slightly "sick" at the moment).   

*

Offline ahull

  • *****
  • 634
Re: sync'ing 3D video
« Reply #43 on: 27 / June / 2013, 16:51:33 »
Quote from: Microfunguy
i am hoping that movie capture synch is related to LiveView update-period synch.

That seems to be a pretty likely scenario, it would make sense to update the LCD at the same rate as the movie sync, to avoid banding and flickering problems.

I wonder how hard we can drive the CCD, in theory if we halve the image size, we can drive it twice as fast, since the total data throughput remains the same. In practice, this may of course not be true. 
« Last Edit: 27 / June / 2013, 16:59:04 by ahull »

Re: sync'ing 3D video
« Reply #44 on: 27 / June / 2013, 16:58:21 »
Just to explain, on the S95 and presumably all DIGIC IV cameras, 0xC0F07008 contains the current value of the LiveView period counter.
It continually counts up to STD_PERIOD (which is about 272 in decent light and still photo mode) and then resets to zero.

If the period counter can be monitored in movie mode and the led's flashed, you would think the less the phase difference the better the movie synch.

Maybe just turning the dial to movie mode changes the LiveView (and movie) period and phase ?

*

Offline ahull

  • *****
  • 634
Re: sync'ing 3D video
« Reply #45 on: 27 / June / 2013, 17:04:54 »
Quote from: Microfunguy
Try searching for I2C, I think I have seen it previously.

The only ref to I2C I can find in the A3000 strings is for HDMI I2C...


PRIMARY.BIN.strings:ffb0c4b0 HDMI_I2C_ERROR
Strings.txt:0000002FC4B0   0000002FC4B0      0   HDMI_I2C_ERROR
Strings.txt:0000002FC4B0   0000002FC4B0      0   HDMI_I2C_ERROR


Let me try a few other searches.

*

Offline ahull

  • *****
  • 634
Re: sync'ing 3D video
« Reply #46 on: 27 / June / 2013, 17:07:10 »
Search instead for SSG  :D

*

Offline ahull

  • *****
  • 634
Re: sync'ing 3D video
« Reply #47 on: 27 / June / 2013, 17:22:03 »
... and grep for CDS too....  :D  IC2002 is called "IC2002 CDS A/D TG AD9923BBCZ" on the Ixus 60/65
it is also referred to as the CDS in the A3000... I think we are on to something here.


« Last Edit: 27 / June / 2013, 17:23:53 by ahull »

Re: sync'ing 3D video
« Reply #48 on: 27 / June / 2013, 17:45:09 »
... and grep for CDS too.... 

CDS = correlated double sampling, a technique used in the A/D conversion to get cleaner samples.

http://www.ccd.com/ccd107.html

*

Offline ahull

  • *****
  • 634
Re: sync'ing 3D video
« Reply #49 on: 27 / June / 2013, 18:08:01 »
... and grep for CDS too.... 

CDS = correlated double sampling, a technique used in the A/D conversion to get cleaner samples.

http://www.ccd.com/ccd107.html

... and this too is how it is described on page one - Features -  of the AD9923-BBCZ manual.

Lots of strings refer to CDS

Code: [Select]
grep -i "CDS" PRIMARY.BIN.strings
ff85ccc4 GetdccdScanParameter error = %ld
ff85d01c StopdccdScanNoticeCBR error
ff8c13e4 CDSDrv.c
ff903015 ***GetdccdScanParameter Start***
ff9030cd ***GetdccdScanParameter End***
ff9cc06c CDSGain.c
ff9cc594 CDSAccs.c
ff9cc82c CdsTable.c
ffa6c7b0 Set CDSPreGain %d
ffa6c7c4 Get CDSPreGain %d
ffa6c7d8 Set CDSPreGainReg %d
ffa6c7f0 Get CDSPreGainReg %d
ffa6c808 SetCDSGainApex %d
ffb0bdef CDSPARAMETER
ffb0c667 CcdShifter
ffb11b44 CancelAdjCdsMode
ffb11b55 IsAdjCdsMode
ffb11b62 SetAdjCdsMode
ffb11f0c SetAE_CdsGainValue
ffb11f1f GetCdsGainValue
ffb11f2f SetCdsGainValue
ffb120eb GetCdsPreGainReg
ffb120fc SetCdsPreGainReg
ffb12498 SetDeltaCDSGain
ffb124a8 SetCDSGain
ffb124b3 GetCdsPreGain
ffb124c1 SetCdsPreGain
ffb1286c SetCDSGainStep
ffb12d47 ReloadCdsAdjustment
ahull@ahull-T430:~/PersonalApps/CHDK/A3000IS/a3000/sub/100d$
« Last Edit: 27 / June / 2013, 18:13:33 by ahull »

 

Related Topics


SimplePortal © 2008-2014, SimplePortal