Max,
A long delay in responding to this, apologies. I’ve been working on this again recently. In short, your suggestion to change the color verified that the free-run mode color could be altered.
However, in doing so I noticed that the I2C bus was very unreliable - I would often get read/write errors. Examining dmesg with the adv7180 driver in debug mode also regularly showed failure to read from and write to registers on the adv7180 chip. I was worried that the custom board I was using with the adv7180 chip was faulty somehow, so I shifted over to using the Toradex Analog Camera Module (v1.1A).
Apalis IMX6 + Ixora + ACM v1.1A
I get the same I2C errors when using the ACM with the Ixora. I have had to use jumper cables to map from the 24-pin ACM connector to the 20-pin X14 header on the Ixora. However, with only power, ground, and I2C connected I still see very unreliable I2C transfers. Tapping into the I2C lines with a logic analyzer, it looks like the I2C bus gets ‘stuck’ with SCA low, and this prevents any further data transfer until the chip is reset. I’m not an I2C expert, but possibly there is lost data during the transactions and this leads to the slave device holding the line low waiting for a send to finish?
One curious behavior I have noticed is that if I set register 0x03 to tristate the video output, effectively turning it off, the behavior is much more stable. Initially I thought this might be due to crosstalk, but now that there is no physical connection carrying video data I’m not so sure.
Worried that the homemade cable connecting the ACM and X14 on the Ixora was an issue, I have now tried using the ACM in combination with the Apalis Eval Board.
Apalis IMX6 + Eval Board + ACM v1.1A
The fresh Apalis module I initially plugged into the Ixora was loaded with a v2.4 BSP. This used gst-launch-0.10 and the video feed appeared flawlessly, first time. Encouraging!
On another Apalis I used a mostly vanilla install of the Apalis_iMX6_LinuxImageV2.6_20160826.tar.bz2 BSP. I made two modifications to this:
- To alter the device tree to enable the ADV7180 driver and disable all others
- To modify the ADV7180 driver to not write a value to register 0x00 (to enable full autodetect of format). This has worked to a degree on the custom board (format is mostly detected reliably, when the I2C works).
Sadly, this just results in a blue-screen and the format is not correctly detected. However, the I2C seems to be stable and remains read and write-able.
To summarise my questions:
- Can you think of a reason why I2C would be unstable when connecting either a custom board with ADV7180, or the ACM (configured for ADV7180), to the Ixora? Could this be solely down to wiring? Or could something else be interfering with the bus?
- Is there a reason why v2.4 with gst-launch-0.10 works on the eval board ‘out of the box’? I noted that register 0x00 had value 0x00 (full autodetect) in that configuration.
Any help you can provide would be greatly appreciated!