内核驱动 i2c-parport

作者:Jean Delvare <jdelvare@suse.de>

这是一个用于多个基于并行端口的 I2C 适配器的统一驱动程序,例如 Philips、Velleman 或 ELV 制造的适配器。此驱动程序旨在替代较旧的单独驱动程序

  • i2c-philips-par

  • i2c-elv

  • i2c-velleman

  • video/i2c-parport(与此不同,专用于自制图文电视适配器)

它目前支持以下设备

  • (type=0) Philips 适配器

  • (type=1) 自制图文电视适配器

  • (type=2) Velleman K8000 适配器

  • (type=3) ELV 适配器

  • (type=4) Analog Devices ADM1032 评估板

  • (type=5) Analog Devices 评估板:ADM1025、ADM1030、ADM1031

  • (type=6) Barco LPT->DVI (K5800236) 适配器

  • (type=7) One For All JP1 并行端口适配器

  • (type=8) VCT-jig

这些设备使用不同的引脚配置,因此您必须使用 type 模块参数告知驱动程序您拥有什么。没有办法自动检测设备。如果需要,可以轻松添加对不同引脚配置的支持。

早期的内核默认为 type=0 (Philips)。但是现在,如果缺少 type 参数,驱动程序将无法初始化。

在正确连接到并行端口中断引脚的适配器上,可以使用 SMBus 警报支持。

构建您自己的适配器

如果您想构建自己的基于并行端口的 I2C 适配器,这里有一个电子原理图示例(感谢 Sylvain Munaut)

Device                                                      PC
Side          ___________________Vdd (+)                    Side
               |    |         |
              ---  ---       ---
              | |  | |       | |
              |R|  |R|       |R|
              | |  | |       | |
              ---  ---       ---
               |    |         |
               |    |    /|   |
SCL  ----------x--------o |-----------x-------------------  pin 2
                    |    \|   |       |
                    |         |       |
                    |   |\    |       |
SDA  ----------x----x---| o---x---------------------------  pin 13
               |        |/            |
               |                      |
               |         /|           |
               ---------o |----------------x--------------  pin 3
                         \|           |    |
                                      |    |
                                     ---  ---
                                     | |  | |
                                     |R|  |R|
                                     | |  | |
                                     ---  ---
                                      |    |
                                     ###  ###
                                     GND  GND
备注
  • 这是 Analog Devices 评估板上使用的确切引脚排列和电子元件。

  • 所有反相器

      /|
    -o |-
      \|
    

    必须是 74HC05,它们必须是开路集电极输出。

  • 所有电阻均为 10k。

  • 并行端口的引脚 18-25 连接到 GND。

  • 如果驱动程序将引脚 4-9 (D2-D7) 拉高,则可以用作 VDD。ADM1032 评估板使用 D4-D7。请注意,您可以从并行端口提取的电流量是有限的。还要注意,所有连接的线路都必须处于相同的状态,否则您将使输出缓冲器短路!因此,在加载 i2c-parport 模块后插入 I2C 适配器可能是一个很好的安全措施,因为初始化之前的数据线状态可能是未知的。

  • 这是 5V!

  • 显然,您无法读取 SCL(因此它不是真正符合标准的)。很容易添加,只需复制 SDA 部分并使用另一个输入引脚。这将给出(ELV 兼容的引脚排列)

    Device                                                      PC
    Side          ______________________________Vdd (+)         Side
                   |    |            |    |
                  ---  ---          ---  ---
                  | |  | |          | |  | |
                  |R|  |R|          |R|  |R|
                  | |  | |          | |  | |
                  ---  ---          ---  ---
                   |    |            |    |
                   |    |      |\    |    |
    SCL  ----------x--------x--| o---x------------------------  pin 15
                        |   |  |/         |
                        |   |             |
                        |   |   /|        |
                        |   ---o |-------------x--------------  pin 2
                        |       \|        |    |
                        |                 |    |
                        |                 |    |
                        |      |\         |    |
    SDA  ---------------x---x--| o--------x-------------------  pin 10
                            |  |/              |
                            |                  |
                            |   /|             |
                            ---o |------------------x---------  pin 3
                                \|             |    |
                                               |    |
                                              ---  ---
                                              | |  | |
                                              |R|  |R|
                                              | |  | |
                                              ---  ---
                                               |    |
                                              ###  ###
                                              GND  GND
    

如果可能,您应该使用与现有适配器相同的引脚配置,这样您甚至不必更改代码。

相似(但不同)的驱动程序

此驱动程序与 i2c 包中的 i2c-pport 驱动程序不同。i2c-pport 驱动程序利用现代并行端口功能,因此您不需要额外的电子元件。但是,它还有其他限制,并且尚未移植到 Linux 2.6(尚未)。

此驱动程序也与 lm_sensors 包中的 i2c-pcf-epp 驱动程序不同。i2c-pcf-epp 驱动程序不直接将并行端口用作 I2C 总线。相反,它使用它来控制外部 I2C 总线主控器。该驱动程序也尚未移植到 Linux 2.6(尚未)。

Velleman 适配器的旧文档

有用的链接

该项目导致了 Velleman K8000 和 K8005 的新库

LIBK8000 v1.99.1 和 LIBK8005 v0.21

使用这些库,您可以使用原始 Velleman 软件中的简单命令(如 SetIOchannel、ReadADchannel、SendStepCCWFull 等),使用 /dev/velleman 来控制 K8000 接口卡和 K8005 步进电机卡。

One For All JP1 并行端口适配器

JP1 项目围绕着一组遥控器展开,这些遥控器通过电池仓中的 6 针跳线暴露其内部配置 EEPROM 所在的 I2C 总线。更多详细信息请访问

http://www.hifi-remote.com/jp1/

简单的并行端口硬件的详细信息可以在以下位置找到

http://www.hifi-remote.com/jp1/hardware.shtml