Interface PC I2C type Philips ou Velleman

De MicElectroLinGenMet.

Sommaire

Description

Configuration par le port parallèle du PC d'une interface I2C de type Philips ou Velleman sous Linux Debian.


Interface PC/I2C type Philips


Shéma electronique

ASCII version:

                                        LS05 pin 14 (Vcc) o      -------
                                                          |      |     |
           +--+--+---------------------+--+--+------------+------+-o 1 |
           |  |  |                     |  |  |           ===.1uF | +5V |
 -------- [R][R][R] 3x10K       3x10K [R][R][R]   LS05    |      |     |
 |      |  |  |  |                     |  |  |    pin 7 o-+------+-o 2 |
 | 12 o-+--+  |  |   3|\ 4             |  |  |    (Gnd)          | GND |
 | 17 o-+-----|--|----| >o-------------+--|--|--------------+    |     |
 |      |     |  |    |/        8 /|9     |  |     10 /|11  +----+-o 3 |
 | 15 o-+-----+--|--------------o< |------+--|------o< |----+    | SCL |
 |      |        |   1|\ 2        \|         |        \|         |     |
 |  9 o-+--------|----| >o-------------------+--------------+----+-o 4 |
 |      |        |    |/                            6 /|5   |    | SDA |
 | 11 o-+--------+----------------------------------o< |----+    -------
 | 10 o-+-+                                           \|          4-pin
 | 13 o-+-+--oGND                                               Connector
 | 25 o-+-+        ------------------ Part List --------------------------
 --------          | 1 - .01 uF capacitor  | 6 - 10K 5% resistors        |
 25-pin male D     | 1 - 4-pin connector   | 1 - 25-pin male D connector |
 connector to PC   | 1 - 74LS05 open collector hex inverter              |
 printer port      -------------------------------------------------------




Modules nécessaires


Sous kernel 2.4.x

# modprobe i2c-dev
# modprobe i2c-philips-par
# lsmod | grep i2c

i2c-philips-par         2140   0
i2c-algo-bit            7144   1 [i2c-philips-par]
parport                24200   1 [parport_pc i2c-philips-par]
i2c-dev                 4452   0
i2c-core               12868   0 [i2c-algo-bit i2c-dev]
# cat /proc/bus/i2c
# i2c-0   i2c             Philips Parallel port adapter           Bit-shift algorithm


Sous kernel 2.6.x

Nouveaux modules:

# modprobe i2c-dev
# modprobe -v i2c-parport type=0

type 0 correspond à 'Philips adapter'

# modinfo i2c_parport

filename:       /lib/modules/2.6.9-1-686/kernel/drivers/i2c/busses/i2c-parport.ko
parm:           type:Type of adapter:
 0 = Philips adapter
 1 = home brew teletext adapter
 2 = Velleman K8000 adapter
 3 = ELV adapter
 4 = ADM1032 evaluation board
 5 = ADM1025, ADM1030 and ADM1031 evaluation boards

author:         Jean Delvare 
description:    I2C bus over parallel port
license:        GPL
vermagic:       2.6.9-1-686 preempt 686 gcc-3.3
depends:        parport,i2c-algo-bit

Pour vérifier (/proc/bus/i2c n'existe plus): utiliser i2cdetect -l



Interface PC/I2C type Velleman k8000


Shéma electronique

Cablâge:

lp		    K8000
select (13) 	<= (SDA in)
autofeed (14)	=> (SDA out)
select-in (17)	=> (SCL)
Gnd (18-25)	-- (Gnd)

Shéma:


Rajout du 74LS125 comme sur le shéma d'origine de la carte velleman K8000 sans opto-coupleur.



Modules nécessaires

Sous kernel 2.4.x

# modprobe i2c-dev
# modprobe i2c-velleman
# lsmod | grep i2c

i2c-velleman            1512   0 
i2c-algo-bit            7144   1  [i2c-velleman]
i2c-dev                 4452   0 
i2c-core               12868   0  [i2c-algo-bit i2c-dev]
# cat /proc/bus/i2c
i2c-0   i2c             Velleman K8000                          Bit-shift algorithm


Sous kernel 2.6.x

Nouveaux modules:

# modprobe i2c-dev
# modprobe -v i2c-parport type=2

type correspond à 'Velleman K8000 adapter'

# modinfo i2c_parport

filename:       /lib/modules/2.6.9-1-686/kernel/drivers/i2c/busses/i2c-parport.ko
parm:           type:Type of adapter:
 0 = Philips adapter
 1 = home brew teletext adapter
 2 = Velleman K8000 adapter
 3 = ELV adapter
 4 = ADM1032 evaluation board
 5 = ADM1025, ADM1030 and ADM1031 evaluation boards

author:         Jean Delvare 
description:    I2C bus over parallel port
license:        GPL
vermagic:       2.6.9-1-686 preempt 686 gcc-3.3
depends:        parport,i2c-algo-bit


Utilitaires i2c fourni avec le package lm-sensors

# i2cdetect -l
i2c-6   i2c             NVIDIA i2c adapter 2 at 1:00.0          I2C adapter
i2c-5   i2c             NVIDIA i2c adapter 1 at 1:00.0          I2C adapter
i2c-4   i2c             NVIDIA i2c adapter 0 at 1:00.0          I2C adapter
i2c-3   i2c             Parallel port adapter                   I2C adapter
i2c-2   i2c             bt848 #0 [sw]                           I2C adapter
i2c-1   i2c             cx88[0]                                 I2C adapter
i2c-0   smbus           SMBus Via Pro adapter at 0400           SMBus adapter
# ./i2cdetect 3

  WARNING! This program can confuse your I2C bus, cause data loss and worse!
  I will probe file /dev/i2c-0
  You have five seconds to reconsider and press CTRL-C!

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

Détecte le SAA1064 (adr. i2c =70h (70h/2=38h)


Exemple avec 5 circuits I2C sur l'interface:

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

Détecte le SAA1064 (70h), PCF8574 (40h + 42h), PCF8574A (72h) et un SAA5246 (22h)


Exemple de programme pour piloter le bus

Description du SAA1064 avec programme C Saa1064.c pour piloter l'afficheur sous Linux.




3 mai 2005