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.

[参考译文] DAC81401:DAC 编程问题

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1490262/dac81401-issues-in-programming-dac

器件型号:DAC81401
主题中讨论的其他器件:DAC61401

工具与软件:

您好!
我想使用 DAC61401生成双极电压、以控制 BJT 的基极电压(Vb)(PNP 和 NPN)。 首先、我要在试验电路板上自行验证 IC 的工作情况。 我使用 Arduino Uno R3进行 SPI 通信。 请参阅随附的电路图和 Arduino 代码。
e2e.ti.com/.../Schematic_5F00_DAC61401_5F00_2025_2D00_03_2D00_20.pdf

e2e.ti.com/.../DAC61401_5F00_control.zip

我无法获得任何电压输出(VOUT)或读取内部基准(VREFIO)。 我尝试了以下操作:

1.将0x0A04写入寄存器0x03 (建议在数据表的应用部分中使用)

2.将0x0000写入寄存器0x04

3.将0xFFFE 写入寄存器0x09

4.将0x0005写入寄存器0x0A

5.将0x7FFF 写入寄存器0x10

这应该会提供2.5V 的输出。 但我无法获得任何输出。 当我只执行步骤1和2时、仍然无法使用示波器测量 VREFIO。

6、我确认 Arduino 的 SPI.Transfer 工作正常。 我可以验证传输的位是否正确。 我尝试了4种不同的 SPI_MODES、但没有解决方案。  

7.我尝试了 SPI 通信在设置()函数以及 loop()函数的 Arduino。

8.我在 SPI_CLOCK_DIV128上使用了较慢的 SPI。 在每次24位(8位寄存器+ 16位字)传输后延迟至少1ms。

您能建议我在这里遗漏的信息吗? 需要对电路或代码进行哪些修改?

谢谢

Sagnik

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

    尊敬的  Sagnik:  

    Sanjay 将审查,并 尽快回来提供一些建议。  

    此致!

    Katlynne Jones

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

    尊敬的  Sagnik:

    请提供以下事项的详细信息:  
    1.确认您是否能够对任何 DAC 寄存器(即 DEVICE_ID 或 SPICONFIG)执行回读。
    2.如果否、请共享 SPICONFIG (0x03)和 GENCONFIG (0x04)的 SPI 线路(CS、SDIN、SCLK 和 SDO)示波器快照。
    3.测量 DAC 电源引脚上的所有电源电压、并告知我。

    谢谢!
    Sanjay

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

    尊敬的 Sanjay:

    我尝试了读取 DEVICEID 寄存器。 我认为我无法获得正确的值。 根据上面的 Arduino 代码、我执行如下所示的3个 SPI 周期。 我不是在写入 GENCONFIG 寄存器。

     write_reg (0x03、0x0A04)//SPI_CONFIG reg。 0x0A04、以启用 SDO -在 CLK 上升沿更新
     延迟(1)
     //读取 DEVICEID 寄存器0x01
     write_reg (0x81、0x0000)// bit23为1、表示读取命令
     write_reg (0x81、0x0000)//读取数据的额外存取周期
    以下是来自示波器的第2个和第3个周期的屏幕截图:


    我已确认第一个访问周期(图中未显示)。 SDI 正确。 它读取十六进制030A04 (符合预期)
    我检查了提供给 DAC 的电压。 VDD 和 IOVDD 的电压为5V。 AVSS 为-10V。 AVDD 为10V。
    请告诉我怎么做错了。
    Sagnik
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Sagnik:  

    感谢您提供 图表和其他详细信息。 Sanjay 将审查并尽快返回给您。  

    此致!

    Katlynne Jones

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

    您好、Sangik:

    SPI 帧和电源看起来正常。
    请尝试这两个步骤、并告诉我结果。

    1:将0x0A04写入寄存器0x03、将 0x0000写入寄存器0x04、然后读取这两个地址并报告回读数据。
    测量 VREFIO 引脚电压并 报告测量值、值应为2.5V。

    如果您没有获得2.5V 电压、我们需要通过一次现场调试会话来查看此处出现的问题。

    谢谢!
    Sanjay