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.

[参考译文] TMS320F280040-Q1:SPI 速度限制

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1208518/tms320f280040-q1-spi-speed-limit

器件型号:TMS320F280040-Q1
Thread 中讨论的其他器件:SysConfigC2000WARE

您好!

库中配置 SPI 的函数表明 SPI 数据速率的限制为6MHz (< device freq /4、即25MHz)。  

为什么它受到这样的限制? 可以将其设置得更高还是此 MCU 的限制?

谢谢!

吊车

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

    吊车、

    在 F280040器件中、最大 SPI 波特率为 LSPCLK / 4 (100MHz / 4 = 25MHz)。

    您在哪里看到了6MHz 限制?

    此致、

    Manoj

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

    尊敬的 Manoj:

    在 spi.h 中,SPI_setConfig ()函数的注释显示。

    //! -\e 比特率不能大于\e lspclkHz 除以4。

    lspclkHz 为 DEVICE_LSPCLK_FREQ 25MHz。

    此致、

    吊车

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

    吊车、

    请检查 F280040数据表的代码段。 最大 LSPCLK = 100MHz。 所提供的示例代码将 LSPCLK 配置为25MHz。 您可以将其更改为100MHz、然后获得25MHz 的 MAX SPI 波特率。

    您可以通过将 LSPCLK 定义更改为 DEVICE_SYSCLK_FREQ / 1、在 device.h 中更改 LSPCLK = 100MHz

    此致、

    Manoj

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

    好的,明白了。 好了。

    顺便说一下、device.h 是从哪里生成的? 它不是来自库、也不来自 SysConfig。

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

    如果您使用最新的 SysConfig/CCS 工具、它们由 SysConfig 生成。

    如果您未使用最新的 SysConfig/CCS 工具、则该文件在每个 C2000Ware 示例工程中均可用、可以按如下所示进行访问。

    此致、

    Manoj

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

    尊敬的 Manoj:

    我当时正在做一些其他的事情、现在必须尝试一下。

    如果更改了 device.h 中的值、则 device init 中的以下语句将导致软件中断:

    assert (SYSCTL_getLowSpeedClock (DEVICE_OSCSRC_FREQ)= DEVICE_LSPCLK_FREQ);

    我不确定这是否与 SysConfig 中的值未更改相关。  

    另一个问题是、由于 device.h 已由 SysConfig 分级、是否必须在 SysConfig 中进行更改? 如果是、它在 SysConfig 中的位置?  

    谢谢!

    吊车

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

    吊车、

    1)您需要单击下面突出显示的时钟树工具图标。

    2) 2)获取您的输入时钟、PLL 配置以实现100MHz。

    3)然后将 LOSPCP 从/2更改为/1。 当 SYSCLK=100MHz 时、这将配置 LSPCLK=100MHz。

    4)您可以在 clocktree.h 中检查时钟配置 编译示例代码后、您可以检查由时钟树工具创建的 clocktree.h、如下所示。

    此致、

    Manoj

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

    尊敬的 Manoj:

    我的版本没有时钟树。 可能缺少什么?

    谢谢!

    吊车

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

    吊车、

    下载最新的 SysConfig https://www.ti.com/tool/SYSCONFIG 、并确保 CCS 参考 CCS 中的最新版本 SysConfig。

    此致、

    Manoj

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

    此问题是否已得到解决? 我可以关闭该主题吗?

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

    我一直忙于其他事情、没有机会安装新版本以供尝试。  

    总之、您现在可以关闭该线程。 如果我遇到新问题、我会回来询问。  

    感谢 Manoj!

    吊车

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

    现在关闭此主题帖。

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

    尊敬的 Manoj:

    仍然没有看到时钟树。

    谢谢!

    吊车

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

    我尝试自行下载最新的 SysConfig。 我没有看到问题、我看到了时钟树图标。 我选择了以下软件产品。 您要选择什么?

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

    那是什么? 我只有以下选项:

    看起来不是 C2000Ware SDK。  

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

    您是否具有最新的 C2000Ware? 如果未安装、请安装最新的 C2000Ware。

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

    不、我使用的是4.2。 我看到的最新版本是 https://www.ti.com/tool/C2000WARE 上的4.3

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

    Crane 先生、您好!

    安装最新的 C2000Ware 后问题是否得到解决?   休假、他将在本周结束前回复您的问题。  

    Vivek Singh

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

    您好、Vivek、

    是的、使用 C2000Ware 4.3时有时钟树。 但它与4.2不兼容。  问题。

    谢谢!

    吊车

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

    您好、Vivek、

    我已将 DEVICE_LSPCLK_FREQ 更改为 DEVICE_SYSCLK_FREQ / 1
    并且在时钟树中将 LOSPCP 更改为/1。

    assert (SYSCTL_getLowSpeedClock (DEVICE_OSCSRC_FREQ)== DEVICE_LSPCLK_FREQ);
    条件失败是因为来自 SYSCTL_getLowSpeedClock ()函数的 clockOut (返回值)仍在返回
    25000000仅在 DEVICE_LSPCLK_FREQ = DEVICE_SYSCLK_FREQ / 4时保持 true。

    如何获取 SYSCTL_getLowSpeedClock (DEVICE_OSCSRC_FREQ)来为我提供值100000000或50000000、
    我可以使用更高的 SPI 数据速率?

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

    Crane 先生、您好!

    您是否能够对引脚上的时钟进行观察并查看什么是 frq? 我还建议 在 CCS 寄存器视图中检查 LOSPCP 寄存器的值、以确保是否具有正确的值(如应用程序中编程的)。

    Vivek Singh

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

    您好、Vivek、  

    如果程序卡在置位状态、它将不会运行、因此我无法使用更改来测试频率。 如果没有这些更改、则测得的频率为6.25MHz。 在这两种情况下、LOSPCP 寄存器显示为2。  

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

    不用担心。 我发现了问题、并将继续尝试新设置。  

    谢谢!

    吊车

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

    尊敬的 Vivek 和 Manoj:  

    我们能够使用时钟树设置时钟频率。

    剩下的一个问题是现在有两个头文件 device.h 和 clocktree.h、这两个文件都定义了 DEVICE_LSPCLK_FREQ。  似乎使用了 device.h 中的那个。 不使用在 clocktree.h 中定义的新值。

    此致、

    吊车

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

    您需要安装最新版本的 C2000ware 才能访问时钟树工具。 早期版本的 C2000Ware 中没有改装时钟树工具的计划。

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

    是的、我安装了最新版本的 C2000Ware v4.3和 SysConfig 1.16。 这就是 SysConfig 中提供时钟树的方式。 否则、我甚至看不到它。

    现在、我已在时钟树中配置了新器件时钟、并 在 clocktree.h 中看到了新的 DEVICE_LSPCLK_FREQ 值 但它只是未在项目中使用。

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

    请检查此 E2E 主题。 它展示了如何使时钟树和 SysConfig 设置在您的项目中生效。  TMS320F280049C:如何在10MHz 下增加 SPI 比特率  

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

    感谢 Manoj!

    我的看起来与众不同。

    可能是因为我使用的 SysConfig 文件位于单独的文件夹中、不与项目一起使用?

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

    是的、您需要从工程文件调用 SysConfig。 请查看 SPI 的任何 C2000Ware 示例。 它向您展示了如何从工程文件调用 SysConfig。

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

    是的、在删除链接的 SysConfig 文件并直接在工程中添加 SysConfig 文件后、现在可以正常工作。

    谢谢!

    吊车