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.

[参考译文] CCS/TMS320F280049:TMS320F280049

Guru**** 2392095 points
Other Parts Discussed in Thread: DAC108S085

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/962550/ccs-tms320f280049-tms320f280049

器件型号:TMS320F280049
主题中讨论的其他器件:DAC108S085

工具/软件:Code Composer Studio

  我的 DAC108S085有问题。 说明手册说 TSS 的最小值为3-10ns、最大值为(1/fSCLK - 3)。 我使用 TMS320F280049 将这个 DAC 模块化连接、但是它的 TSS 输出参数不能满足 DAC 芯片的要求。  

 tms320f280049的输出 如下所示。

SCLK = 1MHz

根据 DAC108S085手册
最大 TSS = 997ns
最大 tsh = 997ns

但实际上 、TMS320F280049的输出 是
TSS = 2000ns
TSH = 480ns
TSS 值不能满足 DAC 的要求

我尝试配置 DSP 的输出、但我找不到配置此 DSP 参数的方法

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

    您好!

    在 DAC 数据表中、我看到"一旦 SYNC 为低电平、DIN 线路上的数据在 SCLK 的下降沿上被计时到16位串行输入寄存器中"。 查看您共享的快照、可以看到 SPICLK 配置为极性= 0、其中数据在 SPICLK 的上升沿传输。

    您可以更改极性并尝试吗?

    此致

    Veena

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

    您好、Veena、

    您说的正确、我发送的图片配置为 SPICLK 的上升沿、方法是将其配置为"SPI_PROT_POL0PHA0"

    我已经尝试过您所说的内容、将其配置为"SPI_PROT_POL0PHA1"、但 DAC 仍然无法正确配置。  

    此致。

    Kevin

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

    尊敬的 Kevin:

    我认为正确的配置应该是: SPI_PROT_POL1PHA0。

    数据表中提到了 STE 有效到 SCLK 和 SCLK 到 STE 无效之间的延迟时间信息。 对于1MHz 时钟、延迟应小于500ns。

    此致、

    Veena

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

    void SPI_init() { //mySPI0初始化 // DAC108S085是在下降沿采集,也就是偶数沿,所以相位pha要设置成1,极性pol可以设置才0 SIPBRR最小值是3 μ s SPI_disableModule (mySPI0_BASE); SPI_setConfig (mySPI0_BASE、DEVICE_LSPCLK_FREQ、SPI_PROT_POL0PHA1、 SPI_MODE_MASTER、1000000、16); SPI_disableFIFO (mySPI0_BASE); SPI_enableLoopback (mySPI0_BASE); SPI_setEmulationMode (mySPI0_BASE、SPI_emulation_stop_after_transmit); SPI_enableModule (mySPI0_BASE); } void SPI_transmit (uint32_t base、uint16_t sdata) { uint16_t RDATA; SPI_writeDataNonBlocking (base、sdata);//发送数据 RDATA = SPI_READDataBlockingNonFIFO (base);//直到接收到数据、然后将其返回 if (RDATA!= sdata)//根据发送的数据检查接收到的数据 { //出现错误。 RDATA 不包含预期数据 ESTOP0; } } void main() {uint16_t sData=0; //发送数据 // //初始化设备时钟和外设 // device_init(); // //禁用同步(也冻结 PWM 的时钟) // SYSCTL_DisablePeripheral (SYSCTL_Periph_CLK_TBCLKSYNC); //设置 SPI spi_init(); // //启用到 PWM 的同步和时钟 // SYSCTL_enablePeripheral (SYSCTL_Periph_CLK_TBCLKSYNC); EINT; ERTM; //SPI 通信 设置寄存器为WTM模式 μ s sData = 0X9000;//WRM:0X8xxx;WTM:0X9xxx; SPI_Transmit (mySPI0_BASE、sData); while (1) { sData = 0X000;//设置A通道为full scall,高10位 SPI_Transmit (mySPI0_BASE、sData); sData = 0X1800;//设置B通道为half scall,高10位 SPI_Transmit (mySPI0_BASE、sData); sData = 0X2800;//设置C通道为1 /4 scall,高10位 SPI_Transmit (mySPI0_BASE、sData); sData = 0X3800;//设置D通道为full scall,高10位 SPI_Transmit (mySPI0_BASE、sData); sData = 0X4800;//设置E通道为half scall,高10位 SPI_Transmit (mySPI0_BASE、sData); sData = 0X5800;//设置F通道为1 /4 scall,高10位 SPI_Transmit (mySPI0_BASE、sData); sData = 0X6FFC;//设置G通道为half scall,高10位 SPI_Transmit (mySPI0_BASE、sData); sData = 0X7FFC;//设置H通道为1 /4 scall,高10位 SPI_Transmit (mySPI0_BASE、sData); } }

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

    您好、Veena、

    我已经尝试了'SPI_PROT_POL1PHA0'的配置、它也失败了。

    您展示的图片在哪里? 我在 TMS320F28004X 数据表中发现、在 maste 模式下、高速时、它的值大于您向我展示的值。

    在非高速模式下、它的值如下所示、

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

    尊敬的 Kevin:

    很抱歉、我查看的是较旧版本的数据表。 根据更新的数据表、对于1MHz 时钟、STE 有效 SCLK 将为~1400ns。

    您是否可以提高 SPICLK 频率并尝试?

    此致、

    Veena

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

    您好、Veena、

    我正在尝试增加 SPICLK 频率、但我似乎应该将 DSP 配置为高速模式以提高速度。

    我使用 C2000 ware 库进行编程、您能告诉我如何将其配置为高速模式吗?

    此致

    Kevin

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

    你(们)好、Veena

    我刚刚将 SPICLK 配置为25MHz、TSS = 62ns、tsh=8ns。  

    但根据 DAC108S085、TSS 应为40ns、 无法满足其所需的要求。

     顺便说一下、只有当我将 DSP 设置为 SPI_PROT_POL0PHA0时、第16个 clk 的下降沿才处于同步信号的低范围内。

      

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

    尊敬的 Kevin:

    但是、DAC 希望数据位于 SPICLK 的下降沿、对吧? 使用 SPI_PROT_POL0PHA0时、数据将在上升沿发出。

    对于 SPI_PROT_POL0PHA0、会向正常 SPI_PROT_POL0PHA0行为添加半周期延迟。

    此致、

    Veena

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

    尊敬的 Venna:

    是的、我在 SPI_PROT_POL1PHA1条件下绘制了另一个图形、您可以发现、当在下降沿时、有效数据不在正确的位置。

    该时序不是 DAC 所需的。

    此致

    Kevin

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

    您好、Veena、

    通过设置为"SPI_PROT_POL0PHA0"、我成功配置 DAC 芯片 。

    我感到困惑的是、在这种模式下 、对于 DSP 而言、"无延迟上升沿"是指我捕获的图形似乎是"无延迟下降沿"。

    您可以在    下图中看到 SPI_PROT_POL0PHA0和 SPI_PROT_POL1PHA0的差异。

    这是正常的吗?

    此致

    Kevin

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

    尊敬的 Kevin:

    极性= 0时、数据将在 SPICLK 的上升沿输出、极性= 1时、数据将在 SPICLK 的下降沿输出。

    我在您共享的快照中看到相同的行为。

    此致、

    Veena

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

    您好!

    在过去几周里,我没有听到您的声音,因此我假设您能够解决您的问题。 如果情况并非如此,请拒绝此解决方案并回复此主题。 如果此主题锁定、请单击"提出相关问题"按钮、然后在新主题中描述您的问题的当前状态以及您可能需要帮助我们帮助解决您的问题的任何其他详细信息。

    新年快乐!

    此致、

    Veena