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.

[参考译文] TMS320F28379D:如何使用 SPI 配置 MAX5715 DAC IC

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/589039/tms320f28379d-how-to-configure-max5715-dac-ic-using-spi

器件型号:TMS320F28379D

我想将 max5715 IC 用于更多 DAC。 我正在使用 SPI 为此 IC 发送命令、但 IC 没有响应、并且它不会生成内部基准。 请帮助我正确配置该 IC。  

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

    您所指的是哪个示例代码?

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

    您是否确认 SPI 正在发送正确的信号? 如果没有、请使用示波器验证这一点。 接下来、请查看 DAC IC 的数据表并了解 SPI 配置。 您还需要查看 F28379D TRM 以了解有关 SPI 配置的信息。 请注意相位和极性设置、以确保传输和接收边沿配置为在器件之间匹配。 另外、请查看时钟设置、并确保您在适当的范围内运行。 如果上述所有内容看起来合理且正确、您可能需要向我们提供更多信息、以便我们能够更好地提供帮助。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Gautam、

    SPI 回送示例代码、略有修改。

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

    Mark、您好!

    SPI 发送正确的信号、我已在示波器上验证。 根据 DAC IC 的数据表、我正在发送正确的信号、我的时钟设置为10MHz。 我随附 DSO 捕获和数据表捕获、供您参考。

    #define SPI_BRR ((200E6/4)/10000E3)- 1.

    #define DAC_EN GpioDataRegs.GPECLEAR.bit.GPIO133=1

    #define DAC_DN GpioDataRegs.GPESET.bit.GPIO133=1;

    #define CLR_DN GpioDataRegs.GPBCLEAR.bit.GPIO38=1

    #define CLR_EN GpioDataRegs.GPBSET.BIO38=1;

    void SPI_init()

    //初始化 SPI-A

    //在配置更改之前将 RESET 设置为低电平
    //时钟极性(0 =上升、1 =下降)
    // 16位字符
    //启用环回
    SpicRegs.SPICCR.bit.SPISWRESET = 0;
    SpicRegs.SPICCR.bit.CLKPOLARITY = 0;//1.
    SpicRegs.SPICCR.bit.SPICHAR =(8-1);
    SpicRegs.SPICCR.bit.SPILBK = 0;

    // SpiaRegs.SPICCR.bit.HS_MODE = 0x1;

    //启用主设备(0 =从设备,1 =主设备)
    //启用传输(TALK)
    //时钟相位(0 =正常、1 =延迟)
    //禁用 SPI 中断
    SpicRegs.SPICTL.bit.MASTER_SLAVE = 1;
    SpicRegs.SPICTL.bit.TALK = 1;
    SpicRegs.SPICTL.bit.CLK_PHASE = 0;
    SpicRegs.SPICTL.bit.SPIINTENA=0;

    //设置波特率
    SpicRegs.SPIBRR.bit.SPI_BIT_RATE = SPI_BRR;

    // SpiaRegs.SPIBRR.bit.SPI_BIT_RATE = 0x3;

    //设置空闲位
    //在断点上停止不会停止 SPI
    SpicRegs.SPIPRI.bit.FREE = 1;

    //解除 SPI 复位
    SpicRegs.SPICCR.bit.SPISWRESET = 1;

    for (;;)


    DAC_EN;
    DELAY_US (2);
    CLR_EN;
    SPI_xmit (0x72);//内部基准设置为2V
    SPI_xmit (0xf0);//虚拟数据
    SPI_xmit (0xf0);//虚拟数据

    DAC_DN;
    CLR_DN;

    e2e.ti.com/.../MAX5713_2D00_MAX5715.pdf

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否正确切换了 CSB、CLR 和 LDAC 信号? 我在您的示波器捕获中看不到这些内容。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Mark、您好!

    是的、我在数据发送期间更改 CSB 和 CLR 的状态、但 LDAC 信号始终为高电平。

    我使用以下电路图:

    该电路图在数据表 MAX5715中给出。

    此致、

    Sonak Singh

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

    嗯、您共享的所有内容看起来都像 SPI 正常运行。 现在是进入下一步的时候了。 您是否按照任何步骤将 DAC 配置为所需的模式? 是否需要以适当的顺序发送其他命令来初始化它、配置模式、然后设置基准? 至少在 MAX5715数据表中、我看不到任何编程序列。 您是否联系过他们的支持人员或找到了任何与此 DAC 连接的示例、这些示例可能会为您提供正确的初始化序列?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Mark、您好!

    感谢您的回复。我将联系 maxim 寻求支持。


    Sonak