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.

[参考译文] LM98722:从 ADC 读取的随机值

Guru**** 2562120 points
Other Parts Discussed in Thread: LM98722

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1008627/lm98722-random-values-read-from-adc

器件型号:LM98722

您好!

我将 LM98722与 CIS 传感器搭配使用、后者会对 AFE 生成的信号做出相应反应、但 ADC 的输出似乎只是随机噪声。 当我激活输出上的测试模式时,我得到了一个正确 的值 ,所以我知道 2*8位的读数是可以的。

CIS 传感器的输出直接连接到 OSR 输入(模式1)、其值介于 Vref (=0.9V)和 Vref+1.2V 之间。 VREF 还连接到 VCLP 以用作黑色 电平 基准。 我尝试将 OSR 连接到 Vref、但我仍然得到随机值、而不是0或接近的值。 与中间电压相同。  

以下是我的配置:  

	afe_write(0x1F,0x00); // Page 0 
    
    afe_write(0x00,0x26); // Registers unlocked (state machine stopped)
    wait(500);
    afe_write(0x01,0x48);//Software reset : state machine + registers
    wait(500);
  
    afe_write(0x1F,0x00); // Page 0 
    afe_write(0x00,0x26); //
    afe_write(0x02,0x44); //
    afe_write(0x03,0x80); // 
    afe_write(0x04,0x0F); // 
    afe_write(0x05,0xE0); // .
    //afe_write(0x06,0x07);//test pattern
  
    afe_write(0x1F,0x02); // Page 2
    afe_write(0x00,0x04);
    afe_write(0x01,0x01);//calibration active for 1 line 0xFF == infinite calibration
    afe_write(0x02,0x0D);
    afe_write(0x06,0x00);
    afe_write(0x07,0x00);
    afe_write(0x08,0x04);
    afe_write(0x09,0x00);
    afe_write(0x10,0x08);//mode CISa
    afe_write(0x0A,0x7C);
    afe_write(0x0B,0x28);
    afe_write(0x0C,0xFC);
    afe_write(0x0D,0x28);//line length MSB
    afe_write(0x0E,0xFF);//line length LSB
    afe_write(0x1B,0x01);//enable clock multiplication
    afe_write(0x1C,0x00);//
    afe_write(0x1D,0x03);//
  
  
    afe_write(0x1F,0x03); // Page 3
    afe_write(0x00,0x14);
  
    afe_write(0x1F,0x04); // Page 4
    afe_write(0x00,0x01);
  
    afe_write(0x1F,0x05); // Page 5
    afe_write(0x00,0x08);
  
    afe_write(0x1F,0x06); // Page 6
    afe_write(0x0C,0x00);
    afe_write(0x0D,0x00);
    afe_write(0x0E,0x00);
    afe_write(0x0F,0x1F);
    afe_write(0x10,0xFF);
    afe_write(0x11,0xFF);
  
    afe_write(0x1F,0x07); // Page 7
    afe_write(0x0C,0xFF);
  
    afe_write(0x1F,0x08); // Page 8
    afe_write(0x02,0x40);
    afe_write(0x04,0x04);//SH2 for CLKOUT
    afe_write(0x05,0x04);
    afe_write(0x08,0xA2);
  
    afe_write(0x1F,0x00); // Page 0
    
    while(!(rafe_read(0)&0x80)) {
      //PLL not locked
      wait(100);
      read_val = afe_read(0);
    }
    afe_write(0x00,0x27);//master
    //afe_write(0x00,0x25);//slave

您是否看到我的问题有任何明显的原因?

谢谢你。

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

    您好!

    感谢您的提问。 让我在6月11日之前回顾一下这些内容并向您提供反馈。

    此致

    Shinya

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

    您好!

    根据您的描述、测试模式起作用、但使用模拟输入观察到随机值/噪声。 我建议检查关键模拟信号。 OSR、VREFT、VREFB、VCLP、VA、VD。 它们应该是稳定的直流电压。 最好禁用自动校准相关功能、如第38页。

    此致

    Shinya

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

    您好!

    感谢您的回答、我将尽快检查该问题、我将告诉您。

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

    您好!  

    谢谢、

    此致

    Shinya

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

    您好!

    很抱歉耽误你的时间...

    我已经检查了所有模拟信号、它们都是稳定的。

    关于自动校准功能、根据我的理解、在我设置正确的位或在 CAL 输入上施加逻辑高电平之前、不会执行校准序列。 所以我可以将任何值放入第2页的校准寄存器中,直到激活校准序列,它才会影响结果,对吧?  

    顺便说一下,我发现了另一个问题,也许它是相关的? 我将使用具有2MHz 晶体的片上晶体驱动器、我的像素频率(PHIC1输出)和 ADC 频率(SH2/CLKOUT 输出)均为5、556MHz。 使用模式1时、PIXCLK = ADCCLK、并且不执行时钟乘法(之前代码摘录中的第30-32行被注释掉)。 晶振通过18pF 电容器接地连接到 INCLK+和 INCLK-、如 数据表所示。  

    有什么想法吗? 这是否与我的 ADC 问题有关?

    此致、

    梅赫迪。

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

    您好!

    感谢您的发帖。 让我在7月2日之前回顾一下这一点并向您提供反馈。

    此致

    Shinya

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

    您好!

    感谢您分享您的更新。

    根据数据表7.4.12.3、第0页的 CAL 寄存器位、寄存器0x01h、第5位或 CAL 输入引脚将开始校准过程。 在开始之前、我还认为可以对第2页上的寄存器进行编程。

    我不知道您的 ADC 问题和时钟乘法设置。

    此致

    Shinya

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

    您好!

    感谢您的回答。

    我尝试直接将时钟信号馈送到驱动器中、而不是使用晶体、生成的输出信号要干净得多、但它不能解决我的 ADC 问题...

    我可能是一个硬件问题、我将尝试测试另一个驱动程序。

    感谢你的帮助、

    此致、

    梅赫迪。

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

    您好!

    感谢您的更新。 让我关闭这个主题。  

    此致

    Shinya