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.

[参考译文] DAC3482:IOTEST 不工作

Guru**** 2526640 points
Other Parts Discussed in Thread: DAC3482, DAC3484

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/849088/dac3482-iotest-doesnt-work

器件型号:DAC3482
主题中讨论的其他器件: DAC3484

根据 CONFIG1位8中的 RESeverd 位、我会得到不同的行为。 但两者都不会给出预期的行为。  

如果我让 CONFIG_1中的保留位处于默认状态:  

IOTEST 正常工作、但将数据位 D12和 D3反相。 如果我将数据接口中的这些位反相、IOTEST 将提供无错误输出。

如果我按照 数据表中的建议清除 CONFIG_1 (bit8)中的保留位:

IOTEST 在 CONFIG_4中提供始终相同的错误模式。 我无法清除寄存器。  

奇怪的是、DAC 输出看起来正常 我可以按预期更改两个 DAC 通道的参数。  

这是什么?  

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

    您好、Enrico、

    我们可能需要进一步研究这一点。 这个 CONFIG1、位8基本上设置在 DAC3484和 DAC3482模式之间

    DAC3482支持更宽的总线、但我希望在 IO 上进行相同的接口测试

    在两种模式之间切换时、IO 测试的后端可能存在一些逻辑操作。 不过、我认为信号完整性检查(即 BER)不会产生影响(除了逻辑反转)。 似乎反转发生在4位的某个整数处。 (即 D3和 D12)。  

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

    感谢您的解释。 这有助于了解 DAC 中发生的情况。  

    同时、我得到了 IOTEST 工作。 但有时我仍然会遇到意外行为。

    我使用的 iotest 如下所示:

    ------ > 在 POS[0]处强制测试模式[0]中出现位错误

    CURRENT_pattern0 = 0x7a7a
    new_pattern0   = 0x7a7b
      执行 IOTEST
    PRE IOTEST 结果    = 0x0000          //结果正常。  
    POST ALARM_FIT_IOTEST = 1.            //报警正常。
    POST IOTEST 结果   = 0x0001          // test_result 正常。 因为我针对 0x7a7b 进行了测试

    测试 iotest_soll = iotest_ist => 0x0001 = 0x0001
    ------ > 清除 POS[0]处 testpattern [0]中的位错误

    CURRENT_pattern0 = 0x7a7b
    new_pattern0   = 0x7a7a
      执行 IOTEST

    IOTEST 前结果    = 0x0001         // test_result 正常。 因为这是旧的

    POST ALARM_FIT_IOTEST = 0           //如果结果为!= 0,则警报应为1
    POST IOTEST 结果   = 0x0080        // reslut 应该为 0x0000,因为我对 0x7a7a 进行了测试
     对于此错误模式、ALARM_FAR_IOTEST 标志似乎不明智。 原因可能是什么。  
    您好!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Enrico、

    我想确认您对要检查的其余模式的编程:

    请告知要检查的其他模式。

    要实际对位错误进行最佳检查、您应执行如下操作:

    Pattern0 = 0xAAAA

    Pattern1 = 0x5555

    Pattern2 = 0x5555

    Pattern3 = 0xAAAA

    注意:pattern0和 pattern2是不同的、以确保两个上升沿数据锁存被切换以检查错误。 使用0xAAAA 模式或 B1010……模式和0x5555或 b0101…… 用于检查不同的 LVDS 切换

    另外、请在读取之前先向警报写入0、以告知您是否已清除警报。 警报是粘滞的、误差可能是由 LVDS 波形切换或通过 SPI 切换图形编程造成的。  

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

    Enrico、

    我现在要关闭此主题。 您始终可以通过回复帖子来重新打开主题帖。 谢谢。

    -Kang

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

    谢谢您的回答。  

    我遵循了您的建议、并获得了以下结果。  

    在您的 r称赞 模式下、我只得到错误。 :

    ------ > test_pattern_DAC_[0]<=> test_pattern_FPGA[0] 0xaaaa <=> 0xaaaa
    ------ >test_pattern_DAC_[1] <=>test_pattern_FPGA[1] 0x5555 <=>0x5555
    ------ > test_pattern_DAC_[2]<=>test_pattern_FPGA[2] 0x5555 <=>0x5555
    ------ > test_pattern_DAC_[3]<=> test_pattern_FPGA[3] 0xaaaa <=> 0xaaaa
    ------ > test_pattern_DAC_[4]<=> test_pattern_FPGA[4] 0xaaaa <=> 0xaaaa
    ------ > test_pattern_DAC_[5]<=> test_pattern_FPGA[5] 0x5555 <=> 0x5555
    ------ > test_pattern_DAC_[6]<=> test_pattern_FPGA[6] 0x5555 <=> 0x5555
    ------ > test_pattern_DAC_[7]<=> test_pattern_FPGA[7] 0xaaaa <=> 0xaaaa
    ------ > FPAG 和 DAC 中的测试模式相等。 IOTEST 应提供有效结果。
      执行 IOTEST
    PRE ALARM_FIT_IOTEST = 0
    PRE IOTEST 结果  = 0xFFFF
    POST ALARM_FIT_IOTEST = 1.
    POST IOTEST 结果  = 0xFFFF
     
    如果我对彼此反相的图形进行编程、则测试将通过以下方式进行:
     
     
    ------ > test_pattern_DAC_[0]<=> test_pattern_FPGA[0] 0xaaaa <=> 0x5555
    ------ >test_pattern_DAC_[1] <=>test_pattern_FPGA[1] 0x5555 <=>0xaaaa
    ------ > test_pattern_DAC_[2]<=> test_pattern_FPGA[2] 0x5555 <=> 0xaaaa
    ------ > test_pattern_DAC_[3]<=> test_pattern_FPGA[3] 0xaaaa <=> 0x5555
    ------ > test_pattern_DAC_[4]<=> test_pattern_FPGA[4] 0xaaaa <=> 0x5555
    ------ > test_pattern_DAC_[5]<=> test_pattern_FPGA[5] 0x5555 <=> 0xaaaa
    ------ > test_pattern_DAC_[6]<=> test_pattern_FPGA[6] 0x5555 <=> 0xaaaa
    ------ > test_pattern_DAC_[7]<=> test_pattern_FPGA[7] 0xaaaa <=> 0x5555
    ------ >!!!  注意!!!! FPAG 和 DAC 中的测试模式不相等。
     
    ------ >  POS[0]处强制测试模式[0]中出现位错误
    CURRENT_pattern0 = 0xaaaa
    new_pattern0   = 0xaaab
      执行 IOTEST
    PRE ALARM_FIT_IOTEST = 0
    PRE IOTEST 结果   = 0x0000
    POST ALARM_FIT_IOTEST = 1.
    POST IOTEST 结果   = 0x0001
    断言 iotest_set = iotest_actual => 0x0001 = 0x0001
    ------ > 清除 POS[0]处 testpattern [0]中的位错误
    CURRENT_pattern0   = 0xaaab
    new_pattern0      = 0xaaaa
      执行 IOTEST
    PRE ALARM_FIT_IOTEST = 0
    IOTEST 前结果   = 0x0001
    POST ALARM_FIT_IOTEST = 0
    POST IOTEST 结果   = 0x0000
    检查 iotest_set 和 iotest_actual => 0x0000 <=>0x0000
     
     
    读取边沿是否有问题? 我可以在配置寄存器中更改它吗?  
     
    您好!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Enrico、

    为了帮助进行调试、请执行以下操作:

    1、在 LVDS DATACLK 上升沿使用一个高速探针。

    2.使用另一个高速探针探测 LVDS Data[0]。

    3.检查 DATACLK 和 LVDS 数据的建立/保持时间。 检查图形是否与已编程的 patter[0]匹配至 Patter[8]

    4.相应地调整 LVDS 数据通信的建立/保持时间以清除数据。 您还可以使用 DAC3484的数据通信或数据延迟功能来调整时序

    在特性描述期间以及发货前的最终测试中、此功能已通过这些类型的模式进行了验证。 根据我的经验、用户通常需要探测信号以获得从 FPGA/ASIC 传输的信号的实际传感、从而了解实际误差。