Hi all,
Re;- Physw_Status post #124 here
http://chdk.setepontos.com/index.php?topic=10385.msg109745#msg109745"On camera with a built-in external ......... for a Canon .... remote switch, I would expect the input bits from that device to pass through the same input physw_status[] words as the other digital inputs.
So it should be possible to intercept that input, and reroute to the USB remote code, allowing a tidy way to get precision sync & ptp communications without having to hack the battery input terminal."
For this post [only] lets assume there is a "Virtual" Canon Camera that has a feature called "Control via HDMI", in Play Mode Only, and uses a:-
"Analog Devices" HDMI Transmitter, lets say its similar to a, IC Chip ADV7511(w).
@ link
http://www.analog.com/en/audiovideo-products/analoghdmidvi-interfaces/adv7511/products/product.htmlAnd our "Virtual" Canon Camera has 4 I2c buses:-
a/ Canon, Digic Imager, I2c High speed, internal.
b/ Canon, Arm, I2c Control_Via_HDMI, Low speed internal.
c/ Analog Devices, I2c-CeC, external.
d/ Analog Devices, I2c-DDC, external.
1/ We are Not Interested in the HDMI/TMDS [Audio/Video], and its not the subject of this Post.
2/ We may have some, future, Interest in the I2C-CeC and I2c-DDC Bus-Controlers, but its not main the subject of this Post.
3/ The HPD, or HDMI Hot Plug Detection, is Part-A and "The Subject" of this Post. i.e HDMI-Pin_19
4/ The "INT" generated by the "Intergrated (CEC/DDC/HDMI) Buffer Controller", is Part-B and "The Subject" of this Post. i.e. The "physw_status[]" Post #124.
5/ The +5 Vols, @ max 50 ma, and the string "HdmiHpd5VOutput" is Part-C and "The Subject" of this Post. i.e. HDMI-Pin_18
Please see the attached files for some more detalis about this concept.
ADV7511.png and Hdmi & CeC PinOuts.png
Regarding:- "On Camera(s) with a built-in external ....HDMI.... for a Canon .... remote switch,..."
So the "Virtual" Canon Camera questions are:-
"would (we) expect the "Init" from that (HDMI) device to pass through the same input physw_status[] words as the other digital inputs."
Edit #1.... "Init"
To put the Question, in a simpler way, could Canons HDMI Hot Plug Detection be similar to Canons USB Hot Plug Detection.
Note that USB Hot Plug Detection can do lots of useful stuff such as turn on the AF_Led, etc, etc.
But HDMI Hot Plug Detection can also control "HDMI pin 18". i.e. the +5 Vols, @ max 50 ma.
AND also has in built software to "HecHdmiCecPhysicalCheckForScript", and is Part-D and "The Subject" of this Post.
May be the USB Hot Plug Detection can also control via "HDMI pin 18". i.e. the +5 Vols, @ max 50 ma.
Edit #2.... It is also described as a "Load Switch"
This concept requires some external "$5 Hardware" for Part-A and Part-C, the $5 Hardware Hack is Quick and Simple and could have many variations.
For this post [only] lets also assume the "$5 Hardware-HPD" hack is connected in parallel with the USB-HPD. i.e. as the "Virtual" CHDK Remote Camera Inputs.
In the, custom, CHDK software the USB Hot Plug Detection turns on the AF_Led, and HDMI Hot Plug Detection turns on a External_Led connected to the "HdmiHpd5VOutput" via a suitable Led current limiting resistor, say 20 ma. This would be a simple way to test the basic HDMI-HPD concept.
Any comments on Parts A-D or the "$5 Hardware" hack.
Some Additional Notes:-
When connecting by "Control via HDMI", in Play Mode Only, there is a noticable delay probably due to the HDMI/TMDS [Audio/Video] clock sync.
Analog Devices software, HDMI-Tx and HDMI-Rx, is available for the I2C-CeC and I2c-DDC Bus-Controlers this may enable very sofiscated inter-camera communications.
Analog Devices ug_556.pdf describes the operation of I2C-CeC and I2c-DDC Bus-Transmitters, a copy is included with Analog Devices software.
Analog Devices
.pdf describes the operation of I2C-CeC and I2c-DDC Bus-Receivers, on the Analog Devices website.
H_H
Further References:-
Canon, HDMI, firmware Dumps:-
b/ Cec_tx_func.c, Cec_rx_func.c and I2CDrv.c.
c/ "HdmiHpd5VOutput"
d/ "HecHdmiCecPhysicalCheckForScript"
http://wiki.analog.com/resources/tools-software/linux-drivers/drm/adv7511http://www.analog.com/static/imported-files/software_modules/ADV7511_API_Library.exe