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
