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.

[参考译文] ADS8688A:ADS8688A

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1072650/ads8688a-ads8688a

部件号:ADS8688A
线程中讨论的其它部件: ADS8688

嗨,Sylvain!  

我正在尝试在 Proteus 上模拟 ADS8688a ADC,该 ADC 使用您在 GitHub 上贡献的库使用 Arduino IDE 编码。 我谨随函附上所使用的原理图。  

我们正在尝试使用微控制器的外部时钟。 当执行 Github 示例文件夹中的代码 read_channel.ino 时,即使我们将3.7V 电源连接到 AIN0P 引脚,AIN0_GND 正在接地,我们仍将获得5.12V (0xFF)的全刻度读数。  

请帮助我们调试这种 asap 吗?  

此致,

阿莫格  

代码:

/* ADS8688库示例
*
* PIN 连接:
* GNF:GND
* REFIO:NC (当 REFSEL 连接到 GND 时输出4.096V 参考电压)
* REFSEL:GND (启用内部4.096V 参考)
* SDI:引脚11 / mega 引脚51
* RST/PD:+5V
*菊花:NC
* CS:引脚10 / mega 引脚10
* SCK:引脚13 / mega 引脚52
* SDO:引脚12 / mega 引脚50
*报警:常闭
* AVDD:+5V
* DVDD:+5V (数字逻辑电平)
*

#include <ADS888.h>

#include<SPI.h>

ADS8688 bank = ADS8688();//用 PIN 10实例化 ADS8688作为缺省 CS
void setup(){
bank.setChannelSPD(0b00000010);//启用通道0,关闭其它通道的电源
bank.setChannelRange(0,R6);//将所有信道范围设置为+-1.25*Vref
bank.autoRst();//重置自动序列
Serial.begin(115200);//开始串行通信
}
void loo(){
serial.print ("CH0");//打印标签
UINT16_t val = bank.noOp();//触发器采样
串行打印(气缸组.I2V (val,R1));//打印值(单位为伏特)
serial.println("V")//打印电压标签
延迟(500);//等待500毫秒
}

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

    您好, Amugh,

    感谢您的查询。 这是一个由 TI 支持的技术论坛, Sylvain 对 TI 不起作用。 因此,我将为您提供支持,因为您正在使用 TI 器件。

    1.您是否使用蓝色导线将 ADS8688器件直接连接到 Arduino UNO 以进行数字通信?

    2.您错过了以下硬件连接。 请检查 ADS8688数据表,您需要  

    • 使用去耦电容器来连接 REFCAP 和 REFIO 引脚,请参阅数据表中推荐的电容值。
    • 将 REFGND 短接至地面
    • 菊花链对地短路
    • 将/REFSEL 针脚短接至接地以选择内部参考
    • 向上拉/RST 引脚以进行正常操作
    • 确保 ADC 和 Arduino UNO 板之间有接地连接

    3.根据我的上述建议修改硬件后。 打开 ADC 电源,检查 REFIO 上的电压是否为4.096V。 然后再次尝试运行代码。

    此致,

    戴尔

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

    嘿,戴尔,  

    感谢您回答我的问题。  

    您无法找到所指的电线。 这些电线连接到 ADS8688,用于通过47欧姆电阻器从微控制器进行数字通信。 那回答了你的问题吗?  

    我已经对硬件进行了建议的更改。 由于 Proteus 上的 Uno 上没有 GND 引脚,我已将微控制器更改为 Arduino Mini,Arduino Mini 和 ADS8688之间现在有一个共同点。 但 REFIO 引脚上的电压仍为0V。  

    我已附上以下更新的示意图。 代码保持不变。

    请帮帮我解决这个问题。  

    此致,  

    阿莫格   

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

    您好, Amugh,

    您使用的是蓝色电线,而不是印刷电路板和连接器,这肯定会影响您将获得的性能。

    但是,感谢您提供更新的原理图

    1.您是否根据我的上述建议将/RST/PD 引脚2拉至 DVDD?  

    2.  您是否为 DVDD 引脚34提供了+3.3V 电源?

    3. 您是否为 AVDD 引脚9和30提供了+5V 电源?   

    一旦您解决了这些问题,我建议您使用示波器或逻辑分析器来检查 SPI 总线(/CS,SCLK,SDO 和 SDI)上的计时。

    此致,

    戴尔

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

    您好,戴尔,

    1. RST 已被拉至 DVDD  

    2. DVDD 为3.3V

    3. AVDD 为5V  

    但问题依然存在。  

    但我尝试连接 Proteus 上的逻辑分析仪。 我已附加逻辑分析器输出的快照。

    A0 -绿色- SCLK

    A1 -黄色-错误

    A2 -红色- MOSI

    A3 -蓝色- CS

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

    您好, Amugh,

    您能测量并告诉我 REFIO 针脚5上的电压吗?

    您必须选择通道才能开始转换和读取数据,请参阅 ADS8688数据表第45页的表6。 例如,向 ADC 发送11000000 00000000以选择通道0。 另请参阅图1中的计时。  由于第一个帧中的命令将在第二个帧中执行,因此在32个 SCLKs 内,您可以继续在每个帧中发送该命令,因此,需要租用两个数据帧。

    此致,

    戴尔

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

    您好, Amugh,

    大约一个月后,我没有听到你的回复。 我将关闭您的帖子。 如果您在使用此 ADC 时仍有问题,请在本论坛上开始新的主题,谢谢。

    此致,

    戴尔