工具/软件:Linux
尊敬的 TI:
我们正在为其中一个项目使用 ADS7841Q 开发 i.MX8QXP。 我们将 ADS7841Q 连接到处理器的 SPI 总线之一。 在这里、我们找不到 ADS7841的驱动程序。 我们配置了 spidev 器件、如下所示。
lpspi3{(&P)
#address-cells =<1>;
#size-cells =<0>;
FSL、SPI-num-chipsects=<1>;
pinctrl-names ="default";
pinctrl-0 =<&pinctrl_spipl3 &pinctrl_spipl3_cs>;
CS-GPIO =<&GPIO0 16 GPIO_ACTIVE_LOW>;
状态="正常";
spidev@0x00{
兼容="spidev";
SPI-max-frequency =<20000000>;
reg =<0>;
};
};
使用 spidevtest able 发送 SPI 数据包、如0x9F、0x00 (8位模式)。 但是、从 SPI 读取数据时、我们得到的是 CH0电压的一半。
为什么 ADC 的工作方式是这样的。?
这里使用的是静态的
void adcout_process (int sampled_data 短整型)
{
浮点电压、Vref、adc_bit;
VREF = VREF_5V;
//ADC_BIT = ADC_12位;
ADC_BIT = 256;//8位模式
// adc_bit = 1024;//10位模式
printf ("adcout_process::原始数据0x%X\r\n"、sampled_data);
VOLT =((Vref/ADC_BIT)*(float)采样数据);
printf ("电压:%f\r\n"、伏特);
}
运行命令:./spidev_test -v -b 16 -O
输出:CH0中电压的一半
请帮助我们获得精确的电压。 我们将采集10个样本。
如果您共享 Linux 驱动程序和要使用的应用程序、将会大有帮助。
此致、
Ranjith Hebbar