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.

[参考译文] DAC71416:无法获取 DAC 输出电压

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/977337/dac71416-unable-to-get-dac-output-voltage

器件型号:DAC71416

您好!

从 DAC0引脚获取输出时遇到问题、

我启用了输出到达 DAC0所需的所有寄存器。

微控制器:STM32F103C8T

VCC =+15V

VSS =-15V

VAA=Vdd=5V

VIO=3.3V

/LDAC =/RESET =/CLEAR = 3.3V

TOG0=TOG1=TOG2= GND、它们接地

SPI 配置

CS:/CS

CLK:SCLK

MISO:SDO

MOSI:SDI

VREF=使用内部参考电压2.5V

用于 SPICT1.________________________________

SPIx_EnableSlave();
SPIx_Transfer (0x03);//启用 spiconfig

SPIx_Transfer (0x0A);

SPIx_Transfer (0x8E);//启用流模式,sdo,sdo 在下降沿更新
SPIx_DisableSlave();

用于 GENCONFIG______________________________

SPIx_EnableSlave();
SPIx_Transfer (0x04);// GENCONFIG
SPIx_Transfer (0x3F);//激活内部基准
SPIx_Transfer (0x00);//DAC 不在区分模式下运行
SPIx_DisableSlave();

用于 BRDCONFIG____________________________

SPIx_EnableSlave();
SPIx_Transfer (0x05);//启用 BRDCONFIG
SPIx_Transfer (0xFF);
SPIx_Transfer (0xFF);

用于 DCPWDWN_________________________

SPIx_EnableSlave();
SPIx_Transfer (0x09);//启用 DACPWDWN
SPIx_Transfer (0x00);
SPIx_Transfer (0x00);
SPIx_DisableSlave();

用于 Brdcast ______________________________

SPIx_EnableSlave();
SPIx_Transfer (0x0F);//启用 Brdcast
SPIx_Transfer (0xFF);
SPIx_Transfer (0xFF);
SPIx_DisableSlave();

用于 DACRANGE_________________________

SPIx_EnableSlave();
SPIx_Transfer (0x0A);//启用 DACRANGE_A
SPIx_Transfer (0x11);//将相应 DAC 的输出范围设置为0到10V
SPIx_Transfer (0x11);//将相应 DAC 的输出范围设置为0到10V
SPIx_DisableSlave();


SPIx_EnableSlave();
SPIx_Transfer (0x0B);//启用 DACRANGE_b
SPIx_Transfer (0x11);//将相应 DAC 的输出范围设置为0到10V
SPIx_Transfer (0x11);//将相应 DAC 的输出范围设置为0到10V
SPIx_DisableSlave();


SPIx_EnableSlave();
SPIx_Transfer (0x0C);//启用 DACRANGE_c
SPIx_Transfer (0x11);//将相应 DAC 的输出范围设置为0到10V
SPIx_Transfer (0x11);//将相应 DAC 的输出范围设置为0到10V
SPIx_DisableSlave();


SPIx_EnableSlave();
SPIx_Transfer (0x0D);//启用 DACRANGE_d
SPIx_Transfer (0x11);//将相应 DAC 的输出范围设置为0到10V
SPIx_Transfer (0x11);//将相应 DAC 的输出范围设置为0到10V
SPIx_DisableSlave();

用于 DAC0________________________________

SPIx_EnableSlave();
SPIx_Transfer (0x10);//启用 DAC0
SPIx_Transfer (0xFF);
SPIx_Transfer (0xFF);
SPIx_DisableSlave();

我附加了下面的 DAC 原理图

我在下面附上了我的计划

是否有任何更正、请告知。

我没有在 DAC0输出引脚上获得输出电压。

DAC0 OUT 引脚上的输出仅为0.3V。

我需要获得一些电压、作为1V 的最小电压、而不是0v。

谢谢您、  

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

    SAI、


    除了查看代码或原理图之外、还可以通过其他方法来调试电路中 DAC 的运行。

    验证设备是否接收到您的通信也很重要。 除了写入器件之外、它还有助于读回寄存器以确认器件已接收到原始写入。 如果寄存器读操作返回寄存器默认值、则写操作不正确。

    在这种情况下、查看从微控制器到器件的 SPI 波形以查看 SPI 是否正确发送也很有帮助。 这些波形应与数据表中表格中列出的时序图和时序特性相匹配。

    您应该验证进入器件的数字信号和接地、并确保信号一直传输到 DAC。 我还会确保微控制器和 DAC 使用相同的电源、否则您可能需要电平转换器。

    我将尝试通读您的代码、但请仔细阅读我的建议、看看是否有任何帮助。


    吴约瑟

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

    您好 Joseph

    我发布的上述给定代码对我来说是正确的。

    谢谢、

    SAI。