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.

[参考译文] DAC81416EVM:DAC61416

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1318943/dac81416evm-dac61416

器件型号:DAC81416EVM
主题中讨论的其他器件:TXU0304DAC61416、DAC81416、

我们当前正在开发一个设计、在该设计中、我们使用3、3 V µC (teensy 4.1)控制 DAC61416。 实现 SPI 通信的初始设计是使用电平转换器 TXU0304将值移至5V。

对于测试、我们仅尝试一次与一个 DAC 板对话(在最终设计中、连接了13个板)。 我们后来意识到 DAC 也可以在3.3V 逻辑下工作、因此无需使用电平转换器。 为了验证此功能是否正常、我们改用了 DAC81416 EVM 板、并且能够成功更新通道。 当我们尝试对我们设计的 PCB 执行同样的操作时、我们会注意到 DAC 正在加电、但通道不输出任何内容。  

我们的设计如下:


 

请注意:原理图中还有不再使用的电平转换器。 我们有一个新 PCB、它将来自控制器的 SPI 信号直接连接到连接器并转至 DAC (安装在另一个 PCB 上)。  

我们使用以下代码:

香港特区政府

#包含
#包含  //包含新的 SPI 库:

const int CS_PINS [13]={6,7,8,9,10,25,26,27,28,29,30,31,32}
const int CS = 6


