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.

[参考译文] ADS8568:更高频率下的精度问题

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/925311/ads8568-accuracy-issue-for-higher-frequency

器件型号:ADS8568

您好!

  我正在 Verilog 中编写代码。 我检查了寄存器的读写和读回是否正确。

  首先、我曾为 ADC (串行时钟频率)提供200K 的时钟频率 、因此我将获得正确的值。

 

  当 我开始增加 串行时钟频率(@25MHz) 时、我无法获得准确的值。

注意: 在这里,当输入电压低于5V 时,我也会得到准确的值

   例如:如果 ADC 输入为9V,则 IN 输出为10V。 我是说显示的是1V 误差

并且在 CONFIG 寄存器中正确选择了范围(位24、23 为零)

您能不能建议我将其卡在哪里?

此致

Sujit Sadalagi

SLN 技术

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

    您好、Sujit、

    欢迎来到我们的论坛、感谢您的发帖。  

    当您增加串行时钟(SCLK)频率时、似乎存在明显的时序违例。 违反时序规格可能会导致您错过一个或多个最高有效位(MSB)、从而导致错误的数据。

    您是否仍然能够使用25MHz SCLK 读取寄存器数据? 或者您在读取转换数据和寄存器数据时遇到问题吗?

    此致、

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

    您好、 Ryan Andrews

    是的、我能够使用25MHz SCLK 读取寄存器数据。

    对于 SDI 和 SDO,我使用的是 SCLK 的 POedge。

    此致

    Sujit Sadalagi。

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

    您好、 Ryan Andrews  

            下面是 Verilog 代码。

            我是 Verilog 编码的初学者、 如果有任何错误、请告诉我。  

     //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    始终为@(POedge MHz_25_clk)
    开始
    案例(State_ADC)

    10 'd 0:开始

    ADC_HW_SW_SELECTION <= 1'B1;
    ADC_CONST_ST <= 1'b0;//CONVEST
    ADC_CS <= 1'B1;//芯片选择
    SPI6SCK <= 1'B1;//SCLK
    SPI6MOSI <= 1'b0;//mosi
    ADC_RESET <= 1'b0;//复位
    RESET_B <= 1'b0;//////////////////////////////////////////////////////// 不安装
    adc_config_reg <= 32'h80001FFF;//32'hC00023FF;

    State_ADC <= 10 'd1;
    结束

    10 'd1:开始////重置高电平低电平
    if (count_1 ==20 'd 3)
    开始
    COUNT_1 <= 20 'd 0;
    ADC_RESET <= 1'b0;
    State_ADC <= 10 'd 2;
    结束
    其他
    开始
    COUNT_1 <= COUNT_1 + 1'B1;
    ADC_RESET <= 1'B1;
    State_ADC <= 10 'd1;
    结束


    结束

    10 'd 2:开始
    if (count_2 =20 'd 50)
    开始
    COUNT_2 <= 20 'd 0;
    ADC_CONST_ST <= 1'b0;
    State_ADC <= 10 'd 3;
    结束
    其他
    开始
    COUNT_2 <= COUNT_2 + 1'B1;
    ADC_CONST_ST <= 1'B1;
    State_ADC <= 10 'd 2;
    结束

    结束


    10 'd 3:开始
    if (ADC_BSY =='b0)
    开始
    State_ADC <= 10 'd 4;
    结束

    其他
    开始
    State_ADC <= 10 'd 3;
    结束

    结束


    10 'd 4:开始
    if (count_3 =20 'd 3)
    开始
    COUNT_3 <= 20 'd 0;
    ADC_CS <= 1'b0;
    State_ADC <= 10 'd 5;
    结束

    其他
    开始
    COUNT_3 <= COUNT_3 + 1'B1;
    ADC_CS <= 1'B1;
    State_ADC <= 10 'd 4;
    结束
    结束

    10 'd 5:开始
    State_ADC <= 10 'd 6;

    结束

    10 'd 6:开始
    SPI6SCK <= 1'B1;
    SPI6MOSI <= ADC_CONFIG_REG[31];
    State_ADC <= 10 'd 7;
    结束


    10 'd 7:开始
    SPI6SCK <= 1'b0;

    if (count_4 =20 'd 31)
    开始
    State_ADC <= 10 'd 8;
    count_4 <= 10 'd 0;
    结束
    其他
    开始
    count_4 <= count_4 + 1'b1;
    State_ADC <= 12 'd 6;
    ADC_CONFIG_REG <= ADC_CONFIG_REG << 1;
    结束

    结束

    10 'd 8:开始

    if (count_5 =20 'd 2)
    开始
    count_5 <= 10 'd 0;
    State_ADC <= 10 'd 9;
    结束
    其他
    开始
    SPI6MOSI <= 1'b0;//将其设为零以进行转换和在芯片范围中进行调试
    COUNT_5 <= COUNT_5 + 1'B1;
    SPI6SCK <= 1'B1;
    ADC_CS <= 1'B1;
    State_ADC <= 10 'd 8;

    结束
    结束

    10 'd 9:开始
    ADC_CONST_ST <= 1'B1;
    State_ADC <= 10 'd 10;
    结束


    10 'd 10:开始
    if (count_6 =20 'd 50)
    开始
    COUNT_6 <= 20 'd 0;
    ADC_CONST_ST <= 1'b0;
    State_ADC <= 10 'd 11;
    结束
    其他
    开始
    COUNT_6 <= COUNT_6 + 1'B1;
    ADC_CONST_ST <= 1'B1;
    State_ADC <= 10 'd 10;
    结束

    结束

    10 'd 11:开始
    if (ADC_BSY =='b0)
    开始
    State_ADC <= 10 'd 12;
    结束

    其他
    开始
    State_ADC <= 10 'd 11;
    结束

    结束

    10 'd 12:开始
    if (count_7 =20 'd 3)
    开始
    COUNT_7 <= 20 'd 0;
    ADC_CS <= 1'b0;
    State_ADC <= 10 'd 13;
    结束

    其他
    开始
    COUNT_7 <= COUNT_7 + 1'B1;
    ADC_CS <= 1'B1;
    State_ADC <= 10 'd 12;
    结束

    结束

    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    10 'd 13:开始
    SPI6SCK <= 1'B1;
    SPI6MISO_register_1[0]<= SPI6MISO;
    State_ADC <= 10 'd 14;
    结束


    10 'd 14:开始
    SPI6SCK <= 1'b0;

    if (count_8 =20 'd 31)//count_8 =20 'd 127
    开始
    State_ADC <= 10 'd 15;
    SPI6MISO_register <= SPI6MISO_register_1;//将一个寄存器传输到另一个寄存器
    //阅读此芯片范围
    COUNT_8 <= 10 'd 0;
    结束
    其他
    开始
    COUNT_8 <= COUNT_8 + 1'B1;
    State_ADC <= 12 'd 13;
    SPI6MISO_REGISTER_1 <= SPI6MISO_REGISTER_1 << 1;
    结束

    结束

    10 'd 15:开始

    if (count_9 =20 'd 2)
    开始
    COUNT_9 <= 10 'd 0;
    State_ADC <= 10 'd 16;
    结束
    其他
    开始
    COUNT_9 <= COUNT_9 + 1'B1;
    SPI6SCK <= 1'B1;
    ADC_CS <= 1'B1;
    State_ADC <= 10 'd 15;
    结束
    结束

    10 'd 16:开始
    ADC_CONST_ST <= 1'B1;
    //State_ADC <= 10 'd 17;
    State_ADC <= 10 'd 0;
    结束


    端箱
    结束

    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    谢谢你  

    Sujit Sadalagi

    SLN 技术 PVT 限制

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

    您好、 Ryan Andrews  

            请尽快回复。  

    谢谢你  

    Sujit Sadalagi

    SLN 技术 PVT 限制