Thread 中讨论的其他器件:SysConfig、 C2000WARE
您好!
库中配置 SPI 的函数表明 SPI 数据速率的限制为6MHz (< device freq /4、即25MHz)。
为什么它受到这样的限制? 可以将其设置得更高还是此 MCU 的限制?
谢谢!
吊车
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.
您好!
库中配置 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 后问题是否得到解决? Manoj Santha Mohan 休假、他将在本周结束前回复您的问题。
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 文件后、现在可以正常工作。
谢谢!
吊车