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.

[参考译文] DAC3174:DAC3174串行接口问题

Guru**** 2414030 points
Other Parts Discussed in Thread: DAC3174, DAC3171, SN74LVC1G32

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/614502/dac3174-dac3174-serial-interface-issue

部件号:DAC3174
主题中讨论的其他部件:LMK0.3328万,, DAC3171SN74LVC1G32SN74ALVTH1.6374万

您好,

我写config0切换到4线时遇到问题(SDO变为输出)。  我发现我必须 (有条件地见下文)在CONFIIG0寄存器转换到SDO之前反复写入(73次或更多次),直到那时输出所有'1'。  这对于两个设备来说是完全可重复的。

SDIO,SDENB,SCLK的我的信号 均显示在电气规格范围内,我已使用以下信号模式确保任何信号转换与另一信号转换之间至少有1US的余量:

1.SCLK =低,SDENB变为低。

2.10US延迟

3. SDIO设置为位值

4,1US延迟

5. SCLK设置为高

6.1US延迟

7. SCLK设置为低

8.1US延迟

9.循环到(3)以完成24位

10.10US延迟,SCLK低

11. SDENB很高

接地和去耦良好。 TX_ENABLE为高电平,RESETB在通电后清洁循环100mS且在上述过程中处于高电平,在DATA_CLK和DAC_CLK均为相同频率(由 LMK0.3328万驱动- DAC_CLK PECL源自SI5.3322万B通用PECL缓冲器)后。 时钟稳定且为62.5MHz。  睡眠处于浮动状态。 同步尚未切换。

在上述将0x0046ED写入 CONFIG0的过程之后-切换到4线,我没有读取上述 算法73个周期的正确值! 我没有计时,但当我只写一次时,在eclipse下断点代码(Cyclone Vgx中的NIOS2)(无优化,易失性I/O -一切看起来都正确无序等)。 在完成写入周期(使用范围进行验证)之后,然后步过读取-它始终只需写入一次即可正确读取。

在这两种情况下(反复运行和断点),我捕获存储范围上的写入周期 -它们是相同的。

当刚运行时-经过73次循环尝试(或仅通过调试器步骤尝试一次)-我终于读取了来自SDO的写入值。 我从系统中的两个DAC3174s中获得以下寄存器转储。 注-我从未看到它返回不一致,并且config1从未返回错误,即使它只写过一次。

