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:ADS1191读取 ADC

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/884846/ads1191-ads1191-read-adc

器件型号:ADS1191

你(们)好

有关 ADS1191的更多信息。 我有疑问。

如果在未连接 IN1P、IN1N 时读取 ADC 值,则值是否为0x8000?

我得到了正确的 ID 寄存器值。 因此、我认为运行传感器不是问题。

但读取 ADC 值很奇怪。

下面是配置代码  

//加电

NRF_GPIO_cfg_output (RESET_PIN);
nrf_gpio_cfg_output (start_PIN);
NRF_GPIO_cfg_output (CLKSEL);

NRF_GPIO_PIN_CLEAR (RESET_PIN);
NRF_GPIO_PIN_CLEAR (START_PIN);
NRF_GPIO_PIN_CLEAR (CLKSEL);

NRF_GPIO_PIN_SET (CLKSEL);
NRF_GPIO_PIN_SET (RESET_PIN);

NRF_DELAY_ms (20);

NRF_GPIO_PIN_SET (RESET_PIN);
NRF_DELAY_ms (1);
NRF_GPIO_PIN_CLEAR (RESET_PIN);
NRF_DELAY_ms (1);
NRF_GPIO_PIN_SET (RESET_PIN);
NRF_DELAY_ms (1);

NRF_GPIO_PIN_SET (CLKSEL);
NRF_DELAY_ms (20);

NRF_GPIO_PIN_SET (RESET_PIN);
NRF_DELAY_ms (1000);

NRF_GPIO_PIN_SET (RESET_PIN);
NRF_DELAY_ms (1);
NRF_GPIO_PIN_CLEAR (RESET_PIN);
NRF_DELAY_ms (1);
NRF_GPIO_PIN_SET (RESET_PIN);
NRF_DELAY_ms (1);

// wirte reg

//写入配置1
nrf_log_info ("write config1");

WRITE_REG_COMMAND (TX_BUFFER、CONFIG1、0x02);// b0000 0010 500SPS

//写入 CONFIG2
nrf_log_info ("写入 CONFIG2");

WRITE_REG_COMMAND (TX_BUFFER、CONFIG2、0xC0);// B1010 0000


//写入 LOFF
nrf_log_info ("写入 LOFF");

WRITE_REG_COMMAND (TX_BUFFER、LOFF、0x10);// B0001 0000

//写入 CH1SET
nrf_log_info ("写入 CH1SET");

WRITE_REG_COMMAND (TX_BUFFER、CH1SET、0x00);// b0000 0000

//写入 CH2SET
nrf_log_info ("写入 CH2SET");

WRITE_REG_COMMAND (TX_BUFFER、CH2SET、0x00);// b0000 0000

//写入 RLD_SENS
nrf_log_info ("写入 RLD_SENS");

WRITE_REG_COMMAND (TX_BUFFER、RLD_SENS、0x00);// b0000 0000

//写入 LOFF_SENS
nrf_log_info ("写入 LOFF_SENS");

WRITE_REG_COMMAND (TX_BUFFER、LOFF_SENS、0x00);// b0000 0000

//写入 LOFF_STAT
nrf_log_info ("写入 LOFF_STAT");

WRITE_REG_COMMAND (TX_BUFFER、LOFF_STAT、0x00);// b0000 0000

//写入 MIPSC1
nrf_log_info ("写入 MIPSC1");

WRITE_REG_COMMAND (TX_BUFFER、MIPSC1、0x02);// b0000 0010

//写入 MIPSC2
nrf_log_info ("写入 MIPSC2");

WRITE_REG_COMMAND (TX_BUFFER、MIPSC2、0x00);// b0000 0000

//写入 GPIO
nrf_log_info ("写入 GPIO");

WRITE_REG_COMMAND (TX_BUFFER、GPIO、0x0C);// b0000 1100

//更改 RDATAC 模式

WRITE_COMMAND (TX_BUFFER、START);

WRITE_COMMAND (TX_BUFFER、RDATAC);

//开始读取数据

WRITE_COMMAND (TX_BUFFER、RDATAC);

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

    您好 Ben、

    我们有一个很好的常见问题解答帖子、可帮助进行 SPI 通信。 请参阅位于以下 位置的 BIOS 常见问题解答:https://e2e.ti.com/support/data-converters/f/73/p/772058/2855202

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

    您好 Ben、

    0x8000是表示负满量程的十六进制值。 由于您没有将输入电压连接到 CH1输入、因此这些引脚处于悬空状态、其电压不确定。 它们可能会上拉或下拉至模拟电源并使 PGA 的输出饱和。

    请连接已知的输入信号、并参阅数据表的数据格式部分以了解输出代码与输入信号的关系。

    此致、