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.

[参考译文] DAC8871EVM:EVM 过热、无法从 DAC 接收输出

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/794007/dac8871evm-evm-overheating-and-receiving-no-output-from-dac

器件型号:DAC8871EVM
主题中讨论的其他器件:DAC8871

我和我的高级设计团队在使 DAC8871和 DAC8871EVM 正常工作时遇到了困难。 当使用 DAC8871时、我们在发送数据时不会获得预期~7V 的输出。 我们担心代码中存在一些问题、因为我们将 SPI 库与 Arduino Mega 2560配合使用。 当使用 EVM 并向 Vcc 和 VSS 施加建议的电源时、U5似乎过热、我们完全无法测试模块。  

我们将在学期结束时提供任何帮助、但尚未解决此问题、我们对此表示感谢。

谢谢。

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

    您能否共享您在 EVM 上使用的确切跳线配置? 您使用的电源以及它们的连接位置也可能是这样吗?

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

    尊敬的 Paul:

    感谢您的回答。 跳线全部采用默认跳线配置、即针对板载+/-10V 基准进行配置。

    Skyler

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

    过去、我们注意到电路板上组装了 R14、此时它应该是 DNI。 您应该移除该电阻器。 您还应确认提供了所有电源轨(VCC、VSS 和 VDD)。 测量 TP1和 TP2上的参考值以确认这些值是否正确(+10V、-10V)。 最后、我将使用示波器或逻辑分析仪来确认 SPI 的格式是否正确。

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

    当 VCC 和 VSS 处于所需范围(+/-13.5V 至+/-19.8V)且 VDD ~5V 时、基准电压约为200mV。 如果我施加的电压低于所需的工作电压、则基准电压读数仅低于+/-10V、U5不会过热。 然后、当电源电压增加到高于最小工作电压时、Vrefh 和 Vrefl 会跳回200mV、U5过热。

    我将删除 R14、并将告知您任何更改。

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

    我移除了 R14、这解决了过热和基准电压问题、现在我看到了正确的基准电压。 现在、我的第二个问题是、当通过 SPI 发送代码0000h 和 FFFFh 时、DAC 没有输出、这将导致-10V 至10V 的输出。 有什么想法吗? 您希望我将代码发布到此论坛吗?

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

    很高兴听到 R14解决过热问题-放大器和 INA 可能相互战斗! 我们目前正在更新 DAC8871 EVM 以简化参考设计。

    关于 SPI 通信-我认为、使用示波器是确认 SPI 格式正确的最简单方法、并且正在设置数据并在正确的边沿锁存。 在 MCU 上、我发现用户的时钟线极性和相位错误。 这些模式通常可在您初始化 SPI 接口时进行配置。 您可以尝试使用它们。 时间不应太长、只有四种模式。

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

     Paul、

    我已经弄糊涂了时钟模式、我几乎肯定该 DAC 使用 SPI_MODE_0。 但我仍然无法获得 Vrefh 以外的输出。 我将 CS、LDAC、SDI 和 SCLK 定义为输出、然后将 CS 写入低电平、将 LDAC 写入高电平、然后传输数据。 锁存器和时钟极性看起来是正确的、但同样、我只获得10V 输出。 我附上了所使用的示波器读数和代码。 黄色-输出电压、绿色- SCLK、蓝色- LDAC、红色- CS。

    #include 
    
    const int CS = 53; //pin53芯片选择
    const int SCLK = 52; //引脚52时钟
    const int SDI = 51; //引脚51 MOSI 串行数据
    const int LDAC = 43; //引脚43 LDAC
    
    常量 int V_refh = 10; //高基准电压
    const int V_refl =-10; //低基准电压
    字节 output_0、output_1;
    
    
    void setup (){
    Serial.begin(115200);
    pinMode (CS、output);
    pinMode (LDAC、output);
    digitalWrite (CS、high);
    PinMode (SDI、输出);
    PinMode (SCLK、输出);
    SPI.begin();
    }
    
    
    //byte MyData_1 = 0b00000000;
    //byte MyData_2 = 0b00000000;
    //byte First_BYTE = MyData >> 8;
    //byte Second_BYTE =(MyData << 8)& 0xFF;
    
    void loop(){
    SPI.beginTransaction (SPISettings (50000000、MSBFIRST、SPI_MODE0));
    digitalWrite (CS、low);
    digitalWrite (LDAC、HIGH);
    SPI.transfer (0b10000000);
    SPI.transfer (0b00000000);
    digitalWrite (CS、HIGH);
    digitalWrite (LDAC、low);
    //Serial.println (first_Byte、bin);
    //Serial.println (Second 字节、二进制);
    spi.endTransaction();
    }
    

    谢谢、

    Skyler

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

    1.您认为您使用的是时序图中描述的 LDAC 引脚。 当 CS 为高电平时、LDAC 应该为低电平脉冲、但现在、只需始终保持 LDAC 为低电平。 这将允许 DAC 在 SPI 命令完成后立即更新。

    2.您的数据线非常低。 示波器设置为1V/分频、看起来 SDI 仅为500mV。 造成这种情况的原因是什么? 您是否需要从 MCU 上拉该引脚?

    谢谢、
    Paul