TI中文支持网
TI专业的中文技术问题搜集分享网站

BOOSTXL-POSMGR: 在使用LAUNCHXL-F28P65X与POSMGR时,demo工程SPI无输出

Part Number:BOOSTXL-POSMGR

各位好

我刚开始接触TI的MCU产品,我们购买了官方的F28P65X开发板和POSMGR模块,并且在MotorControl SDK中找到了tformat f28p65x的demo工程。

这里我首先想反馈一个关于CCS Theia的问题:这个demo包含了PM_tformat_f28p65x_lib和tformat_f28p65x_comms_demo两个工程,工程中相互引用的部分使用了CCS_WORKSPACE_DIR这个路径变量,在Theia中似乎无法正确解析,导致demo工程编译时找不到lib工程内的文件而编译失败。手动修改该路径可以编译通过。

为保证工程兼容性,我又安装了CCS 12.7.1。编译后进行调试,发现launchxl的site2 spi管脚始终测量不到信号输出,但连接posmgr的5V电源使能IO信号有正常输出。我还没有将编码器与posmgr相连接,我想先尝试让开发板能正确输出信号之后再进行。

为了查找问题,我又把lib和demo两个工程的代码优化关闭,重新编译后进行单步调试(编译时遇到了.const段无法被RAMSL5和RAMLS6容纳的报错,粗略观察后我把.const分配到了RAMLS8,报错被消除了,我不确定在这个demo中有没有什么副作用)。每一步对SPI的配置似乎都正常,查看SPID外设的寄存器也有被写入。

每次运行,程序都会停在tformat.c 第470行 while(tformatData.dataReady != true) {}。回溯while之前的代码,第468行的PM_tformat_setupCommandWriteEEPROM(eepromAddress, eepromData);这个函数调用使用向TXBUF写入了多个数据,观察SPID的寄存器,TXFFST一直没有减少,也就是tx fifo的数据没有被发出,且SPIDAT寄存器的数据保持在程序向spi写入的第一个值。我将程序停止在while时的SPI寄存器截图附在了下面,希望官方或有经验的工程师们可以帮忙查看一下是什么问题。

CCS还有两个问题我不知道是不是普遍现象,观察寄存器页面时,程序的单步执行会变得非常慢;单步执行跳转到库函数的源码时,源码当前运行指向的行位置并不正确,甚至会指示到注释行上。

Versenkt Lee:

看来问题解决了:

在官方的多摩川编码器demo中,MCU上的SPI被设置为了从设备模式,因此必须有时钟信号输入给spi才能发出数据。demo使用CLB产生SPI时钟,且似乎使能信号拉低之后才能输出时钟给spi外设。

将开发板,POSMGR模块和电机编码器连接之后,已经能够在demo中读到编码器数据了。

赞(0)
未经允许不得转载:TI中文支持网 » BOOSTXL-POSMGR: 在使用LAUNCHXL-F28P65X与POSMGR时,demo工程SPI无输出
分享到: 更多 (0)