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.

[参考译文] DAC81404EVM:一个 DAC 通道的奇怪行为

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/980539/dac81404evm-weird-behavior-of-one-dac-channel

器件型号:DAC81404EVM
主题中讨论的其他器件:DAC81404MSP-EXP432E401Y

我在对 DAC81404评估板进行原型设计、因为它似乎非常适合我的需要精密高压双极 DAC 的应用。  

我没有 MSP-EXP432E401Y Lauchpad 开发板、因此我使用的是基于  ARM Cortex M4F 微控制器(NXP 的 Kinetis K66)的 Arduino 兼容微控制器开发板、称为 teensy 3.6、可使用 Arduino 框架进行编程。 准备 SPI 无论如何都很简单。  

我有这个简单的函数  

SPISettings settingsA (4000000、MSBFIRST、SPI_MODE0);

inline void CSOON (){digitalWriteFast (DAC_SS_PIN、low);}
inline void CSOFF ()(){digitaleFast (DAC_SS_PIN、high);}

void write_reg (uint8_t reg、uint8_t (uint8_t)

= 0xint8_t 和 uint8_t (uint8_t)(uint8_uintt)(uint8_uint8_t)= 0xintt 和 uintt (uint8_t) t (uint8_uint8_uintt) t (uint

SPI.beginTransaction(settingsA);
CSON();
//delayMicroseconds (1);
spi.transfer (reg);
spi.transfer (msb);
spi.transfer (lsb);
delayMicroseconds (1);
CSOFF ();
spi.endTransaction ();
} 

设置功能很简单、我要设置一些寄存器

void setup(){
Serial.begin(115200);

//芯片选择
引脚模式(DAC_SS_PIN、输出);
digitalWrite (DAC_SS_PIN、高电平);

//复位
引脚模式(DAC_RESET_PIN、 输出);
digitalWrite (DAC_RESET_PIN、低电平);
delay (10);
digitalWrite (DAC_RESET_PIN、 高电平);
延迟(10);

// Init SPI0
Serial.printf ("SPI0 init...\n");
SPI.begin();
delay (100);

// Write
write_reg (0x03、0x0A84); // SPIC7:dev-PWDWN=0
WRITE_REG (0x04、0x0);// GENCONFIG:Ref-PWDWN=0
WRITE_REG (0x09、0x0);// DACPWDWN:DACx-PWDWN=0、x={A、B、C、D}
WRITE_REG (0x05、0x0); // BRDCONFIG:DACx-Brdcast-EN=0
WRITE_REG (0x0A、0x5555);// DACx-range=0b0101、即+/-5V

} 

然后、在主循环中、我只是生成一些三角波形、以查看是否一切正常。  

uint16_t i=0;
void loop(){
write_reg (0x10,(i)%65535 );// daca-a
write_reg (0x11,(2*i)%65535 );// dac-B
write_reg (0x12, (3*i)%65535);// DAC-C
WRITE_reg (0x13,(4*i)%65535);// DAC-D

I =(i+64)%65535;
delayMicroseconds (5);
} 

问题是 DAC 通道 D 不更新。 无论我选择哪种 DACRANGE、它都始终保持在双极模式下的 DAC_AVSS 或单极模式下的 DAC_AVDD。  

在这种情况下、DAC_AVDD =+12V、DAC_AVSS =-12V、DAC_DVDD = DAC_IOVDD = 3.3V、并且它使用其内部基准。 EVM 的所有跳线均处于其默认位置、J11除外、J11配置为从外部源提供 DAC_AVSS。  

这是我得到的波形

DSO 通道1/2/3/4连接到 DAC_VOUT_A/B/C/D TP。 SENSE 引脚保持未连接状态。 您可以清楚地看到、通道4的平均值大约为-12v、并且不会改变。  

我在这里错过了什么?

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

    您好!

    由于我们设计了 DAC_D 通道来测试 DAC81404的其他功能、因此这种行为是预期的。 如果您看一下原理图、DAC_D 通道的 VSENSE_P 和 VSENSE_N 故意反相、这就是 DAC_D 输出为-12V 的原因。

    您可以通过以下步骤启用 DAC_D 通道的正确功能。

    1.拆下 R17和 R12

    2.连接跳线以确保连接正确(您可以在输出端子块 J15或 R17和 R12的电阻器焊盘位置进行这些连接)

    此致、

    AK

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

    非常感谢您的回答。 问题已解决。 我只是记录它、这样其他人就会受益。

    这是原理图的相关部分  

    虽然我不是很了解可以通过故意翻转感应引脚来评估什么功能、而不是使通道对实际用途无用、但如果 EVM 的用户指南中明确提到这一点、那会更好。 此外、指南中所示的顶层 PCB 布局也出错:  

     我绘制的红色迹线(连接 DAC-D 的 VSENSE 引脚)在导轨中缺失,但实际上已放入 PCB!

    总之、非常感谢您的帮助。 这是我最终修复它的方法

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

    您好!

    我们将更新用户指南以反映相同情况。

    谢谢、

    AK