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.

[参考译文] DAC7750:电流输出没有意义。

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1465297/dac7750-current-output-makes-no-sense

器件型号:DAC7750

工具与软件:

您好!

我们在设计中使用了您的 DAC7750。

经过设计验证后、我们得出结论、电流输出没有预期的结果。

它被配置为0 -20mA 输出、因此我们也使用0 -20mA 代码计算方法。

constexpr uint8_t range_selection = 0b110//-20 mA
用于从毫安级转换到代码的方法如下所示:

uint16_t 代码=(uint16_t)((CURRENT_MA / 20.0)*

PoW (2、分辨率));//((Current_ma)<<分辨率)/ 20;

//对于 DAC7750、数据存储在 DB15:DB4中

//因此、将代码向左移动4。

//_value 将由 STATE_SET_OUTPUT 写入

_value =代码<< 4;


将对应于20mA (0x1000)的代码写入器件时、当前输出为10mA。
将10mA (0x0800)对应的代码写入器件时、电流输出为15mA。
将对应于0mA (0x0000)的代码写入器件时、电流输出为10mA。
通过以下方法将代码写入芯片:

uint8_t DATA_MSB =(_value >> 8)& 0xFF;// MSB

uint8_t data_lsb =_value & 0xFF;// LSB

_make_transaction (DATA_register、DATA_msb、data_lsb);

 

在这里、make 事务按以下方式填充 SPI 缓冲区:

_SPI_TX[0]= reg;

_SPI_TX[1]= MSB;

_SPI_TX[2]= lsb;

输出电流由万用表和 I_OUT 上的串联电阻器进行测量。
在我们使用逻辑分析仪进行测量并通过切换 OUTEN 进行验证的过程中、实际上会传输数据。 禁用 OUTEN 会禁用电流输出 (输出端的0 mA。)
有什么想法,我们在这里做什么错?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好!

    事实上、时钟极性 配置错误、导致在第一个0时计时为1。
    因此、如果有人在编写代码时遇到奇怪的结果、请考虑正确配置时钟极性和时钟相位。

    希望此回答对任何人有用。

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

    Robin、


    感谢您回答自己的问题!   时钟极性和相位错误是一个非常常见的问题。 我 始终建议使用示波器或逻辑分析仪来查看 SPI 信号。 这是一个有用的诊断、也可以显示在帖子中。 与代码中相比、明显更容易遇到计时、噪声或通信结构方面的任何问题。  

    再次感谢您发送编修。 如果您对于 DAC7750还有任何其他问题、请随时再次发布!

    Joseph Wu

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

    如前所述、我们使用逻辑分析仪进行了检查、结果显示没有问题。

    读回已写入的寄存器会产生观察结果。