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.
大家好!
我使用 TMS320F28379D 时遇到无法正常工作的情况。
首先、我们使用具有一个微控制器和大量接口的定制 PCB、以便控制机电原型(电机、传感器、CAN 等)。
我现在遇到的是一种奇怪的情况。 基本上、我有2个计时器(使用 CPU1.Timer1和 CPU1.TIMER2)和2个不执行任何操作的 ISR (为了进行调试、我只需在这里放置_asm (" NOP")来停止调试器)、1个 SPI 是 Rx FIFO 中断、其中我从传感器(从 FIFO)读取一些值。 问题在于即使 SPI 的 ISR 配置正确(参见下面的屏幕截图)、它也没有被处理、并且中断似乎也应该被正确处理(参见 SPI 寄存器)。 在 SPI ISR 内部、我清除正确的 ACK 组(6)、而在另外2个组中、我不清除3.4.4.2 SPRUHM8I 中所述的任何内容;此外、我不使用嵌套中断。
调试一点问题我发现如下:
我必须排除所有与硬件相关的问题、因为我确信我正在读取的传感器工作正常(上面列表中的第1点以及之前所做的大量调试)。
我不知道我能执行什么其他测试,但我可以提供任何你想要的。
尊敬的 Elia:
SPIFFRX 寄存器值似乎没有问题、中断看起来应该设置为正确处理(中断信息看起来就像您描述的那样是从传感器接收到的)。 您能否提供 SPI 设置和 SPI 中断的配置设置、以便更详细地了解 CPUTIMER 的连接背景? 另外、您是否仔细检查 FIFO 模式是否 设置正确以及 PIE 是否被启用以处理中断?
此致、
艾里森
是:这是我设置 SPI 的方式
// setup rx interrupt #define FTSENS_SPI_BASE SPIA_BASE Interrupt_register(INT_SPIA_RX, &channelDataReceivedISR); SPI_clearInterruptStatus(FTSENS_SPI_BASE, SPI_INT_RXFF| SPI_INT_RXFF_OVERFLOW); SPI_setFIFOInterruptLevel(FTSENS_SPI_BASE, SPI_FIFO_TX8, SPI_FIFO_RX8); SPI_enableInterrupt(FTSENS_SPI_BASE, SPI_INT_RXFF | SPI_INT_RXFF_OVERFLOW); SPI_setConfig(FTSENS_SPI_BASE, DEVICE_LSPCLK_FREQ, SPI_PROT_POL0PHA0, SPI_MODE_MASTER, 1000000, 16); SPI_enableModule(FTSENS_SPI_BASE); Interrupt_enable(INT_SPIA_RX);
我还可以确认在 PIEIER 6.1中正确启用了中断
尊敬的 Elia:
您的 CPUTIMER 1和 CPUTIMER 被调用的频率是多少?
此致、
艾里森
尊敬的 Elia:
您还可以确认确认也确认了计时器中断吗?
此致、
艾里森
尊敬的 Allison:
据我所知、TimerInt1和2不需要确认、因为它们不是组的一部分。 我错了吗?
无论如何、2个计时器的频率是100Hz (计时器2)和200Hz (计时器1)、而 SPI Rx 应以1500Hz 的频率出现。
看起来如果缓冲区增加到超过电平、int 不再被触发。 我还得说、我们读取传感器的当前设置是:当传感器的 DATARDY 引脚有效时、我在 TXBUFF 中移动虚拟数据以激活时钟(使用 XINT 和 DMA 上的组合)、并且我读取2个数据字。 我执行此操作4次、因为我们必须对传感器的4个通道进行采样、总共8个字。 该设置是否会以某种方式产生中断问题?
尊敬的 Elia:
Ah 是的、没错、您正确的是确认 不适用于 CPU1中断、因为它们不会通过 PIE 模块(只有 CPU0计时器会)。 此外、我相信您已经这么做了、但请仔细检查、在您的 ISR 中、您应该:
如果您尚未参考以下 F2837xd SPI 示例、我还强烈建议您参考: spi_ex3_external_loopback_fifo_interrupts.c (在 C2000Ware > driverlib > f2837xd > examples > CPU1 > SPI 中找到)。
您是否还可以同时与我共享更多的代码(SPI/计时器配置/ISR)以便获得更高的可见性?
此致、
艾里森
尊敬的 Allison:
目前我无法访问硬件。 我将在下周初尝试用一个最低限度的工作示例来向您展示。
非常感谢!
听起来不错、Elia。 是的、请在可以的情况下随时更新、如果您有其他问题、请告诉我!
此致、
艾里森