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.

[参考译文] DAC8718:SPI 通信、但无电压输出

Guru**** 2502205 points
Other Parts Discussed in Thread: MSP430F5517, DAC8718

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1125798/dac8718-spi-communication-but-no-voltage-output

器件型号:DAC8718
主题中讨论的其他器件:MSP430F5517

大家好!

我使用 MSP430F5517 MCU 通过 SPI 与 DAC8718通信。  两个器件之间的 NCS、SCLK、MOSI 和 MISO 信号在示波器上显示正确:

  • 当在一 个 NCS 周期内通过 MOSI 发送写入命令时、MISO 在下一个周期回显写命令的所有24位。
  • 在一个 nCS 周期内通过 MOSI 发送读取命令时、MISO 在下一个周期回显读取命令的前8位、后跟目标寄存器的16位值。

但是、DAC 不会在其输出端产生任何电压。 当电路通电时、无论写入寄存器的值是多少、每个通道都会产生稳定的11mV 电压。 DAC 在单电源模式下运行、具有以下电源轨电压:

  • IOVdd = 3.3V
  • DVDD  = 5V
  • AVDD  = 31V
  • DGND  = 0V
  • AGND-A = 0V
  • AGND-B = 0V
  • AVSS  = 0V

失调电压 A 和失调电压 B 均与数据表中定义的用于单电源运行的 AVSS 相连。 参考 A 和参考 B 都连接到稳定的5V 电源、并且配置寄存器中的增益位设置为6、以产生30V 的最大理论输出。

下面是我在 MSP430上的 SPI 引擎的设置代码:

//DAC USCI configuration
UCA1CTL1 = UCSWRST;                //unlock USCI A1 registers
UCA1CTL0 = UCMSB + UCMST + UCSYNC; //configure change on first edge, LOW idle, MSB first, 8-bit, master, 3-pin SPI, synchronous
UCA1CTL1 |= UCSSEL_1;              //configure ACLK as source for BRCLK (ACLK = 1MHz)
UCA1BR0 = 0;                       //disable prescaler
UCA1BR1 = 0;                       //disable prescaler
UCA1CTL1 &= ~UCSWRST;              //lock USCI A1 registers, initialize USCI A1 state machine

在初始化 MSP430 SPI 引擎后、我创建了一个测试程序来向 DAC 发送命令。 下面详细介绍 了我发送和接收的数据包:

  • MOSI:0x081111  MISO:0x000000 (无前一条命令)
  • MOSI:0x092222  MISO:0x081111 ("将寄存器8写入0x1111"命令的回显)
  • MOSI:0x890000  MISO:0x092222 ("将寄存器9写入0x22222" 命令的回显)
  • MOSI:0x000020  MISO:0x892222 ("读取寄存器9"命令的回显、后跟寄存器9的值)
  • MOSI:0x880000  MISO:0x000020 ("无操作"命令的回显)
  • MOSI:0x000020  MISO:0x881111 ("读取寄存器8"命令的回显、后跟寄存器8的值)

下面是我使用的逻辑分析仪的捕获结果、其中显示了相同的数据:

我可能会出什么问题?

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

    您好!

    您能否提供原理图以便我可视化您的连接并对其进行双重检查?

    谢谢、
    卢卡斯

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

    当然可以。 这是 DAC 的原理图。 我不会随意分享其余的设计、但原理图上的每个贴有标签的网(OUT0至 OUT7除外)都直接连接到 MSP430上的 GPIO 引脚。 另一个原理图描绘了将  nCS、nRST 和 nCLR 连接到 IOVDD 的10kΩ Ω 上拉电阻器。 感谢你的帮助!

    此致、

    Eric

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

    尊敬的 Eric:

    您能否直接测量器件上的基准电压、RST 和 CLR? 确保基准电压为5V、并且 RST 和 CLR 均为高电平。

    您的 SPI 通信看起来正确。 您能否回读配置寄存器以确保器件未处于断电模式? (D12和 D11)

    谢谢、
    卢卡斯

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

    您好 Lucas、

    我测量了您建议的引脚、发现 nCLR 为低电平。 这甚至不是由于焊接桥或杂散导线造成的、我实际上在 MSP430的 GPIO 配置中将其设置为低电平。 我多次检查了该配置、但直到现在我从未发现错误。

    再次检查输出电压、所有通道似乎都正常工作。 非常感谢您帮助我解决这个问题。

    此致、

    Eric