Page 1 of 1

CAM1 Detection Issue in carrier PCB for CM3L

Posted: Sat Apr 28, 2018 4:46 am
by arajasek
I am testing a custom carrier PCB for the CM3L and I'm having some issues detecting the camera connected to CAM1 port. I'm getting the following error message when I run a Raspivid command:

Code: Select all

mmal: mmal_vc_component_create: failed to create component '' (1:ENOMEM)
mmal: mmal_component_create_core: could not create component '' (1)
mmal: Failed to create camera component
mmal: main: Failed to create camera component
CAM0 port is connected and fully functional, I'm able to record videos on CAM0 port without any problem.

Here's my schematic for the camera ports:
Screen Shot 2018-04-28 at 12.25.02 AM.png
Screen Shot 2018-04-28 at 12.25.02 AM.png (168.71 KiB) Viewed 438 times
The data lines have a 100 ohm impedance and are length matched. I think the problem is with the I2C bus as the camera is not being detected at all.

The output to vcgencmd get_camera:

Code: Select all

supported=2, detected=1
I checked the integrity of all the camera traces and found no faults and found no bridges or other soldering on the board.

The 1.8k pullup resistors on the I2C bus seem to be doing their job of pulling up the two I2C lines.
I didn't see any activity on the I2C lines on the scope, just a flat 3.25V output.

So I've ruled out any hardware issues that might be causing the problems.

As for other I2C devices, I followed instruction by PhilE on my post here: viewtopic.php?f=98&t=208881&p=1293231#p1293231 to configure an RTC, which is working fine. Would that have some interference with CAM1 that would cause the problem?

I've run out of ideas to debug this issue, so any help would be really appreciated. Thanks in advance.

Re: CAM1 Detection Issue in carrier PCB for CM3L

Posted: Sat Apr 28, 2018 6:52 pm
by arajasek
Update: It was indeed the RTC connected to the I2C0 Bus(Pins 44 and 45) Is there a way to have the both the RTC and the cameras connected? Maybe change the function of Pin 44 & 45 from SDA0/SCL0 to SDA1/SCL1?

Re: CAM1 Detection Issue in carrier PCB for CM3L

Posted: Sat Apr 28, 2018 7:00 pm
by PhilE
You've always got the option of using bit-bashed I2C on any pair of GPIOs - the data rate for an RTC is minimal:

Code: Select all

[email protected]:~$ dtoverlay -h i2c-gpio
Name:   i2c-gpio

Info:   Adds support for software i2c controller on gpio pins

Usage:  dtoverlay=i2c-gpio,<param>=<val>

Params: i2c_gpio_sda            GPIO used for I2C data (default "23")

        i2c_gpio_scl            GPIO used for I2C clock (default "24")

        i2c_gpio_delay_us       Clock delay in microseconds
                                (default "2" = ~100kHz)

        bus                     Set to a unique, non-zero value if wanting
                                multiple i2c-gpio busses. If set, will be used
                                as the preferred bus number (/dev/i2c-<n>). If
                                not set, the default value is 0, but the bus
                                number will be dynamically assigned - probably