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.

[参考译文] ADS131E04:内部振荡器不工作

Guru**** 2524460 points
Other Parts Discussed in Thread: ADS131E04, ADS131E08

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/908951/ads131e04-internal-oscillator-not-working

器件型号:ADS131E04
主题中讨论的其他器件: ADS131E08

您好!

我的 ADS131E04有问题。 器件上的内部振荡器不工作。 CLKSEL 引脚连接到3.3V、CLK 连接到 GND。 器件根本没有响应。 如果我使用来自其他一些 MCU 的外部2MHz 时钟、器件会响应。 在这种情况下、我能够写入和读取寄存器、但 ADC 值错误(使用 RDATA 0x12读取)。 如果我使用内部基准、原始 ADC 值大约为16777000、而如果我使用外部基准值、则只是随机数不断变化。  

我的启动顺序如下:

  • CLKSEL = 0 (外部时钟)
  • PWDN=RESET=1
  • 等待 VCAP
  • 发出复位脉冲
  • 配置寄存器:

masterBuffer.txBuffer[0]= 0x41;
masterBuffer.txBuffer[1]= 0x09;//写入10个寄存器
masterBuffer.txBuffer[2]= 0x96;// cfg 1.
masterBuffer.txBuffer[3]= 0xE0;// cfg 2.
masterBuffer.txBuffer[4]= 0xC0;// cfg 3 (内部基准)
masterBuffer.txBuffer[5]= 0x00;//故障
masterBuffer.txBuffer[6]= 0x10;// CH1
masterBuffer.txBuffer[7]= 0x10;// CH2
masterBuffer.txBuffer[8]= 0x10;// ch3
masterBuffer.txBuffer[9]= 0x10;// CH4
masterBuffer.txBuffer[10]= 0x87;// ch5未使用
masterBuffer.txBuffer[11]= 0x87;// Ch6未使用

masterBuffer.txBuffer[12]= 0x54;// GPIO  
masterBuffer.txBuffer[13]= 0x00;
masterBuffer.txBuffer[14]= 0xF0;

  • 发送 Start 命令(0x08)并将 START PIN 设置为1
  • 使用 RDATA 读取所有216位并解析数据:

//响应从 masterBuffer.rxBuffer[1]开始

uint32_t STS =((uint32_t) masterBuffer.rxBuffer[1]<< 16)|((uint32_t) masterBuffer.rxBuffer[2]<< 8)|((uint32_t) masterBuffer.rxBuffer[3]);
printf ("状态:%X\n"、STS);
int ch1 =(((uint32_t) masterBuffer.rxBuffer[4]<< 16)|((uint32_t) masterBuffer.rxBuffer[5]<< 8)|(((uint32_t) masterBuffer.rxBuffer[6]);
printf ("Ch1:%d\n"、CH1);

int ch2 =(((uint32_t) masterBuffer.rxBuffer[7]<< 16)|((uint32_t) masterBuffer.rxBuffer[8]<< 8)|((uint32_t) masterBuffer.rxBuffer[9]);
printf ("Ch2:%d\n"、CH2);

…………

如果我想使用内部时钟、在上面的序列中、我只将 CLKSEL 更改为1、之后器件无响应。 我是对还是错? 问题可能出在哪呢?

下面是原理图的一部分:

提前感谢您。

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

    Irvin、


    为了使其正常工作、您已对设置进行了一些更改。 但是、一次处理一件事情更简单。

    首先、是要使用内部振荡器、还是要继续使用外部时钟。 如果您想使用内部振荡器、我会首先从 CLK 线路断开所有连接、然后将 CLKSEL 设置为1。 当然、然后发送复位以确保一切正常。 然后只写入 CONFIG1寄存器并将 CLK_EN 位设置为1。 这应该将内部振荡器发送到 CLK 引脚。 这样、您可以直接使用示波器观察时钟。 如果您打算使用内部时钟、我会首先调试该时钟。

    至于您的其他意见:

    -如果您使用内部基准获得接近16777000的输出数据,则 ADC 数据的该值接近-1。 ADC 以二进制补码格式输出一个24位输出代码。 这在数据表的数据格式部分进行了说明、见第33页。 如果您的输入短路、ADC 可能只是具有负失调电压、您会得到一个很小的 ADC 负数。

    -如果您切换到外部基准,并且您获得了随机数,则可能未正确连接外部基准。 如果基准输入为浮动或0V、您可能会获得错误数据。

    无论如何、从内部振荡器问题开始、当您开始工作时、我们将继续讨论其他问题。


    吴约瑟

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

    正如您所说、我已经尝试了、但振荡器没有启动。 CLKSEL 设置为3.3V、CLK 已断开连接、无任何内容。 我甚至无法到达可以写入寄存器 CONFIG1以将 CLK_EN 位设置为1的部分。 我有一个 LED 连接到 GPIO、因此我可以查看寄存器是否被写入。 LED 保持熄灭。 如果我使用外部时钟、那么它工作正常。  

    除了将 CLKSEL 引脚设置为1和振荡器启动延迟之外、内部和外部时钟的启动过程是否不同?

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

    Irvin、

    内部或外部时钟的启动没有太大差异、通用过程基本上就是数据表(第50页)图53所示的流程图。  

    我对器件的连接有一个问题。 AVDD1和 AVSS1是如何连接的? 这些仍然需要电源、应分别连接到 AVDD 和 AVSS、且不应相对于电源浮动。 您能否将 AVDD1连接到5V、 将 AVSS1连接到 DGND? 我想知道该电源是否用于内部振荡器(以及其他器件)。

    吴约瑟

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

    这可能是个问题吗? 您可以在下图中看到它是如何连接的。 下周我可以解决这个问题、如果有任何变化、我会告诉您。  

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

    Irvin、


    是的、这肯定是一个问题。 这些输入需要电源、目前没有电源。 例如、该图像来自《ADS131E08EVM 用户指南》。 这是 ADS131E08电路原理图的一小部分。

    在这里、您可以看到 AVSS1连接到 AVSS、AVDD1连接到 AVDD。  

    吴约瑟

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

    您好!

    正如您所说、我更改了输入、现在一切都正常。  

    非常感谢 Joseph。

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

    Irvin、

    要完全清楚、将 AVDD1连接到 AVDD 并将 AVSS1连接到 AVSS 即可让振荡器启动? 当我在原理图中看到开路连接时、我认为这可能是个问题、但我想确保。

    吴约瑟

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

    是的、正确。 将 AVDD1连接到 AVDD、将 AVSS1连接到 AVSS 后、内部振荡器正在工作、因此不再需要外部振荡器。 在这个修复之前、我有一个奇怪的 ADC 值、所以我认为这个修复也解决了这个问题。 所有 ADC 值均正确。

    感谢您帮助我解决这个问题。