内联 CSON()
{
 digitalWrite (CS、LOW);
内联 CSOFF()
{
 digitalWrite (CS、HIGH);

void write_reg (uint8_t reg、uint16_t wdata)
{
 uint8_t lsb =((uint16_t) wdata >> 0)0xFF
 uint8_t MSb =((uint16_t) wdata >> 8)0xFF
 
 SPI.beginTransaction(SPISettings(16000、MSBFIRST、SPI_MODE1);
 CSON()
 delayMicroseconds(10)
 spi.transfer (reg );
 SPI.transfer (msb);
 spi.transfer (lsb);
 CSOFF()
 delayMicroseconds(10)
 spi.endTransaction ();

setup()
{
 Serial.begin(9600);
 serial.println ("在设置中...\n");
 引脚模式(CS、输出);
 Pin 模式(11、输出);
 引脚模式(12、输入);
 pinMode (13、输出);
 //digitalWrite (12、low);
 digitalWrite (CS、HIGH);
 //delay (5000);
 SPI.begin();
 //初始化 SPI0
 serial.println ("SPI0 init...\n");  
 延迟(1000);
 
 WRITE_reg (0x030x0084);// SPIC既然 DEV-PWDWN=0
 WRITE_reg (0x040x3F00);// GENCONFIG:Ref-PWDWN=0
 WRITE_reg (0x050x0000);// BRDCONFIG:DACx-BRDCAST-EN=0
 WRITE_reg (0x060x0000);// BRDCONFIG:DACx-SYNC-EN=0
 WRITE_reg (0x090x0000);// DACPWDWN:DACx-PWDWN=0、x={A、B、C、D}
 WRITE_reg (0x0A0x0000);// DACx-RANGE=0b0000、即0-5V
 WRITE_reg (0x0B0x0000);// DACx-RANGE=0b0000、即0-5V
 WRITE_reg (0x0C0x0000);// DACx-RANGE=0b0000、即0-5V
 WRITE_reg (0x0D0x0000);// DACx-RANGE=0b0000、即0-5V
 serial.println ("Warte 1 Sek..\n");
 延迟(1000);

 serial.println ("Init abgeschlossen");

void loop()
{
 //无符号字符字节[4];

 //通道1将变为高电平1秒,然后变为低电平

 WRITE_reg (0x10,65535);
 延迟(1000);
 WRITE_reg (0x100);
 延迟(1000);
 serial.println ("循环完成");
香港特区政府
请查看随附的示波器屏幕截图。 第一张图显示 SCLK 和 CS、第二张图显示 SCLK 和 SDI。 第三个图像是逻辑分析仪上看到的输出。

DAC 打开并且 SPI 信号可见。 但通道并不会得到更新、我们无法弄清其中的原因。
如果我们在设计中使用 DAC 81416而不是 DAC 61416、它会有什么帮助吗?  

非常感谢您的反馈。  

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

    您好!  

    感谢您的提问。 Sanjay 将审查详细信息、并尽快作出回复。  

    此致!

    K·琼斯

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

    尊敬的 Lalita:

     

    我已经查看了原理图、它与 DAC81416EVM 用户指南中提供的典型原理图略有不同。 但我仍然认为、您的设计应该能够毫无问题地正常工作。 要调试您的问题、请确认-  

    1.您已经 测量了 DAC61416电源、它们处于建议的电压限值(VCC、VSS、VAA. VDD 和 VIO)。

    2. 您可以 检查沿 SCLK 和 CS 的 SDI 线路,并且每次 SPI 写入都要获取正确的数据。

    3. 您可以检查 SDO 线路并验证 SPI 读取命令是否有效。

    4.您要启用内部基准并测量其值 ~ 2.5V。    

    以下是用于验证 DAC VOUT 通道的最少命令集-  

    a)在 SPIC73 (0x03)中写入0x0A04 - 为 DAC81416器件供电  

    b) 在 GENCONFIG (0x04)中写入0x3F00 -以使用 内部 基准

    c)在  DACPWDN (0x09)中写入0x0000 -为各个 DAC 通道上电

    e)在  DACn_DATA 中写入0x8000 (n = 0x10至0x1F)- 用于将单独的 DAC 通道输出配置为2.5V  

     

    谢谢。

    桑贾伊  

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

    感谢你的评分 下面是我发现的内容:

    1.所有电源均在建议的电压限制范围内。 (VCC = 15V、VSS =-15V、VAA= Vdd = 5V、Vio = 3.3V)

    2. SDI 和 SDO 工作正常(我在上面的查询中张贴了 SDI 屏幕截图)。

    在 DAC 评估板中、我们可以 切换基准、看到 J1.7上的2.5V 开启和关闭。 但在我的 PCB 中、不容易获取 VREF 引脚、从而检查基准是否实际打开或关闭。 由于它非常靠近我的设计中连接在一起接地的 REFCOMP 和 REFGND 引脚、因此我无法使用万用表隔离和测量 VREF 的电压。 如果我测量的0V 实际上是 VREF、这可能是这里的问题。 我能否通过读出引脚的状态等其它方式来验证我的 REF 是否实际打开?  

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

    尊敬的 Lalita:

    您是说 REFCOMP 和 REFGND 引脚都连接到 PCB GND 吗? 但根据原理图、REFCOMP 引脚应具有330pF 电容、这是正确的配置。   

    尝试探测 C104 (REF CAP)节点电压、在启用内部基准后它应该为~2.5V。  

    此致、

    桑贾伊

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

    尊敬的 Sanjay:  

    在 REF 电容器上测得的电压为0V。我们将电路更改为在 VIO = 3.3V 时运行、但 LDAC、RESET 和 CLEAR 仍连接至5V。 我不确定这些引脚是否也需要连接到 VIO = 3.3V。 我们是否还需要更改这些引脚的电压? 另外、我觉得出于某些原因、我的 DAC 永远不会离开加电复位状态。 这些寄存器始终配置为默认值、并且完全不会根据我在代码中明确提供的输入进行更新。 如果我们的电路中有问题、敬请告知。

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

    尊敬的 Lalita:

     

    请尝试将 LDAC、清除和复位 上拉电阻更改为3.3V (理想情况下应该很重要)。

    另外、您能否澄清一下 REFGND 和 REFCOMP 引脚的连接情况、它们是否已短接到 GND?  

    如果您无法使器件正常工作、我们来进行一个简短的调试会话。

      

    谢谢。

    桑贾伊

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

    我将尝试更改 LDAC 的清零和复位引脚、看看是否有任何变化。
    是的、 REFGND 和 REFCOMP 引脚均短接至 GND。
    如果即使将上拉电阻更改为3.3V 后问题仍然存在、我会再次与您联系。

    谢谢你。  

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

    Lalitha、您好!

    REFCMP 引脚应包括一个连接 REFGND 的330pF 电容器。 如果 REFCMP 引脚连接到 GND、则内部基准将不正确、并且器件可能不会例外响应。  请更正此问题。  DAC81416

    此致、

    桑贾伊