内核驱动 pcf8591¶
支持的芯片
Philips/NXP PCF8591
前缀:‘pcf8591’
扫描地址:无
数据手册:可在 NXP 网站上公开获取
- 作者
Aurelien Jarno <aurelien@aurel32.net>
由 Jan M. Sendler <sendler@sendler.de> 做出宝贵贡献,
Jean Delvare <jdelvare@suse.de>
描述¶
PCF8591 是由 Philips Semiconductors(现为 NXP)生产的用于 I2C 总线的 8 位 A/D 和 D/A 转换器(4 个模拟输入和 1 个模拟输出)。它旨在为多达 4 个独立设备提供字节 I2C 接口。
PCF8591 具有 4 个模拟输入,可编程为单端或差分输入
- 模式 0四个单端输入
引脚 AIN0 到 AIN3 是通道 0 到 3 的单端输入
- 模式 1三个差分输入
引脚 AIN3 是共用负差分输入,引脚 AIN0 到 AIN2 是通道 0 到 2 的正差分输入
- 模式 2单端和差分混合
引脚 AIN0 和 AIN1 是通道 0 和 1 的单端输入,引脚 AIN2 是通道 3 的正差分输入,引脚 AIN3 是通道 3 的负差分输入
- 模式 3两个差分输入
引脚 AIN0 是通道 0 的正差分输入,引脚 AIN1 是通道 0 的负差分输入,引脚 AIN2 是通道 1 的正差分输入,引脚 AIN3 是通道 1 的负差分输入
详细信息请参阅数据手册。
模块参数¶
input_mode int
模拟输入模式
0 = 四个单端输入
1 = 三个差分输入
2 = 单端和差分混合
3 = 两个差分输入
通过 /sys 接口访问 PCF8591¶
PCF8591 显然无法被检测到!因此驱动不会尝试检测。您必须通过平台数据或使用 sysfs 接口,在相关地址(范围 [0x48..0x4f] 内)显式实例化设备。详细信息请参阅如何实例化 I2C 设备。
为每个实例化的 PCF8591 创建目录
- /sys/bus/i2c/devices/<0>-<1>/
其中 <0> 是芯片连接的总线(例如 i2c-0),<1> 是芯片地址([48..4f])
在这些目录中,有以下文件
in0_input, in1_input, in2_input, in3_input, out0_enable, out0_output, name
Name 包含芯片名称。
in0_input、in1_input、in2_input 和 in3_input 文件是只读 (RO) 的。读取会给出相应通道的值。根据当前的模拟输入配置,文件 in2_input 和 in3_input 可能不存在。单端输入的值范围是 0 到 255,差分输入的值范围是 -128 到 +127(8 位 ADC)。
out0_enable 文件是读写 (RW) 的。读取时,模拟输出启用为“1”,禁用为“0”。写入时,相应地接受“0”和“1”。
out0_output 文件是读写 (RW) 的。写入 0 到 255 之间的数字(8 位 DAC),将该值发送到数模转换器。请注意,只有当 aout0_enable 等于 1 时,AOUT 引脚上才会出现电压。读取返回最后写入的值。