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.

[参考译文] ADS8681:连接 ADS8681与 PIC32

Guru**** 2392605 points
Other Parts Discussed in Thread: ADS8681

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/698413/ads8681-interfacing-ads8681-with-pic32

器件型号:ADS8681

您好!

我将 ADS8681与 PIC32MX 处理器连接、但它无法正常工作。

READ_HWORD 未返回正确的寄存器值。 它从未奏效。 我得到32位读数。 根据数据表、我应该得到16位读数、然后是0。  

甚至 WRITE_HWORD 也不起作用。 它好像是一次工作。  我将 RANGE_SEL[3:0]设置为1001b (2.5*VREF)一次。

当我发送全0时、我得到 ADC 转换值作为响应、该值根据我对 RANGE_SEL[3:0]位所做的选择工作。  

但现在、即使是突然、尽管我提供了1.6V 的输入模拟电压、但我得到的是6.2v (156.25 * 16位读数)。

请帮助我解决问题。

我要附加代码文件。 如果我缺少 anything.e2e.ti.com/.../ads8681.c、请检查并告知我

谢谢、

Vikram

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

    Srinivasarao 您好、

    感谢您在 TI E2E 论坛上提出问题。

    运行这些命令后:

    -> SPI_WRITE_WORD_reg (RANGE_SEL_REG、RANGE_2_5_VREF|INTREF_EN)

    --> DWORD 数据= WRITE_HWORD (reg,val);

    您能否检查"数据"是否 为<11010_000><0001_0100><000000000000><00001001>? 您还可以使用示波器通过 SCLK 和/CS 一起捕获 SDI 到 ADC 上的时序吗?

    在这两条命令之后、使用您的寄存器读取指令检查该 range_SEL_REG 寄存器的内容、这将让您知道您的编程是否成功:

    ->vSPIONSave = SPI_READ_WORD_reg (RANGE_SEL_REG)

    -->dword dwAddress = Read_HWORD (reg);

    请检查"dwAddress"是否为<11001_000><0001_0100><000000000000><0000000000000000>? 您还可以通过使用示波器捕获 SDI 上的时序和 ADC 上的 SDO 吗? 请注意、如果在帧 F 中发出有效的 READ_HWORD 命令、则帧(F+1)的输出数据字包含16位寄存器数据、因此您将能够在下一个(F+1)帧中看到寄存器数据、并且需要多一个帧。

    此致

    戴尔

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

    您好 Dale、

    感谢您的回答。

    我检查了发送到 ADS8681的32位命令数据、根据数据表、该数据是正确的。

    请查找随附的字文档、其中包含 range_SEL 的写入和读取寄存器时序图的屏幕截图。

    如果有任何问题、请检查并告知我。

    e2e.ti.com/.../ADS8681.docx

    谢谢、

    Srinivas

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

    您好 Srinivas、

    我很快会回来的、谢谢。

    此致

    戴尔

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

    您好 Srinivas、

    您在 ADC 的 SDI 时序中的数据是正确的、您能告诉我在读取 RANGE_SEL_REG 寄存器后的下一帧中、您在 SDO 上获得了什么代码吗?

    您能告诉我您的1.6V 测试详细信息吗?

    • 在写入内部寄存器之前、1.6V 直流输入的转换代码(加电后的默认配置)
    • 在写入内部 RANGE_SEL_REG 寄存器后、1.6V 直流输入的转换代码(为 Range_SEL[3:0]选择2.5VxVref 范围和1001b)
    •  ADC 输入端是否有任何前端 RC 滤波器? 您的原理图将非常有用。

    谢谢。

    此致

    戴尔