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.

[参考译文] DAC53701EVM:如所述设置寄存器值后无输出

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1370975/dac53701evm-no-output-after-setting-register-values-as-described

器件型号:DAC53701EVM
主题中讨论的其他器件:DAC53701

工具与软件:

您好!

我目前正在评估 DAC53701器件、以分析它是否适合在我们目前设计的器件中应用。

目前、我使用 DAC53701EVM 硬件和 TI 网站上提供的 DAC52701 UI。
我的最终目标是创建医用警报生成。
我的第一个目标是创建一个方波信号以控制运算放大器的关断引脚。

DAC53701数据表 (SLASEY5)在48页描述了创建610Hz 方波频率的步骤。
在执行此操作之前、我通过以下方式执行复位以获得定义的起始位置:
0xD3 (TRIGGER)位9 (DEVICE_CONFIG_RESET)在 UI 中设置为1。  
读取0xD3 (TRIGGER)寄存器后、获得的位9 (DEVICE_CONFIG_RESET)值为0、我假设复位已完成。

现在、根据数据表第48页配置 DAC 以创建610Hz 方波:

将 GENERAL_CONFIG 寄存器(0xD1)写入0xD1 0x58。
将 DAC_MARGIN_HIGH 寄存器(0x25)设置为0x0F 0xFC。
设置 DAC_MARGIN_LOW 寄存器(0x26至0x00 0x00。
将触发寄存器(0xD3)设置为0x01 0x00。

所有寄存器值均设置为所需值的证据:


但是、DAC 的输出未显示任何(方波)信号。
我分析了 I2C 数据、所有数据包都包含预期数据并已发送。 DAC 正常响应每个字节。

第48页还给出了医用警报设置中的第二个 DAC 的设置、这些设置也不提供任何输出。

创建工作设置的序列中缺少什么?

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

    尊敬的 Bart:

    您将断电位设置为"11"。 您需要将其设置为"00"以便为输出加电:

    GENERAL_CONFIG 寄存器(0xD1)更改为0xD1 0x40。  否则、您的设置看起来正常。

    此致!

    Katlynne

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

    您好 Katlynne、

    感谢您的答复。 借助启用输出的提示、我能够从 DAC 中获得一个方波。
    但方波的频率是147Hz、而不是+/- 600Hz。 我设法通过执行下一个特定序列来更改频率:
    *将0xD1位4和3设置为1 (禁用输出)
    *将0xD3位8设置为0 (禁用函数生成)
    *将转换率更改为所需值(参见数据表公式3)
    *将0xD3位8设置为1 (启用函数生成)
    *将0xD1位4和3设置为0 (启用输出)

    仅当遵循特定顺序时、输出频率才会变化。

    生成医用警报的下一步是生成波形。
    同样、TI 伪代码不起作用。

    这是我目前所做的:
    0xD3 (TRIGGER)位9 (DEVICE_CONFIG_RESET)在 UI 中设置为1。  
    读取0xD3 (TRIGGER)寄存器后、获得的位9 (DEVICE_CONFIG_RESET)值为0、我假设复位已完成。

    将 GENERAL_CONFIG 寄存器(0xD1)写入0x1A 0xE8。
    将 CONFIG2 (0xD2)写入0x04 0x00 ->选择高优先级警报
    将 DAC_MARGIN_HIGH 寄存器(0x25)设置为0x0F 0xFC。
    设置 DAC_MARGIN_LOW 寄存器(0x26至0x00 0x00。

    输出未按预期显示医用警报波形。
    同样,所有数据夹都被正确地发送至 DAC ,并且所有数据夹都被确认。

    这里有一种奇怪的现象、那就是 GENERAL_CONFIG 寄存器0xD1在对0x1AE8值进行编程后读回时会更改值。
    该函数返回0x11E8、CODE_STEP 位(11:9)设置为000、预计为101。 它们似乎没有改变、但原因是什么?

    我对将0xD1位4和3设置为0以及将0xD3位8设置为1进行了演示、但这没有帮助。


    此处也可能存在一些对其他寄存器设置的依赖性、但这些依赖性并未在数据表中明确说明或描述。
    谁可以提供帮助?

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

    尊敬的 Bart:  

    您是否能尝试:

    将 GENERAL_CONFIG 寄存器(0xD1)写入0x1A 0xE0。

    读取 GENERAL_CONFIG 寄存器。

    将 DAC_MARGIN_HIGH 寄存器(0x25)设置为0x0F 0xFC。

    设置 DAC_MARGIN_LOW 寄存器(0x26至0x00 0x00。

    将 CONFIG2 (0xD2)写入0x04 0x00 ->选择高优先级警报

    此致!

    Katlynne Jones

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

    尊敬的 Katlynne:

    我也设法让医用警报功能正常工作。
    这里的解决方案(同样与方波生成一样)是首先关闭输出、然后禁用医用警报功能、再对时序等进行设置、然后重新启用输出和医用警报设置。

    如果尝试在启用输出的情况下更新时序等设置、则这些值实际上不会写入/存储在 DAC 寄存器中。

    这是一个难题、但我们现在有一个可以用于评估的功能演示。

    感谢您在本主题中的支持。

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

    尊敬的 Bart:  

    很高兴听到。 很抱歉、数据表中的设置顺序有些混乱。  

    如果您最后还有其他问题、敬请告知。  

    此致!

    Katlynne Jones