在我们的定制板(IMX6ULL)中,我们使用了 ads1191-16位 ADC SPI 接口,正在探测用于相同接口的驱动程序,但当我们读取 ADC 值时,即使在使用 IOCTL 调用从用户空间读取数据时提供(2V 至3.3V,用于 AIN (第4引脚)),输出也是零。
内核版本:4.1.1
DTS 声明是、
ecspi1{(&E)
状态="正常";
pinctrl-names ="default";
FSL、SPI-num-chipsects=<1>;
pinctrl-0 =<&ecspi1_PINs>;
ads1191dev@0{
状态="正常";
pinctrl-names ="default";
pinctrl-0 =<&printer2t_pins_default>;
兼容="ads1191_adc";
reg =<0>;
SPI-max-frequency =<512000>; /* 16M */
};
};
ecspi1_pins:ecspi1_pins_default{
FSL、引脚=<
MX6UL_PAD_CSI_DATA07__ECSPI1_MISO 0x70a1
MX6UL_PAD_CSI_DATA06__ECSPI1_MOSI 0x79
MX6UL_PAD_CSI_DATA04__ECSPI1_SCLK 0x70a1
>;
};
printer2t_pins_default:printer2t_pins{
FSL、引脚=<
MX6UL_PAD_CSI_DATA05__GPIO4_IO26 0x79
>;
};
插入驱动程序时低于 dmesg…
读取的值... FF 00 00 00
Msb2lsb…… FF 00 00 00
. INIT=255中的 Ads1191 ID
. Ads1191 ID = 255
读取的值... FF 00 00 00
Msb2lsb…… FF 00 00 00
. Ads1191 ID = 255
ADS1191 ID 不匹配/未检测到设备
ADS1191 LOFF = 255
-注册读取...
调用 ioctl 函数时低于 dmesg。。
在内核中除以0。
CPU:0 PID:815 Comm:test33V2未被污染4.1.15-2.0.1+gb63f3f5 #75
硬件名称:Freescale i.MX6 Ultralite (器件树)
[<80015d78>](elee_backtrace)从[<8001271c>](show_stack+0x10/0x14)
[<8001271c>](show_stack)从[<8082d360>](dump_stack+0x84/0xc4)
[[8082d360>](dump_stack)从[<802b1418>](Ldiv0+0x8/0x10)
[<802b1418>](Ldiv0)来自[<8063c12c>](ads1191_USER_ioctl+0x54/0x80)
[<8063c12c>](ads1191_user_ioctl)来自[<800fb204>](do_vfs_ioctl+0x3e8/0x608)
[<800fb204>](do_vfs_ioctl)、来自[<800fb458>](sys_ioctl+0x34/0x5c)
[<800fb458>](sys_ioctl)从[<8000f480>](ret_FAST_syscall+0x0/0x3c)
ioctl=0中的 adcval 值
我正在连接驱动程序 ads1191.c,请仔细检查这些驱动程序和错误日志,如果需要任何软件和硬件更改,请向我提出建议。