I2cdetect shows no devices on the bus


#1

Hi Everyone,

I am using the linux distribution came from mangoH Red. After power up the board when I probe the i2c devices , I am not able to see any of the i2c slave devices on bus. But the block diagram shows it has devices like

gyroscope
accelerometer
gpio expander
temp sensor etc…

Please find the attached snapshot of the block diagram.

How ever when I probe the i2c devices from linux , I see nothing as shown below. Is some one face the same problem. Any help is greatly appreciated

root@swi-mdm9x28:~# root@swi-mdm9x28:~# i2cdetect -y 3
i2cdetect: warning: can’t use SMBus quick write command, will skip some addresses
0 1 2 3 4 5 6 7 8 9 a b c d e f
00:
10:
20:
30:
40:
50:
60:
70:
root@swi-mdm9x28:~# root@swi-mdm9x28:~# i2cdetect -y 4
i2cdetect: warning: can’t use SMBus quick write command, will skip some addresses
0 1 2 3 4 5 6 7 8 9 a b c d e f
00:
10:
20:
30:
40:
50:
60:
70:
root@swi-mdm9x28:~# root@swi-mdm9x28:~# i2cdetect -y 5
i2cdetect: warning: can’t use SMBus quick write command, will skip some addresses
0 1 2 3 4 5 6 7 8 9 a b c d e f
00:
10:
20:
30:
40:
50:
60:
70:
root@swi-mdm9x28:~# root@swi-mdm9x28:~# i2cdetect -y 5root@swi-mdm9x28:~# i2cdetect -y 6root@swi-mdm9x28:~# i2cdetect -y 6
i2cdetect: warning: can’t use SMBus quick write command, will skip some addresses
0 1 2 3 4 5 6 7 8 9 a b c d e f
00:
10:
20:
30:
40:
50:
60:
70:
root@swi-mdm9x28:~# root@swi-mdm9x28:~# i2cdetect -y 7
i2cdetect: warning: can’t use SMBus quick write command, will skip some addresses
0 1 2 3 4 5 6 7 8 9 a b c d e f
00:
10:
20:
30:
40:
50:
60:
70:

Best Regards,
Siva


#2

Use i2cdetect -r -y N where N is the I2C bus number.

This error message i2cdetect: warning: can’t use SMBus quick write command, will skip some addresses is the hint.


#3

Yes this solves the problem . Thanks

How ever all the i2c bus shows the same devices irrespective of the bus number. Is this expected ?

root@swi-mdm9x28:~# i2cdetect -r -y 4
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: – 04 05 06 07 – -- – -- – -- – --
10: – -- – -- – -- – -- – -- UU – -- – -- –
20: – -- – -- – -- – -- – -- – -- – -- – --
30: – -- – -- – -- – -- – -- UU – -- – UU –
40: – -- – -- – -- – -- – -- – -- – -- – --
50: – 51 – -- – -- – -- – -- – -- – -- – --
60: – -- – -- UU – -- – UU – -- UU – -- – --
70: – UU – -- – -- UU –
root@swi-mdm9x28:~# i2cdetect -r -y 5
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: – 04 05 06 07 – -- – -- – -- – --
10: – -- – -- – -- – -- – -- UU – -- – -- –
20: – -- – -- – -- – -- – -- – -- – -- – --
30: – -- – -- – -- – -- – -- UU – -- – -- –
40: – -- – -- – -- – -- – -- – -- – -- – --
50: – 51 – 53 – -- – -- – -- – -- – -- – --
60: – -- – -- – -- – -- UU – -- – -- – -- –
70: – UU – -- – -- UU –
root@swi-mdm9x28:~# i2cdetect -r -y 6
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: – 04 05 06 07 – -- – -- – -- – --
10: – -- – -- – -- – -- – -- UU – -- – -- –
20: – -- – -- – -- – -- – -- – -- – -- – --
30: – -- – -- – -- – -- – -- UU – -- – -- –
40: – -- – -- – -- – -- – -- – -- – -- – --
50: – 51 – -- – -- – -- – -- – -- – -- – --
60: – -- – -- UU – -- – UU – -- UU – -- – --
70: – UU – -- – -- UU –
root@swi-mdm9x28:~# i2cdetect -r -y 7
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: – 04 05 06 07 – -- – -- – -- – --
10: – -- – -- – -- – -- – -- UU – -- – -- –
20: – -- – -- – -- – -- – -- – -- – -- – --
30: – -- – -- – -- – -- – -- UU – -- – UU –
40: – -- – -- – -- – -- – -- – -- – -- – --
50: – 51 – -- – -- – -- – -- – -- – -- – --
60: – -- – -- – -- – -- UU – -- – -- – -- –
70: – UU – -- – -- UU –
root@swi-mdm9x28:~# i2cdetect -r -y 8
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: – 04 05 06 07 – -- – -- – -- – --
10: – -- – -- – -- – -- – -- UU – -- – -- –
20: – -- – -- – -- – -- – -- – -- – -- – --
30: – -- – -- – -- – -- – -- UU – -- – -- –
40: – -- – -- – -- – -- – -- – -- – -- – --
50: – 51 – -- – -- – -- – -- – -- – -- – --
60: – -- – -- – -- – -- UU – -- – -- – -- –
70: – UU – -- – -- UU –

Thanks,
Siva


#4

If you look carefully, there are some differences. For example, 53 appears only on bus 5. What’s going on is that bus 4 is the only physical bus leaving the WP module. There are a number of devices connected to that bus. One of the devices connected to that bus (at address 71) is the I2C switch. This chip has one pair of upstream i2c pins and 4 pairs of downstream pins. Each set of downstream pins is presented as a new bus by the driver in Linux. So that’s you bus 5, 6, 7, 8. The issue is that these buses aren’t isolated from the main bus (4). So What your options really are is:

4 -> 4
5 -> 4 + 5
6 -> 4 + 6
7 -> 4 + 7
8 -> 4 + 8

Also, FYI you’re likely to get quicker responses to these types of questions on the mangOH forum.


#5

From the schematic, Its mentioned the following are the I2C devices . But from software its different i2c address.

image

root@swi-mdm9x28:~# i2cdetect -r -y 4
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: – 04 05 06 07 – -- – -- – -- – --
10: – -- – -- – -- – -- – -- UU – -- – -- –
20: – -- – -- – -- – -- – -- – -- – -- – --
30: – -- – -- – -- – -- – -- UU – -- – -- –
40: – -- – -- – -- – -- – -- – -- – -- – --
50: – 51 – -- – -- – -- – -- – -- – -- – --
60: – -- – -- – -- – -- 68 – -- – -- – -- –
70: – 71 – -- – -- 76 –

Am I missing something here ? what are these additional devices ?
Is there any document describing the list of i2c devices ?

Thanks


#6

best to ask the question at : forum.mangoh.io