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.

[参考译文] DAC8760:SPI 菊花链中的两个器件存在问题

Guru**** 2512055 points
Other Parts Discussed in Thread: DAC8760

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/838403/dac8760-problem-with-two-devices-in-spi-daisy-chain

器件型号:DAC8760

我有2个 DAC8760器件以菊花链形式连接、2个器件配置为10伏输出、
第一个是正确的、但第二个不超过3伏。
它与配置相同,我以48位帧发送,但只有第一个有效。

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

    您好、Ernesto、

    您可以共享原理图吗?

    是否在寄存器映射中启用菊花链模式?  您必须设置该位才能使菊花链正常工作。

    谢谢、

    Paul

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

    这是我的代码和丑图。

    //控制注册
    LATCH = 0;
    SPI2_Send24_Bits (0x55、0x10、0x09);
    LATCH = 1;

    //配置寄存器
    LATCH = 0;
    SPI2_Send24_Bits (0x57、0x00、0x00);
    LATCH = 1;

    //增益调节器
    LATCH = 0;
    SPI2_Send24_Bits (0x58、0x00、0x00);
    LATCH = 1;

    //增益零寄存器
    LATCH = 0;
    SPI2_Send24_Bits (0x59、0x00、0x00);
    LATCH = 1;

    //控制注册
    LATCH = 0;
    SPI2_Send24_Bits (0x55、0x10、0x09);
    SPI2_Send24_Bits (0x00、0x00、0x00);
    LATCH = 1;

    //配置寄存器
    LATCH = 0;
    SPI2_Send24_Bits (0x57、0x00、0x00);
    SPI2_Send24_Bits (0x00、0x00、0x00);
    LATCH = 1;

    //增益调节器
    LATCH = 0;
    SPI2_Send24_Bits (0x58、0x00、0x00);
    SPI2_Send24_Bits (0x00、0x00、0x00);
    LATCH = 1;

    //增益零寄存器
    LATCH = 0;
    SPI2_Send24_Bits (0x59、0x00、0x00);
    SPI2_Send24_Bits (0x00、0x00、0x00);
    LATCH = 1;


    //输出值
    LATCH = 0;
    SPI2_Send24_Bits (0x01、0xff、0xff);//9.98伏
    SPI2_Send24_Bits (0x01、0xff、0xff);//3.1伏

    LATCH = 1;
    LATCH = 1;

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

    您好、Ernesto、

    您应确认以下几点:

    1.这种连接是否正确? 因此、我个人不喜欢 SDI/SDO 命名惯例。  主器件上有称为 SDO 和 SDI 的引脚、但 SDO 和 SDI 是指器件数据输入从器件数据输出。  在您的图中、主器件上有一个称为 SDI 的引脚、但连接到 SDO 引脚、这令人困惑。  我会在主器件上确认引脚是 MISO 还是 MOSI。  您可以监控将 DAC1连接到 DAC2的导线、并验证数据格式是否正确。

    2.使用示波器验证您的时序是否有效。  我在过去看到、一些 MCU 会缓冲 SPI 数据、因此 SPI2_Send24_Bits 函 数可能会返回、但实际上并未完成命令设置。  您的写入命令中可能有一个轮询函数、用于检查写入是否完成、但这通常被忽略。  您可能会注意到、在命令完成之前、锁存线会变为高电平。   

    两个器件的读取命令是否都起作用?

    谢谢、

    Paul

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

    是否有更新?