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.

[参考译文] DAC80508:SPI 始终从引脚14 (SDO)读取0xFF

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1115453/dac80508-spi-always-read-0xff-from-pin-14-sdo

器件型号:DAC80508

通过 SPI 从 DAC80508读取的值始终为0xFF。

 

观察结果:

MOSI: 在 DAC80508的引脚15 (SDI)上观察到正确的输出。

MISO:DAC80508的引脚14 (SDO)上观察到的输出始终为0xFF。

SCLK:观察到时钟。

nCS:观察芯片选择。

电压电平:

引脚1 (REF):介于2和3伏之间

引脚16 (VIO):介于3和4伏之间。

 附加在逻辑分析仪 Saleae 上捕获的数据。

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

    继续发送电子邮件/消息

    我们在定制电路板上使用 DAC80508、如下所示。

    跟踪电子邮件中的逻辑分析仪(Saleae)屏幕快照图像说明

    1) A)将值0x000A 写入触发寄存器(地址0x05)以执行软复位。

         命令:0x05、0x00、0x0A

    1) b)触发寄存器(地址0x05)读取值0xFFFFFF.

         命令:0X85、0x00、0x0A、 0X85、0x00、 0x0A。  

    1) c)器件 ID 寄存器(地址0x01)读取值0xFFFFFF.

         命令:0x81、0x00、0x00、 0x81、0x00、0x00、  

    1) d)向配置寄存器(地址:0x03)写入0x0000、以便在 CS 为低电平时启用串行接口并驱动 SDO。

         命令: 0x3、0x00、0x00

    1) e)配置寄存器(地址0x03)读取值0xFFFF。

         命令: 0X83、0X00、0x00、 0X83、0X00、0x00。

    1) f)增益寄存器(地址0x04)读取值0xFFFF。

         命令: 0x84、0x00、0x00、 0x84、0x00、 0x00

    1) g)状态寄存器(地址0x07)读取值0xFFFF。

         命令: 0x87、0x00、0x00、 0x87、0x00、 0x00

    2) 2)将值0x00写入 DAC0 (地址:0x08)、这将看到输出逻辑电压0、但电压 电平为 aprox。 观察到2.5V。

         命令: 0x08、0x00、0x00

    3)和4) DAC0 (地址:0x08)读取值0xFFFF。

         命令: 0x88、0x00、0x00、 0x88、0x00、 0x00

    5)  5)将值0x00写入 DAC1 (地址:0x09)、 这将看到输出逻辑电压0、但电压 电平为 aprox。  观察到2.5V。

         命令: 0x09、0x00、0x00

    6) DAC1 (地址:0x09)读取值0xFFFF。

         命令: 0x89、0x00、0x00、 0x89、0x00、 0x00

    注1:从 DAC80508读取数据时、在执行读操作的前3个字节后、通过改变延迟来执行测试。

    "有延迟"示例:1秒、10微秒。

    "无延迟(执行前3个字节的读取操作后无延迟例程调用)。  示例:发送前三个字节、然后发送后三个虚拟字节。

    注2:   

    还执行了低于2的测试、但输出保持恒定。

    1) 1)将 DAC0 寄存器值从0x00更改为0xFF。

    2) 2) 将 DAC1 寄存器值从0x00更改为0xFF00。

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

    您好 Bharat、

    您是否通过配置寄存器中的 DSDO 位启用了 SDO?

    如果启用了 FSDO、您也可以尝试更改 FSDO 位。 控制器对数据的期望与 DAC SDO 引脚移出数据的方式之间可能不匹配。

    您是否确认能够写入 DAC? 您可以尝试禁用/启用内部基准。  

    最棒的

    Katlynne Jones  

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

    您好 Bharat、

    我们同时回答了。  

    从这个响应中、我发现您也无法设置 DAC 输出。 是这样吗?

    编辑:意味着您没有看到输出电压的变化?  

    最棒的

    Katlynne Jones

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

    您好 Katlynne、

    感谢您处理我的问题、

     

    > Katlynne :您是否通过配置寄存器中的 DSDO 位启用了 SDO?

    Bharat:配置寄存器值设置为0。 其中包括 Bit9 (DSDO)和 Bit10 (FSDO)。

                              如消息1中的第一幅图像/附件所示

                              在第二个消息点{1) d)}中进行了说明。

    问题:写入操作是否有任何问题?

    > Katlynne: 您是否确认能够写入 DAC? 您可以尝试禁用/启用内部基准。  

    Bharat:我可以在逻辑分析仪上看到写入事务、如之前的附件所示。

                 引脚1 (REF)输出电压介于2和3伏之间。 配置寄存器的位8 (REF-PWDWN)设置为0、表示使用内部基准。

    问题:通过启用和禁用内部基准。 这是否意味着设置/清除位8 (REF-PWDWN)?

                              如果是这种情况、您对它有何期望? 换句话说、通过设置/清除 REFPWDWN 来解释什么。

    > Katlynne: 表示您没有看到输出电压发生变化?  

    Bharat:是的、未观察到输出电压变化。

                                我想通知大家、通过向触发寄存器(地址= 0x5)写入值0xA 来执行软复位。

                                             我的理解: 这将把 SYNC 寄存器(地址= 0x2)放置在0xFF00。

                                                                         相应的 DAC 输出设置为在 CS 上升沿立即更新。

                                :请问我是否遗漏了什么?

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

    您好 Bharat、

    首先、我想确认您可以成功写入 DAC。 正确、将0xA 写入触发寄存器将触发软复位、但如果无法成功写入、则无法触发软复位。  当 DAC 上电时、同步寄存器将默认为0xFF00、而无需发出软件复位。  

    请尝试写入配置寄存器以关闭内部基准。  

    将0x0100写入寄存器0x3。 如果这成功、您将在 REF 引脚上看到0V。 当内部基准被启用时、  您应该在 REF 引脚上看到2.5V 的电压、正如您已经观察到的那样。  

    如果未成功、 则 SPI 命令有问题。 请向我发送此写入命令的范围截屏。 时序可能不正确、或者您使用的 SPI 模式可能错误。 我们可以在您确认结果后对问题进行调试。  

    最棒的

    Katlynne  

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

    您好 Katlynne、

    感谢您的解释。  

    DAC 写入失败。

           将0x0100写入寄存器0x3 => REF 引脚(1)保持高电平(~2.5V)。

    请查看以下逻辑分析仪上 SPI 读写操作的屏幕截图。  

    图1:SPI 写入

    图2:SPI 读取

    此致

    Bharat Khanna

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

    您好 Bharat、

    感谢您的确认。 看起来数据在下降沿移位、在 上升沿采样。 DAC 需要在上升沿移位并  在下降沿采样数据。 您能否调整 SPI 模式以满足这些要求?  

    时钟可以高或低空闲、因此您可以选择

    时钟极性= 1且时钟相位= 0或

    时钟极性= 0且时钟相位= 1

    最棒的

    Katlynne Jones

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

    您好 Katlynne、

     在进行建议的更改" SPI 模式1、CPOL = 0、CPHA = 1"后

    SPI 写入工作正常。

                   将0x0100写入寄存器0x3 => REF 引脚(1)压降至~0.5V。

    图1:SPI 写入

    SPI 读取仍然不起作用。

    图2:SPI 读取

    Output0 (引脚2)和 Output1 (引脚3):无变化。 使用内部基准电压时、始终为~2.5V。

    此致

    Bharat Khanna

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

    您好 Bharat、

    很好、 很好、你能够成功 写入。  

    您能告诉我您正在使用的完整器件型号吗?  

    是 DAC80508xC 还是 DAC80508x。 我认为您有 M 版本、因为听起来输出重置为中量程、但我想再次检查您是否没有 MC。 MC (或 ZC)有一个清零引脚、而不是 SDO 引脚。  

    最棒的

    Katlynne Jones

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

    您好 Katlynne、

    我们使用 的是"DAC80508MC"

    主题1:

            1) 1)引脚的初始状态为高电平(上拉)。  该引脚仅用于从我们的一侧读取数据。  

               根据数据表"CLR 引脚上的低电平值会导致 配置为清零操作的通道的 DAC 输出更新其输出                 寄存器并输出到复位值: 中量程(DACx0508M)。 将 CLR 引脚置为高电平会导致 器件退出清零模式。"

            2) 2)如果您在前一条消息中查看 SPI 读取映像。 引脚在  极短的时间内读为低电平。 这是个问题吗?

    主题2:

           > Ktlynne: MC (或 ZC)有一个清零引脚,而不是 SDO 引脚。  

            1) 1)我的理解 是、我们无法将此引脚用作 SDO。 是这样吗?

    主题3:

           而不考虑读取操作。 由于 SPI 写入被确认 并且 IC 在这样的设置中启动、写入 地址0x8至0xF 应该反映引脚 OUT0至 OUT7的变化。 由于未在 OUTX 引脚上观察到电压变化、是否缺少任何特定的寄存器设置?

    此致

    Bharat Khanna

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

    你好 Katlynne

    感谢您的支持。

    --------------------------------------------------------------------

    总结:

    我想通知大家、下面的更改使 DAC 正常工作。

    1) 1)将引脚14 (SDO/CLR)引脚始终设置为高电平。

            在 DAC80508MC 模块中、引脚14用作 CLR 引脚。

    2) SPI 模式1、CPOL = 0、CPHA = 1"为必填项。 DAC 在时钟的上升沿上运行。

    ----------------------------------------------------------------------

    您能在下面澄清一下吗?

            > Ktlynne: MC (或 ZC)有一个清零引脚,而不是 SDO 引脚。  

            我的理解 是、我们无法将该引脚用作 SDO。  是这样吗? 如果不是、需要什么寄存器设置来使引脚14成为 SDO?

    此致

    Bharat Khanna