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.

[参考译文] DAC81416:有关&quot 的问题;写入操作错误检查循环"

Guru**** 2535150 points
Other Parts Discussed in Thread: DAC81416

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1021390/dac81416-question-about-write-operation-error-checking-cycle

器件型号:DAC81416

你好!
我在 DAC81416中使用 CRC-EN 特性。 串 行接口访问周期宽度为32位、我计算24位 SPI 数据的 CRC-8。
例如、我将0x0000数据写入0x06地址(计算出的 CRC-8-ATM = 0x7D):

之后、我有"写入操作错误检查周期":

我看到未检测到 CRC 错误、但 DAC81416在 SDO 引脚上为我提供了"错误" CRC = 0x3E。 将 SDO 数据(0x860000)的 CRC 校正为0x76。


但是、当我读取0x06地址(针对0x860000数据计算出的 CRC-8-ATM = 0x76)时:

之后、我有"Read operation error checking cycle":

我看到未检测到 CRC 错误、但 DAC81416在 SDO 引脚上为我提供了正确的 CRC = 0x76。
 当"写入操作错误检查周期"时、您能否对 SDO 数据注释"错误" CRC?

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

    您好!

    您如何读取/捕获写入周期的错误检查? 从第二幅图像中、SDO 引脚看起来在 R/W 位回显1。 如果您正在捕获写入周期的错误检查、则该位应为0。  

    最棒的

    Katlynne Jones

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

    是的、数据表告诉我 、如果要捕获写入周期的错误检查、RW 位应该为0。 但我看到、对于读取和写入错误校验周期、RW 位都为"1"。  
    对于写入和读取错误 检查周期、我将0x0000写入 NOP 寄存器、如第二幅和第四幅图像中所示。
    第一个和第二个映像是 顺序 SPI 访问。

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

    您好!

    我已经订购了 DAC81416EVM、因此我可以 尝试 读回错误检查周期以进行读写。 在我看来、您的方法是正确的、因此我不确定您为什么会在 SDO 引脚上收到错误的回波。 您还可以发送用于写入和读取的代码、以便我可以查看它吗?

    谢谢、

    Katlynne Jones

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

    感谢你的帮助! 遗憾 的是、我们使用的是定制板、因此无法从处理器直接通过 SPI 访问 DAC81416。 我们有 ARM axi bus->1st FPGA LVDS Serializer->2nd FPGA LVDS Deserialer->2nd FPGA SPI controller->DAC81416。 我认为我的代码对您用处不大。  但是 SPI 字呢:
    对于写操作、请使用 NEXT:
    第1个周期$(((((0x0)<<31)|(0x6<24)|(SpiWrData<0x0000)|0x7D)
    第二个周期("写入操作错误检查周期")$(((((0x0)<<31)|(0<24)|(0<8)))
    您可以在 第一幅和第二幅图像上看到第二幅 FPGA SPI 控制器->DAC81416 SPI 时序图。

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

    您好!

    这是 Anbu Mani,就像了解有关您的设置的更多信息一样。

    IAM 认为这可能是 SPI 时序问题、如设置/保持时间要求。 您分享的图片似乎是 FPGA 逻辑分析仪(例如、 芯片范围探针)。

    您是否检查了与您的设置是否一致的时序信息

    是否可以 共享示波器捕获、我们可以在其中看到任何时序违规都会导致此问题。

    同时、我将在我们的 EVM 中尝试它的行为方式。   

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

    大家好、我将使用示波器进行捕获、但我需要几天时间。

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

    好的。

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

    大家好、我的同事请我使用示波器捕获 SPI 数据(示波器只有2个通道)。 SCLK 周期为80ns。
    我将0x0000数据写入0x06地址(计算出的 CRC-8-ATM = 0x7D)。
    第1个 SPI 周期:
    绿色- SCLK。 黄色- SDI

    绿色- SCLK。 黄色- SDO

    绿色- SCLK。 黄色- CS

    之后、我有第二个周期("写入操作错误检查周期"):

    绿色- SCLK。 黄色- SDI

    绿色- SCLK。 黄色- SDO

    绿色- SCLK。 黄色- CS



    我们可以看到、示波器图片与我在第一篇文章中使用 FPGA 芯片范围时看到的图片相同。
    DAC81416为我提供"错误" CRC。
    但是 、如果我在 SDI 引脚上给出"错误 CRC"(0x7E)、那么 DAC81416 会在 SDO 引脚上设置 CRC-ERROR、但也会给出"错误"CRC:

    第1个周期:

    第2个周期("写入操作错误检查周期"):

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

    大家好 、请给我一些时间、我会再回来的。

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

    您好,  

    我在这里检查了 EVM、 得到了类似的结果。

    第一个周期

    第2个周期

    我将向您返回它发生的原因以及要为 CRC 执行的任何其他设置。

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

    好的、谢谢

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

    您好、Alexander、

    请分享您的 CRC 计算代码  

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

    您好、我使用此计算器:
    www.ghsi.de/.../index.php

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

    您好!  

    感谢您分享链接。  我已经向我们的设计团队转发了问题。 将尽快更新您。  

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

    好的、谢谢

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

    您好、Alexander、

    感谢您的耐心等待。

    我和我们的设计团队讨论了,基本上我们需要额外 的虚拟写入来获得正确的 CRC 值。

    1.在地址<06>处写入数据<0000>

    写入-> 06 00 00 7D //计算得出 的<06 00 00>的 CRC 7D

    写入-> 86 00 76  //为下一个周期设置读取 cmd, 为 <86 00 00>计算出 CRC 76

    正在写入-> 00 00 00 //  NOP 周期来读取数据 <00 00>的 CRC,在 SDO 线上的 CRC 为76  

    注意:此处的器件将根据 readcmd <86 00 00>= 76发送 CRC 值

    2.在地址<06>写入数据<333333>

    另一个不同数据的示例0x3333   

    WRITE、 06 33 33 22 // + CRC

    写入、86 00 76 // 设置读取 cmd

    写入、00 00 00 00 // 虚拟周期来读取 CRC 以获得 CRC=29、计算结果<86 33 33>

    希望这能解答您的疑问。  

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

    好的、我看到、谢谢

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

    谢谢

    现在我要关闭这个线程。 如果您有任何疑问、请创建新主题。