CONFIIG0:46ed <<<<<<<<< 已编程
配置1:604e <<<<<<<<< 已编程
CONFIIG2:3fff <<默认值
CONFIIG3:0000 <<默认值
CONFIIG4:28a0 <<在IO测试模式比较期间失败的位
CONFIIG5:3f40 << 0011 1111 0100 0000 FIFO A和B指针冲突,dataclk_Gone
CONFIIG6:3100 <<0011 0001 0000 0000: 0011 0001温度传感器=49
CONFIIG7:FFFF <<默认值
CONFIIG8:6000 <<应默认为4000,-保留位中的一些非默认读数!!!
CONFIIG9:8000 <<默认值
CONFIIG10:f080 <<默认值
CONFIIG11:1111 <<默认值
CONFIIG12:3a7a <<默认值
CONFIIG13:36b6 <<默认值
CONFIIG14:2aea <<默认值
CONFIIG15:0545 <<默认值
CONFIIG16:0585 <<默认值
CONFIIG17:0949 <<默认值
CONFIIG18:1515 <<默认值
CONFIIG19:3aba <<默认值
CONFIIG20:0000 <<默认值
CONFIIG21:FFFF <<默认值
CONFIIG22:2d04 << RESET is not applicable (CONFIIG22:2d04 <<重置不适用)。 降低刀版ID的16位
CONFIIG23:a3c4 << RESET不适用。 刀版ID的中下16位
CONFIIG24:c9a8 << RESET不适用。 刀版ID的中上16位
CONFIIG25:87ff << RESET is not applicable.(配置25:87ff <<重置不适用。) 刀版ID的上6位
CONFIIG127: 0049 <<0000 0100 1001。 另一个数据表错误-查看默认与寄存器位
DAC3174 B寄存器
CONFIIG0:46ed <<<<<<<<< 已编程
配置1:604e <<<<<<<<< 已编程
CONFIIG2:3fff <<默认值
CONFIIG3:0000 <<默认值
CONFIIG4:2cff <<在IO测试模式比较过程中失败的位
CONFIIG5:3f00 << 0011 1111 0000 FIFO A和B指针冲突。 所有时钟都存在
CONFIIG6:3500 <<0011 0101 0000 0000: 11.0101万=温度传感器=53
CONFIIG7:FFFF <<默认值
CONFIIG8:6000 <<应默认为4000,-保留位中的一些非默认读数!!!
CONFIIG9:8000 <<默认值
CONFIIG10:f080 <<默认值
CONFIIG11:1111 <<默认值
CONFIIG12:3a7a <<默认值
CONFIIG13:36b6 <<默认值
CONFIIG14:2aea <<默认值
CONFIIG15:0545 <<默认值
CONFIIG16:0585 <<默认值
CONFIIG17:0949 <<默认值
CONFIIG18:1515 <<默认值
CONFIIG19:3aba <<默认值
CONFIIG20:0000 <<默认值
CONFIIG21:FFFF <<默认值
CONFIIG22:320b << RESET is not applicable.(CONFIIG22:320b <<重置不适用。 降低刀版ID的16位
CONFIIG23:a3c4 << RESET不适用。 刀版ID的中下16位
CONFIIG24:c9a8 << RESET不适用。 刀版ID的中上16位
CONFIIG25:91ff << RESET is not applicable.(配置25:91ff <<重置不适用。) 刀版ID的上6位
CONFIIG127: 0049 <<0000 0100 1001。 另一个数据表错误-查看默认与寄存器位

两个DAC都显示FIFO同步错误,其中一个可能显示时钟问题-尽管我 此时尚未向DAC发送同步脉冲,因此我预计会出现帧问题。 此外,功率顺序章节表明串行配置与这些时钟无关(请任何人确认-此数据表存在一些严重问题,我不信任它)

这种'廉价'特征的机制是什么-当进一步的写作和阅读似乎完全没有问题时。

感谢您提供任何帮助。

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

    我们正在研究这个问题。 我们会尽快作出回应。

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

    您好,

    我在EVM上没有看到SPI存在此类问题。   您的系统可以在插入断点的情况下工作,如果没有它就无法工作,这就意味着存在计时问题, 虽然您描述的系统运行速度慢到我 不会预料到会出现问题。  偶尔我会看到有人在获得上升边缘或下降边缘SPI时钟混淆时遇到问题, 但是,您的时间线描述的时钟周期是低-高-低,数据位一直驱动,我通常建议这样做,以使风险边缘/故障边缘问题万无一失。   低-高-低各为1us,SPI时钟周期仅为333KHz -应该不是问题。  

    TI Web上提供的SPI GUI (无论如何,对于EVM的单通道版本)最初不支持SPI回读功能。   我已经为EVM创建了自己的SPI GUI,它添加了回读功能,因此我可以使用此功能。  原始SPI GUI附带的配置文件将4线寄存器位设置为0,这没有关系,因为它不会进行回读,但当我将其与SPI GUI一起使用时,我必须在Config0中设置4线位。   每次写入后,我的SPI GUI都会立即回读寄存器,我总是看到正确回读该位的值。    我的SPI GUI是PC上的LabVIEW程序,它通过USB连接和带有8个通用IO引脚的USB芯片来控制SPI引脚,以驱动SPI,因此它不是一个非常快的接口,因为它受软件控制。  可能会有不同。  

    如果我理解您的描述-在完成整个写入Config0之后,将插入断点,然后再读取Config0。  这会在写入之后,但在读取之前插入大量时间。   这意味着写入本身即使在第一次写入Config0时也能很好地工作。  这意味着需要给设备一些时间才能使4线接口模式生效,尽管我没有看到任何需要。  (同样,可能是因为我的SPI GUI在软件驱动时相对较慢。)  但是,你说 在完成写入周期后要等待10个月,我本以为这已经足够了。   我刚刚和设计师谈过,DAC的设计中没有任何东西需要很长时间才能启用4线模式。   在启用Made之前,没有任何东西会接受该位的设置并执行任何操作。  它应该只是输出缓冲区的正常启用时间。

    在我的EVM上,我为CMOS IO使用1.8V电源,其中包括SDO引脚。  数据表允许IOVDD使用1.8V至3.3V电压。 您使用的是什么?    您在SPI访问的回读部分的时间安排是多少?  何时锁定SDO 引脚的值?  并通过示波器探测DAC和FPGA之间的SDO信号-您可以肯定地看到FPGA缓冲器或信号上的任何其他东西都在保持信号?

    顺便说一下,我打开了设计文档,检查保留位对Config8和Config127有何作用。  在芯片设计过程中,Config8中的保留位确实从默认值010更改为011,将寄存器的默认值从x4000推至X6000。  这在DAC3171数据表中进行了更新,并在下一个DAC3174数据表中进行了排队以进行更改。  我看不到Config127的问题-我没有在那个问题上关注您。

    此致,

    Richard P.

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

    您好,Richard:

    非常感谢大家对这里的关注!

    我在示波器上重新检查了我的信号,可以再次确认它们是否遵循我所指示的顺序。

    另请注意,使用完全相同的写入/读取例程,我会执行写入模式-读取模式循环测试-并且可以使其运行很长时间,在配置后不会报告任何问题

    至4线模式。 我有一个100欧姆电阻器与来自SN74LVC1G32或门的SDIO驱动信号串联(我的所有测试都是在该或门的输出上进行的,直接转到SDIO。 此或门的目的是控制使用SDENB发送到SDIO的输出。 当我检测到此电阻器并将设计保留为3线模式时-我可以看到SDIO在CONFIG0读取过程中尝试驱动SDIO总线-在电阻器DAC3174端获得运行电平,因为它使SDIO过载-但运行电阻 BITS类似于默认寄存器值。  可能会提示 在写入周期中发生某种情况。

    在CONFIG0写入循环期间-我已嗅探100欧姆电阻器的两侧,并且没有可感知的电压差,且模式正确。

    我的接口IOVDD电压为3.35V。

    我已检查针脚上所有相关设备的电源,没有出现漏电现象。

    SDENB由具有3.3V Vcc的SN74ALVTH1.6374万直接驱动。

    VOH (最小)= 2V

    音量(最大)= 0.2V (100uA)

    SCLK和SDIO由SN74LVC1G32或门驱动(SDIO通过前面提到的电阻器除外)。 VCC = 3.3V

    VOH (最小)= 3.2V

    VOL (最大)= 0.1V。 请注意,我看到的值确实比这稍高-但不会太高。 请务必记下原因。

    根据我的理解,DAC3174规范是

    VIH (min)= 2.01V

    Vil (最大)= 0.8375V

    示波器显示的电平远远高于/低于DAC3174 电平。

    这家酒店让人很不满意!

    关于CONFIIG127注释-第41页,7.6 26,复位值如下所示:  

    7.6 ................................................................27 config127寄存器(地址= 0x7F)[reset = 0x0045]

    我将返回0x0049

    我想,由于这是分版本,并且分版本可能会与数据表修订版不同步,因此在数据表中声称底部三位是固定重置值的简单错误。

    另请注意数据表错误:

    第25页,在7.5 Tm2串行接口说明...

    "在4引脚配置中,SDIO和SDO都数据传输周期中DAC3174输出的数据"

    但是,在Pin Functions:Single Bus Mode (第3页)和Dual Bus Mode (第5页)下,SDIO描述如下:

    "三引脚模式下的双向串行数据(默认)。 在4引脚接口模式(sif4_ena [config0,位9])中,SDIO引脚仅在输入中。 内部下拉"

    您能否确认设备上的内部下拉电阻器通常是什么-它们实际上是否下拉?

    再次感谢您的帮助!

    此致,
    Chris Burton