Create 2nd I2C Interface

Hi,

I'm trying to connect ArduCam Mini OV2640 module on MKR1400 board. The SPI communication between both module is successful, but the I2C communication is unsuccessful. After investigation, I found that the I2C address of the camera is the same address of the ATECC508A chip on the board. So that perhaps the reason.

Two solutions for this problem are either:

  1. Change the I2C address of the ATECC508A as the I2C of the camera can't be changed.

  2. Create the 2nd I2C interface to interract with camera.

I choose to do the 2nd solution. Using the tutorial from Adafruit " using-atsamd21-sercom-to-add-more-spi-i2c-serial-ports " , I create the new I2C instance with SERCOM5 (pad 0 , pad 1) on pin 0 (PA22) and pin 1(PA23). There's no problem on programming the board. But..

To make sure if that it fully functioned, i try to scan I2c address. There are many I2C Scanner example on the website, so I just choose one, which is from this I2C Scanner

The result is however not good, as it states that I2c device found at all of addresses, from 0x01 to 0x7E. The image is attached.

If I'm doing the scanner using normal Wire, I got the address of the battery charger chip 0x6B and the ATECC508A 0x60.

Perhaps has anyone any ideas why every addresses is shown and not just 0x60 using the new I2C port?

As extra info, SERCOM5 pad 2 and pad 3 are used for Serial1 interface. Perhaps only one instance possible pro SERCOM. Is it possible?

Thanks.

Update to this topic, the question is not valid anymore. It was my mistake. The address for OV2640 is not 0x60 but 0x30. I'm running the i2c scanner test again today, and the camera address is now found.