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.

[参考译文] ADS1230偶尔会将 DOUT 拉至高电平并使 DOUT 保持高电平、从而导致读取所有二进制1并且降低精度。

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1389090/ads1230-occasionally-pulling-and-keeping-dout-high-leading-to-all-binary-1s-being-read-and-low-accuracy

器件型号:ADS1230
主题中讨论的其他器件: ADS1232REFTPS7A20

工具与软件:

我正在使用数据表中提供的参考原理图中的 ADS1230、该原理图连接到轴上的一个电桥以测量扭矩。 它连接至 Nucleo-G431KB、在该应用中只需通过位 扑交换即可进行通信。

接着发送一个额外的时钟脉冲、在读取20位时将 DOUT 拉至高电平、从而确保数据就绪。

Int adcRead (){

INT I = 19;

int32_t tempTorque = 0;

uint8_t bit_i = 0;

while (i >= 0){

HAL_GPIO_WritePin (GPIOB、GPIO_PIN_0、GPIO_PIN_SET);

HAL_DELAY (1);

Bit_I =(int) HAL_GPIO_ReadPin (GPIOA、GPIO_PIN_7);

tempTorque = tempTorque |(bit_i << i);

HAL_GPIO_WritePin (GPIOB、GPIO_PIN_0、GPIO_PIN_RESET);

HAL_DELAY (1);

I --;

}

IF (tempTorque & 0x00080000){

tempTorque = tempTorque - 0x00100000;

}

HAL_GPIO_WritePin (GPIOB、GPIO_PIN_0、GPIO_PIN_SET);

HAL_DELAY (1);

HAL_GPIO_WritePin (GPIOB、GPIO_PIN_0、GPIO_PIN_RESET);

返回 tempTorque;

}

Occasionally, this leads to the DOUT pin being pulled high by the ADC after the first clock pulse

to read, and remaining high for ~500ms, and this is read by both the microcontroller and verified

on an oscilloscope. The clock pulses have been verified + counted on the oscilloscope, and as expected we

get 20 bits of data and the last write leads to DOUT being pulled high until it is ready during a normal read.

We run the calibration routine on startup, sending 26 clock pulses to the chip, though even with this we still

get the erroneous+inaccurate reads, and even during normal reads that we have ~9-10 noisy bits, even with a large

bulk capacitance of 33uf over the 3.3V line. We are not using a proper voltage reference, and instead

the 3.3V line from the microcontroller, but this provided us no serious issues with the HX711, and measurements

with an oscilloscope show that we should be getting greater accuracy than we are. We also note during long periods of no

reads that the ADC occasionally pulls DOUT high for seemingly no reason.

How can we prevent these erroneous reads, and reduce the noisy bits? The ADS1230 is in 10SPS mode, running at 3.3V

with a 1000 ohm bridge with sensitivity coefficient 2, so we aren't fully taking advantage of the range of the amplifier,

but we still do not expect noise this significant.

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

    您好、Thomas:

    为该器件提供支持的工程师本周正值度假、感谢您的耐心等待、敬请期待下周的回复。

    BR、

    戴尔

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

    只要注意、DOUT 长时间保持高电平的问题已经得到解决、我们认为这是由于移位寄存器在读取过程中进行了更新。 将时钟周期降低到10us 可解决此问题、但我们仍然存在非常明显的噪声问题、即使软件平均计算50个样本也是如此。 我们在示波器和微控制器上只观察到4个无噪声位、并观察基准电压、我们可以看到噪声的主要分量为15MHz +其谐波。 该波函数本身趋向于每~5us 在50MHz (3.3V 顶部)附近振铃一次、P-P 电压大约为150mV。 这绝不是太好、因此如果这是问题、我们将介绍电压基准。

    需要注意的是、我们使用的是两个单独的两元件应变仪、它们不是完全匹配的。 因此、我们有大约-47000的相当恒定偏移(直接从二进制转换、我们不直接使用电压、而只是校准扭矩)

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

    您好 Thomas:

    您能否发送一张显示基准和模拟输入输入输入连接的原理图图片?  一般来说、如果您使用电缆连接外部传感器、则需要在 ADS1230的基准输入引脚和模拟输入引脚上进行额外的滤波。

    ADS1232REF 板具有与 ADS1230类似的输入级和参考级、如果您的板上还没有原理图、则可以将其用作额外滤波的指南。

    https://www.ti.com/lit/ug/sbau120b/sbau120b.pdf

    如果噪声来自电源、一个具有高 PSRR 的良好 LDO (如 TPS7A20)也可能会有所帮助。

    此外、作为快速检查、请断开外部传感器并在1/2 Vs 处将输入短接在一起。  ADS1232REF 板使用20k 电阻分压器来创建中点电源。  然后验证该配置中的噪声性能。

    此致、
    Keith Nicholas
    精密 ADC 应用