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.

[参考译文] DAC53202:在一个通道超前上的 DAC 配置丢失/错误

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1300517/dac53202-dac-configuration-is-lost-incorrect-on-one-channel-leading

器件型号:DAC53202

Im 尝试确保我可以成功地更改输出电压。 我的程序如下:

  • 将 common 配置设置为0x800
  • 设置 dac0和 dac1 CMP 配置值(完全相同地设置为0x8000)
  • 设置 DAC 输出值

 

所有写入与回读一起被立即确认以确保值已经生效。 最初、我在没有延迟的情况下执行该操作、并且正确回读了值。

 

我们注意到 dac0输出工作正常、但 dac1输出在两个相同的板上保持为0v。 在查询寄存器时、我们注意到值没有被保存。 下面的屏幕截图显示了 I2C 设置指令前后的寄存器、表明 dac1voutcmpconfig 值没有粘滞、我还通过测试知道 dac1data 值正在复位为0。

 

我实施了一些防御性编码、以确保 generalStatus 寄存器显示两个 DAC 都已为命令做好准备、并且在读取之前存在延迟、以考虑到可能的复位时间。 这张屏幕截图显示了我现在使用的写入过程:

 

如需了解更多相关信息、借助防御性编码、当尝试设置 DAC 值时、我实现的代码现在会卡在这一循环中。

 

在 PicoScope 示波器上、这将导致以下异常行为

 

任何人都可以对这种行为作出任何解释都是值得赞赏的。 如前所述、我们对其进行了测试、并且它在两个电路板上是相同的、在测试过程中还可以使用开发套件来查看其是否基于电子产品、但 Jack 向我保证这种可能性不大。

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

    您好、Jordan、  

    下面的内容不正确 、您尚未 在代码中明确显示这一点、因此我无法验证这是否是您实际写入器件的内容。  

    • 将 common 配置设置为0x800
    • 设置 dac0和 dac1 CMP 配置值(完全相同地设置为0x8000)
    • 设置 DAC 输出值
    [/报价]

    请尝试按顺序写入以下命令并检查输出

    DAC0_VOUT_CMP_CONFIG (寄存器0x15) 0x0800 //设置 增益= 1.5x、内部基准

    DAC1_VOUT_CMP_CONFIG (寄存器0x03) 0x0800 //设置 增益= 1.5x、内部基准

    DAC0_DATA (寄存器0x1C) 0x8000 //将输出设置为中间码

    DAC1_DATA (寄存器0x19) 0x8000 //将输出设置为中间码

    COMMON_CONFIG (寄存器0x1F)(0x13F9)//启用内部基准并为 VDAC0和 VDAC1加电

    此致!

    K·琼斯  

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

    尊敬的 Katlynne:  

    谢谢你的答复,我真的很感激.

    抱歉、我输入了错误的常用配置设置值、我已经在使用0x13F9。

    我已将初始化顺序修改为您的规格。  

    在尝试设置通用配置时、DAC1通过通用状态寄存器将自身报告为忙、因此我的防御代码不会提前。 希望这给了另一个面包屑导航、但作为该器件的新用户、我无法理解为什么 DAC1通道持续报告自己处于繁忙状态而没有发生任何其他情况。

    这张屏幕截图显示了寄存器的状态(缺失的设置均为0、不能全部容纳在一次中)

    谢谢

    约旦

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

    您好、Jordan、  

    啊,明白了。 我误解了屏幕截图所显示的内容。  为什么要将 DAC_VOUT_CMPR_CONFIG 寄存器设置 为0x8000?

    我注意到这些结果中缺少公共配置寄存器。 您可以读回所有寄存器并将结果复制/粘贴到此处吗? 您无需对结果进行截屏。  

    此致!

    卡琳恩  

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

    尊敬的 Katlynne:

    感谢您抽出宝贵的时间、感谢您的帮助、我在代码中发现了此问题。 我将  EREG_DAC_1_CMP_MODE_CONFIG 与  

    我的 SET 函数中的 EREG_DAC_1_VOUT_CMP_CONFIG。
    此致、  
    约旦