1
\$\begingroup\$

I've recently bought a SI5351A I2C breakout board on Aliexpress (This listing) for a project. I was trying to test the board using a simple breadboard, a couple of jumper wires and my raspberry pi 3 (running raspbian buster).

The problem I have is that for some reason the I2C device is not detected when I run i2cdetect. I've enabled i2c in the pi configuration and can see bus 1 listed in /dev, below is the output:

pi@raspberrypi:~ $ sudo i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --                         
pi@raspberrypi:~ $ ls /dev/i2c*
/dev/i2c-1
pi@raspberrypi:~ $ lsmod | grep i2c
i2c_bcm2835            16384  0
i2c_dev                20480  0
i2c_bcm2708            16384  0
pi@raspberrypi:~ $ 

I've successfully tested the continuity of all the pins on the breakout board using my multimeter to make sure I soldered everything correctly.

I've also checked the voltage of the VIN pin and I get 3.3V as expected.

I've driven the SCL and SDA pins from high to low and low to high every second using a simple python gpiozero script and I do see my multimeter fluctuating between ~3.3V and ~0V

enter image description here

I also see some activity on SDA and SCL when I run i2cdetect.

enter image description here

I've been following the following tutorial to get everything hooked up properly:

Adafruit SI5351 I2C Clock generator Tutorial

My board isn't adafruit branded but it's the exact same thing every inputs and outputs are in the same position and the board as the exact same layout.

Here are my connections:

enter image description here

At this point I am at my wit's end, I have no idea how to troubleshoot further, I've tested this on 2 different PI 3 and 2 different breakout board and I always get the same result. Did I buy a faulty component?

Now I am not an electrical engineer I'm a software guy taking my first steps in the wonderful word of electronics so please forgive me if something is so painfully obvious and I haven't seen it.

Edit: I've bought a Adafruit branded component, it was more expensive but at least it worked right out of the box.

I've tried to read/dump registers on the Aliexpress component as suggested from both addresses 0x60 and 0x61 and I get a read error so I think it's time for me to get a refund.

pi@raspberrypi:~ $ sudo i2cdump 1 0x60
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
10: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
20: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
30: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
40: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
50: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
60: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
70: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
80: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
90: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
a0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
b0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
c0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
d0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
e0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
f0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX

pi@raspberrypi:~ $ sudo i2cget 1 0x60 0x03 
Error: Read failed
\$\endgroup\$
3
  • \$\begingroup\$ The way how i2cdetect tries to detect chips is not compatible with all chips. What happens if you actually try to read or write a register, like read register 3 or write any value to it, will it succeed or fail? The 7-bit I2C address of the chip should be 0x60 by default. \$\endgroup\$
    – Justme
    Mar 31 at 16:07
  • \$\begingroup\$ Maybe you should get a module from a reputable vendor and try that first. \$\endgroup\$ Mar 31 at 17:58
  • \$\begingroup\$ I bought one from adafruit instead, soldered the header, connected the same way and it worked instantly. I'll still try what was proposed by @justme see if it's because of a cheap faulty component or not. \$\endgroup\$
    – Lexx32117
    Apr 6 at 0:13
0
\$\begingroup\$

Make sure you added a pull-up resistor on both the SDA and SCL lines to VCC. It's not certain whether the breakout contains some. Anything from 1 to 10k.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.