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.

[参考译文] TMS320F28.0039万C:SPI从属模式不会在接收时设置中断,即使使用示例代码也是如此

Guru**** 2521310 points
Other Parts Discussed in Thread: C2000WARE, SYSCONFIG, TMDSCNCD280039C

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1103322/tms320f280039c-spi-slave-mode-does-not-set-interrupt-on-reception-even-with-example-code

部件号:TMS320F28.0039万C
主题中讨论的其他部件: C2000WAREsysconfigTMDSCNCD28.0039万C

您好,

我正在使用带有TMS评估坞站的TMS320F28.0039万C控制卡。

首先,我从C2000ware 4.1 .0.0 导入了SPI_ex4_external_looping_fifo_interrupts项目

我将针脚连接到了.c文件顶部列出的针脚。 SPIA被设置为SPI从属设备,以接收来自SPIB主设备的流量。 我看到SPIB正在发送数据,但SPIA从未收到任何数据,或设置中断。

我检查了sys配置,注意到它将其中一个SPIB引脚配置为引脚83,而该引脚没有固定在EVM坞站上,因此我将其移动到引脚90。

我已经确定了每个引脚的范围,并注意到由于某种原因,没有SPI流量。 我看到MOSI切换一次,但没有其他动作。 这是一个默认的示例项目,因此我不理解为什么它不起作用。

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

    Valdez:GPIO配置是否只是您更改的内容? 如果是,PIN功能是什么?

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

    突出显示的行是我对sysconfig所做的唯一更改。 从引脚83到96 (因为83似乎没有固定在坞站上)。

    但是,这并不能解释为什么我看不到NCS/ STE切换。 此外,我尝试将SPI控制器放在接收器端,并在同一SPI模式下从已知良好的SPI控制器发送数据,但看不到任何中断以较长的字触发。

    还需要另一项修改。 我不确定C2000ware版本是否不兼容,但__error__函数定义与debug.h中的定义不兼容 具体来说,必须将const char更改为char作为参数,程序才能编译。  

    尝试运行任何演示代码时,全新安装的确切错误是:

    "#148声明与"void __error__(car *, UINT32_t)"不兼容(声明在“C:\TI\C2000\C2000Ware_4_01_00\driverlib\f28003x\driverlib\debug.h"的2000的第2.8003万第51行)"

    我通过打开device/device.c和.h并将参数类型从const char更改为char来纠正它。

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

    已发现问题。

    对于引脚输出问题,我没有意识到引脚输出(MCU引脚编号)与坞站引脚编号不匹配。

    从C:\TI\C2000\C2000Ware_4_01_00_00\boards\controlCARDs\TMDSCNCD280039C中2000中向上28.0039万向上拉控制卡引脚PDF,我能够在主板上使用正确的引脚,现在可以看到成功的SPI通信

    对于编译问题,我的C2000ware似乎已因旧版本的原因而部分损坏。 我执行了完全卸载,删除了C:\TI\C2000文件夹,重新启动,然后重新安装了最新的C2000ware,现在一切都按预期运行。

    我将此问题标记为已解决。