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.

[参考译文] LAUNCHXL-F28377S:通过 SPI 从 TMS320F28377S 设置 DAC8560的 DAC 电平

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/592971/launchxl-f28377s-setting-the-dac-level-for-dac8560-from-tms320f28377s-via-spi

器件型号:LAUNCHXL-F28377S

大家好、TI 社区、

我目前正在尝试通过 SPI 与 DAC8560 (www.ti.com/.../dac8560.pdf 以及我的 TMS320F28377S)通信。 我遇到的问题是 F28377S SPI 移位寄存器为16位、而 DAC8560上的移位寄存器为24位。 DAC8560数据表的第20页有两条我认为会引起问题的条款。 第一条信息是芯片选择信号必须在每个新的写入序列前变为高电平。 我假设这意味着、在必须将芯片选择线路置于高电平之前、我一次只能写入24位数据。 第二个信息是、如果芯片选择信号在第24个下降边沿前被拉至高电平、它运行为一个到写入序列的中断。 然后、它将重置移位寄存器、写入序列将被视为无效;因此、DAC 寄存器将不会更新。 问题是 TMS320F28377S 指出、每次它完成发送它的最大位数(在本例中为16)时、它都会自动将芯片选择信号拉高。 我想知道是否有任何方法可以解决这个问题。

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

    通过将 CS 引脚配置为 GPIO 并在执行 SPI 操作时手动将信号置为有效/置为无效、可以解决此问题。

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

    您好、Brenden、

    您可以使用 FIFO 发送两个12位字来实现此目的。  请在此处查看数据表中的时序图:

    请注意、对于背靠背传输、选择将保持激活状态。

    您还可以使用 GPIO 代替专用芯片选择引脚(这可以与芯片选择的 GPIO 相同)。  在这种情况下、您将使用 SW 将 GPIO 切换为低电平、写入 SPI 数据寄存器、等待指示 SPI 数据已传输的标志/中断、然后将 GPIO 切换为高电平。  如果您希望在芯片选择中使用不同于 GPIO MUX 允许的 GPIO、此方法也适用。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、Devin、我现在来看看 FIFO、特别是 ControlSUITE 示例。 我注意到数据直接传输到 SPITXBUF。 我想知道是否缺少 TXFIFO 寄存器、或者我是否误解 TXFIFO 到底是什么。