View: 14421|Reply: 3

An unknown I2C device found at 0x48 on the Orange Pi Plus2 v1.1 board.

[Copy link]

1

threads

2

posts

15

credits

Novice

Rank: 1

credits
15
Published in 2016-12-16 11:11:50 | Show all floors |Read mode
When looking through devices connected to the I2C buses of my Orange Pi Plus2, I've found a device at address 0x48 on I2C bus 0:


root@orange:~# i2cdetect -y 0
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --                        

According to the contents of the `/sys' directory and the schematic diagrams of similar Orange Pi H3 based boards, I2C bus 0 is TWI0, the I2C bus which originates at the TWI0_SDA (C13) and TWI0_SCK (F1) terminals of the processor. Those terminals are connected to pins 3 and 5 of the 40-pin header, respectively.

There were no external devices (boards/modules, adapters, a monitor or something) connected to the 40-pin header and the HDMI connector, so the device is definitely located on the board itself.

I'm running Armbian Jessie for Desktop v. 5.23 with the Linux 3.4.112-sun8i stock kernel for the Allwinner H3 SOC. The device shows up as being a PCF8591 8-bit A/D and D/A converter, with the documentation available from the official NXP site at
www.nxp.com/documents/data_sheet/PCF8591.pdf:

alex@orange:~$ cat /sys/bus/i2c/devices/0-0048/name
pcf8591

From the system's point of view, after the initialization, it has four analog inputs and one output, as it should do:

alex@orange:~$ ls /sys/bus/i2c/devices/0-0048
driver        in0_input    in2_input    modalias    out0_enable    power    uevent
hwmon        in1_input    in3_input    name        out0_output    subsystem

The readings of the device are constant, and all equal to 1860mV:

alex@orange:/sys/bus/i2c/devices/0-0048$ cat in0_input in1_input in2_input in3_input
1860
1860
1860
1860

Thus, the initialization of the device is somewhat successful, though I don't think it is really a PCF8591.

Unfortunately, the schematic diagram of the development board is not available. I couldn't find such a device in the schematic diagrams of the Orange Pi Plus, the Orange Pi One, the Orange Pi Plus 2E, the Orange Pi Mini, the Orange Pi PC2 and the Orange Pi PC Plus. There is nothing similar in the SO16 package soldered on the board, either. With an ohmmeter, I've tried to find an IC directly connected to pins 3 and 5 of the 40-pin header, but without success.

What really is the device? What can it be used for, and how can it be used?


0

threads

47

posts

1708

credits

Gold member

Rank: 6Rank: 6

credits
1708
Published in 2016-12-17 01:40:40 | Show all floors
Hello Alex.
I have the same board but i2c detect shows me nothing.
I'm using 3.4.112+ kernel from slackware (by mara).
It seems like the Win 98 OS has reincarnation in armbian project

1

threads

2

posts

15

credits

Novice

Rank: 1

credits
15
 Author| Published in 2016-12-17 09:28:20 | Show all floors
Edited by alex_kozhushkin at 2016-12-17 05:41
dx.l replied at 2016-12-16 21:40
Hello Alex.
I have the same board but i2c detect shows me nothing.
I'm using 3.4.112+ kernel from  ...

Thank you for the information!

I've tried some experiment with the following result.

It appears that it's not the Armbian that is to blame, but rather the kernel module for the PCF8591 device. It just cannot tell whether the device is really present on the I2C bus.

The Orange Pi Plus2 running Armbian Jessie for Desktop v.5.23 loads that module, `pcf8591.ko', as a part of its start up procedure by default.

I tried and remove the module, and ... the device disappeared! Note the device at 0x68 is a DS3231 based RTC, and it is really connected to my system via the 40-pin header.

root@orange:~# i2cdetect -y 0
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --                        

root@orange:~# cat /proc/modules
mali_drm 2732 1 - Live 0xbf1bb000
drm 178255 2 mali_drm, Live 0xbf179000
mali 123208 0 - Live 0xbf14c000
ump 29379 3 mali, Live 0xbf13e000
bmp085 3487 0 - Live 0xbf13a000
pcf8591 3363 0 - Live 0xbf136000
8189es 1076034 0 - Live 0xbf004000

root@orange:~# modprobe -r pcf8591

root@orange:~# cat /proc/modules
mali_drm 2732 1 - Live 0xbf1bb000
drm 178255 2 mali_drm, Live 0xbf179000
mali 123208 0 - Live 0xbf14c000
ump 29379 3 mali, Live 0xbf13e000
bmp085 3487 0 - Live 0xbf13a000
8189es 1076034 0 - Live 0xbf004000

root@orange:~# i2cdetect -y 0
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --                        
root@orange:~#


0

threads

1

posts

8

credits

Novice

Rank: 1

credits
8
Published in 2017-4-10 20:08:33 | Show all floors
To remove this fake device permanently:
1) Create a file named '/etc/modprobe.d/pcf8591.conf'
2) Containing 'install pcf8591 /bin/true'.
3) Reboot.
You need to log in before you can reply login | Register

Points Rule

Quick reply Top Return list