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.

[参考译文] DAC81408EVM:DAC81408EVM

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/832631/dac81408evm-dac81408evm

器件型号:DAC81408EVM
主题中讨论的其他器件:DAC81408USB2ANYDAC80508EVM

写入 DAC81408上的配置寄存器时遇到问题。 我可以读取寄存器、但无法写入。

例如、当我通过 SPI 接口发送命令0x83000000时、我可以读取(SPIC为此 寄存器)

数据返回为0xXX0AA4XX。 当我发送命令0x030A84000时、我希望将"0A84"写入

但它没有。 我读回的数据仍然是"0AA4"。 我应该做什么来启用写入

寄存器的位?

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

    您好、

    欢迎访问 E2E 论坛!

    我假设您使用自己的 SPI 控制器(而不是 USB2ANY)、您能否共享 SPI 事务的屏幕截图? 此类问题通常是由 SPI 帧格式错误造成的。  请确认您的时钟边沿正确。

    此外、您应该注意到这是一个24位 SPI 数据包、除非您启用了 CRC。

    谢谢、

    Paul

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

    尊敬的 Paul:

    我正在使用 TI C2000 Delfino MCU F28379D LaunchPadTm开发套件生成 SPI 信号。 我可以成功

    控制 DAC80508EVM。 但是、一旦我更改为 DAC81408EVM、我就无法写入配置寄存器。

    下图描述了我通过 SPI 发送的两条命令:

     

    SpiaRegs.SPITXBUF = 0x8300;             //对 SPICCCST 寄存器执行读取操作(第一个访问周期)

    SpiaRegs.SPITXBUF = 0x0000;             // 32位数据的后半部分

    while (SpiaRegs.SPIFFRX.bit.RXFFST!= 2){} //两个字已接收->完成

    *rr = SpiaRegs.SPIRXBUF;                 //删除第一个收到的字

    *(Rr+1)= SpiaRegs.SPIRXBUF;             //删除收到的第二个字

    SpiaRegs.SPITXBUF = 0x8300;            //对 SPICCC1寄存器执行读取操作(第二个访问周期)

    SpiaRegs.SPITXBUF = 0x0000;            // 32位数据的后半部分

    while (SpiaRegs.SPIFFRX.bit.RXFFST!= 2){}//两个字已接收->完成

    *rr = SpiaRegs.SPIRXBUF;                //删除第一个收到的字

    *(Rr+1)= SpiaRegs.SPIRXBUF;             //删除收到的第二个字

    我从读取操作(第二个访问周期)获取的数据为0x800AA483。 "0A4"是 SPIC为此 寄存器设置的默认数据。 其中一个

    问题是、我期望获得0x830AA4XX、而不是0x800AA4XX (X:无关)。 另一个问题是我使用的是24位 SPI 访问

    但 LaunchPad 套件仅允许发送16位数据(我是对的吗?)。 因此、我发送两个16位数据、DAC 应自动忽略最后一个数据

    8位数据。

    现在、如果我将写入操作0x030A8400发送到 DAC、SPIC2010寄存器仍然是"0AA4"而不是"0A84"。 我认为这可能是24位/32位

    访问问题。 请帮助。

    谢谢你。

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

    您好、

    我怀疑这是24/32位访问问题。  您可以尝试仅发送24位吗? 我并不是100%熟悉如何为此配置 MSP430、但我怀疑您可以更改 TX 缓冲区的大小。   

    此外、您还可以验证 CS 线路。  

    谢谢、
    Paul

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

    尊敬的 Paul:

    我尝试仅发送24位数据、现在可以写入除 DACn 寄存器(地址:0x14至0x1B)以外的所有寄存器。

    因此、我无法从 DAC 获取模拟输出。 八个 DAC 寄存器的地址是否正确? (0x14至0x1B)。

    我不明白为什么我不能写入这些寄存器。

    此致、

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

    您好、

    您最初是如何配置器件的?  我的同事 Uttam 有一个简单的分步器件初始化:

    https://e2e.ti.com/support/data-converters/f/73/t/832194

    例如、如果器件仍处于断电模式或未启用基准、则不会看到输出。  还必须注意(由于数据表不正确、更重要的是) DAC 寄存器是只写的。  您无法读回 DAC 寄存器。  这是我们已经确定的一个拼写错误、我们目前正在更新数据表(可能需要几周时间)。

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

    尊敬的 Paul:

    是的、我意识到 DAC 寄存器是只写的、在使用 DAC 通道之前、我需要为它们加电。

    它现在正在工作。 感谢你的帮助。