Grautier.com - Projekte

Geht nicht gibt es nicht !!!

Benutzer-Werkzeuge

Webseiten-Werkzeuge


elektronik:i2c:monitor

I2C über VGA, HDMI, DVI

Beschreibung

Wen man am Rechner I²C braucht und grade keine Adapter hat oder Bit-bang wegen der Rechner last nicht nutzen möchte kann man seinen Displayport dafür benutzen, die DDC Leitungen führen ein I²C Signal welches man nutzen kann, denkbar wehre es auch bei Laptops sich den I²C Bus am LCD-Pannel abzunehmen oder am Akku-Pack, da die meisten Laptops/PCs einen Port haben den man nicht braucht ist das die leichteste Methode, funktionieren sollte das mit allen Grafikkarten die DDC unterstützen und der Treiber das bereitstellt, der vorteil ist das das echtes I²C ist und nicht irgendwas Adaptiertes mit Timing Problemen.

Anleitung

Belegung

VGA

5	Masse für DDC
9	+5V max. 100mA
12	SDA - DDC
15	SCL - DDC

HDMI

17	SCL - DDC
18	SDA - DDC
16	Masse für DDC
19	+5 V max. 55 mA

DVI

6	SCL - DDC
7	SDA - DDC
14	+5 V max. 55mA
15	Masse für DDC

Hinweise

Pullup's werden nicht gebraucht diese sind immer auf der Grafikkarte vorhanden.

!!! Nie im EEPROM eines eventuell angeschlossenen Monitors schreiben, dieses kann zu Dauerhaften Schäden führen, das gilt auch für alle System internen I²C Geräte. !!!

System vorbereiten

Als erstes brauchen wir noch etwas Software diese ist bei allen gängigen Distr. vorhanden.

I2C-Tools - zum Lesen / Schreiben und suchen von angeschlossenen Geräten.
LM-Sensors - Bringt die Kernelmodule für I2C ins System.

sudo apt-get install i2c-tools lm-sensors

Kernel Module laden und dauerhaft ins System einbinden.

sudo modprobe i2c-dev
sudo echo "i2c-dev" >> /etc/modules

Drives Suchen/Finden

Jetzt wird es etwas kompliziert wir müssen raus finden welcher I²C-Bus der am Port ist, dieses macht man mit „i2cdetect -l“ da sollte sowas wie die folgende ausgaben kommen.

i2c-0   smbus           SMBus PIIX4 adapter at 0b00             SMBus adapter
i2c-1   smbus           SMBus PIIX4 adapter at 0b10             SMBus adapter
i2c-2   i2c             cx88[0]                                 I2C adapter
i2c-3   i2c             NVIDIA i2c adapter 0 at 2:00.0          I2C adapter
i2c-4   i2c             NVIDIA i2c adapter 1 at 2:00.0          I2C adapter
i2c-5   i2c             NVIDIA i2c adapter 2 at 2:00.0          I2C adapter

oder

i2c-0   unknown         i915 gmbus ssc                          N/A
i2c-1   unknown         i915 gmbus vga                          N/A
i2c-2   unknown         i915 gmbus panel                        N/A
i2c-3   unknown         i915 gmbus dpc                          N/A
i2c-4   unknown         i915 gmbus dpb                          N/A
i2c-5   unknown         i915 gmbus dpd                          N/A

Bei dem zweiten Beispiel ist es sehr eindeutig, i2c-1 ist der VGA Port, i2c-2 wehre das LCD-Pannel und i2c-4 der Akku.

Bei dem ersten haben wir die Grafikkarte mit drei einzelnen Bus-Linien, da wir noch nichts angeschlossen haben sollten nur die Monitore zu finden sein, also schauen wir uns mal an was wir finden, dieses machen wir mit „i2cdetect -y <BUS>“ z.b. i2cdetect -y 3.

i2cdetect -y 3

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

     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- 37 -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: 50 51 52 53 54 55 56 57 -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --  
i2cdetect -y 5

     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- 0c -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- 2e -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: 70 -- -- -- -- -- -- --

Wir sehen jetzt das da einiges drauf ist 2-3 EEPROMs pro Monitor sind normal also haben wir schon mal i2c-3 und i2c-5 für die Monitore gefunden (bei mir zwei), am einfachsten ist es jetzt sich eine freie Adresse zu suchen und was an den I²C-Bus zu hängen, danach scannen wir den BUS nochmal und sehen dann wo das neue Gerät auftaucht.

Wenn alles geklappt hat kann man jetzt i2cdump, i2cget, i2cset nutzen um auf die Geräte zuzugreifen.

sandfrog 2016/09/22 16:19

Diskussion

Geben Sie Ihren Kommentar ein. Wiki-Syntax ist zugelassen:
T K K N K
 
elektronik/i2c/monitor.txt · Zuletzt geändert: 23/09/2016 16:52 (Externe Bearbeitung)