This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] ADS1191:读取 ADC 值时出错

Guru**** 2390735 points
Other Parts Discussed in Thread: ADS1191
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/832819/ads1191-error-while-reading-adc-value

器件型号:ADS1191

e2e.ti.com/.../ads1191.c

在我们的定制板(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
-注册读取...

>>> ads1191检测成功<<<<<<

调用 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,请仔细检查这些驱动程序和错误日志,如果需要任何软件和硬件更改,请向我提出建议。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我们的 ADS1191产品专家将于下周返回办公室。  我们不为这些产品提供直接的驱动程序支持、但他们可以查看您提供的内容并提供建议。   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    通常、错误的器件 ID 是由不正确的加电例程引起的。 我建议查看我签名中的 BIOS 常见问题解答、这有助于对其进行调试。