Skip to content

IMX585 Power – Horizontal banding and 3.3v power rail noise #10

@robertimorrison

Description

@robertimorrison

IMX585 Power – Horizontal banding and 3.3v power rail noise
This is not an open issue post, rather a solved problem and note for other people who might encounter the same issue. I built Will Whang’s excellent v1.0 IMX585 camera board using his driver and had severe problems with horizontal banding noise at higher analog gain values (>20 or so) in dark to darkish environments (late dusk to night). Exactly the sorts of scenarios where the starvis 2 chips are supposed to excel. At low gains and during the daytime, the sensor performed beautifully.

The IMX585 (and I would guess most/all of the sony starvis 2 sensors) are very sensitive to noise on the 3.3v supply rail and the pi5 3.3 volt supply (switchmode regulator?) is not up to the task.

Will’s original design powers the camera board off the pi’s MIPI 3.3v pin. While exact details are hard to pin down from the intertubes, the rail appears to have enough overall current for the task (maybe 700mA available, vs total draw from the 585 of maybe 350mA), however the noise on the rail totally pollutes the image from the sensor at highish-to-high gain values.

I haven’t put an oscilloscope on the supply rail, but I think what is going on (just from watching the current output on my benchtop supply, now supplying the camera board) is at high gain the sensor photocell amplifiers demand a sudden big step up in current at the end of each exposure as the image data is read out, amplified, A/D converted and shoveled to the MIPI interface. My guess is the Pi’s rail briefly rings in response, and the ring wrecks the performance of the on-sensor amps. Dunno if some additional capacitance in the design would address the problem. Roughly checking the camera board rails with a voltmeter didn’t reveal the problem, as it didn’t see the noise.

The solution was to isolate the camera board from the pi’s 3.3 volt source (I hacked through the trace on the camera board) and powered it from a linear 3.3 volt supply (presently a benchtop linear supply).

The two attached images illustrate the change, it should be obvious which is which. The second line of the data displayed is the exposure in msec, the analog gain, the digital gain and the CPU temp. The overall lighting of both scenes is dark.

A big thank you to Will and Tetsuya Nomura for their enormous hard work making these modern sensors function on the pi.

And since I’m under no NDA or any other obligations whatsoever to Sony, register 0x3030 (on the 585) is the analog gain multiplier that the starvis 2 chips have: a 0 in this register is the low-gain mode, 01, is high gain, but at the expense of higher noise. Register 0x306C is the analog gain itself – I’ve run it up 250(dec) in high gain mode, and the noise is really quite acceptable. Good job sony hardware engineers.

And finally a big hearty FU to sony for keeping all the register and basic datasheets so secret in the first place. To the sony executives: what exactly is the point here in keeping technical information ultra-top secret for a single-sale product you are presumably interested in selling more of? Lucky you guys have a talented engineering staff. AFAIK, these sensors are not like john deere tractors where secret details allow you to charge usurious prices for follow-on field services. If anything, the secrecy only encourages my (poor) hacking skills to reverse engineer and publicize the details. If sony wants to sue me, see ya in court boys!

Cheers - Bob Morrison

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions