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.

[参考译文] DAC60508:无法从此 DAC 获取 ChipID、发布了相同的问题、并且线程在2020年1月锁定

Guru**** 2455360 points
Other Parts Discussed in Thread: DAC60508

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/887647/dac60508-cannot-get-chipid-back-from-this-dac-same-question-was-posted-and-thread-was-locked-in-jan-2020

器件型号:DAC60508

我从2020年1月(现在是2个月前)开始在论坛上发现了一个相同的问题。  遗憾的是、该线程已锁定。  我有同样的问题、无法从 DAC60508中获取芯片 ID。  我使用了与原来一样的 SPI 命令 :0x810000。  我正在使用32位 SPI 主器件、要使用此命令:0x00810000。  但是、我尝试了0x81000000、但它也不起作用。  我可以发送示波器照片,原来的人没有这样做。  原始论坛问题的网址为:  

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

    您好!

    首先、该器件是 MSB 对齐的(这意味着我们首先需要发送 MSB)、因此发送0x00810000将不起作用。 您需要以器件 ID 命令的形式发送0x810000。

    读取在两个访问周期内有效。 首次访问您需要发送0x810000、第二次访问您将在 SDO 上获得请求的数据。  您能否发布您的示波器照片?  您可以尝试使用24位 SPI 模式吗?

    此外、请确保您不会违反任何时序参数、尤其是 TCSS 和 tcsh。

    此致、

    AK

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    下面是示波器截图(如下所示)、其中显示了0x81000000从我的 uproc 引脚转入 DAC60508的 MOSI。  我认为我在该规格中是正确的、您希望 SPI MODE1在不使用时 SCLK 变为低电平、并在下降沿接受 MOSI 输入。
    我知道我的 MISO 工作正常、因为我在同一 SPI 上有其他器件、一个是 SPI MODE0、另一个是 SPI MODE3。  我对 CS 进行了门控、因此我知道只有一个真正的 CS 通过、而我的其他两个器件通信正常。  我的 SCLK 为1MHz。  我使用的是 DAC60508、在 VDD 模拟上电压为5V、在 VIO 引脚16上电压为3.3V。  
    我无法进行24位 SPI、因为它似乎不在我所使用的 uproc 的 spi.h 库中。  我将在8位、16位和32位上与我的其他器件使用同一个 SPI 库。  我的其他器件之一主要是24位器件、但可以与32位 SPI 配合使用。
    最后:
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    您能否发布 CS、SCLK 和 SDI 以及 SDO 两帧的屏幕截图? 正如我之前提到的、我需要验证时序、尤其是 TCSS 和 tcsh。 第二个帧是 NOOP、在这里您将在 SDO 上获得请求。

    此致、

    AK

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

    您好、AK、

    仍然没有活动。  使用 ESP32时、我无法执行24位 SPI、因此我使用的是32位 SPI。  我在规格第25页的第8.4节"如果是访问周期
    包含的时钟边沿数超过最小值、器件仅使用最后24或32位。"  因此、对于器件 ID 回读、我尝试0x00083FFF (或0x083FFF00)并使用0x00180000 (或(0x18000000)回读、这两种情况都不起作用、DAC 输出也不起作用。

    您能否确认器件是否确实对32位 SPI 做出了响应?  同时、我将搜索 ESP32的24位 SPI 库。

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

    我对该器件的理解是、它将不接受32位帧、仅接受24位帧。  此外、您使用的器件的完整器件型号是什么? 您是否正在使用具有清零引脚的器件?

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

    尊敬的 Paul:

    我订购了 DAC60508ZCRTER、因此、遗憾的是、我得到的是 CLRn 版本、而不是 SDO/ALARM 版本。  噢、是的。  现在、我已将引脚连接到逻辑高电平、发送0x083FFX 时、仍然无法在 DAC0上获得输出。  我希望获得2.50V 输出。  我还使用0x063FFX 尝试了广播方法。

    噢、是的。  我执行了一个 HACK、因此我现在仅发送24位。  但在 SCLK (1MHz)中、8个时钟的三次突发之间存在一个时间间隔(10usec)、但在整个时间内、我将 CSn 保持在低电平。  因此、希望它不会"介意差距"。  

    我将 VIO 运行在3.3V、将 VDD 运行在5.0V、因此我希望不会发生闩锁、具体取决于出现的电源形式。

    其他寄存器的默认值是否有任何偏离?

    同步、看起来所有 DAC 输出都是广播的默认设置、LDAC 的默认设置不是。

    配置、看起来都是默认调零、这正是我想要的

    增益、就像我的"Z"样式部件一样、所有 DAC 输出均清晰为0.0V

    触发器、LDAC 所在的位置、我不想使用它

    Brdcast

    状态

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

    尊敬的 Paul:

    好的、现在就开始工作了。

    我可以肯定地说几件事:

    32位通信正常工作、前两个字节必须为0。  例如、对于我的12位器件的广播命令、将0x0006000X 发送0V OUT 至0x0006FFFX 输出4.99V。  我使用了 SPI.h (我在 ESP32-Fireweetle 和 Arduino IDE 中使用 ESP32控制器)、以下是我的电话

    uint32_t DAC_Command32 (uint32_t sentData32){
     uint16_t returnData32 = 0;
     vspi->beginTransaction (SPISettings (spiClk、MSBFIRST、SPI_MODE1));
     digitalWrite (VSPI_SS、low);//pull SS slow to prep other end for transfer
     returnData32 = vspi->transfer32 (sentData32);  
     digitalWrite (VSPI_SS、高电平);//将 SS 拉为高电平表示数据传输结束
     vspi->endTransaction();
     serial.print (F ("32位 SPI 传输:0x"));
     serial.print (sentData32、十六进制);
     serial.print (F ("接收:0x"));
     serial.println (returnData32、十六进制);
     返回返回数据32;

    对于我的 DAC60508ZCRTER 来说、根据第22页8.3.1.2的表1、ZC 默认值会导致"不推荐"操作、我们在表中的第二行具有 DIV = 1分频和增益= x1。  因此、当我初始化器件时、我发送0x000400FF、现在我们有增益= x2、我们得到0V 至2XVREF = 5V 的全范围 DAC 输出。

    感谢您指出、我有 C 部分、我本来打算获得支持 SDO 的部分。