主题: SysConfig 中讨论的其他器件
工具/软件:
你好
我们将 MSPM0L1105 用作 SPI 外设、并使用 CCS 和 SysConfig 配置了引脚多路复用器。
SPI 的配置如下:


我们已设置 IRQ 处理程序以执行一些非常基本的基准测试来测试响应时间:
void PER_SPI_INST_IRQHandler(void)
{
uint32_t count = 0;
uint16_t buffer[256] = {0}};
switch (DL_SPI_getPendingInterrupt(PER_SPI_INST)) {
case DL_SPI_IIDX_RX_TIMEOUT:
loopCount++;
count = DL_SPI_drainRXFIFO16(PER_SPI_INST, buffer, 256);
DL_SPI_transmitDataBlocking16(PER_SPI_INST, loopCount);
break;
case DL_SPI_IIDX_RX:
loopCount++;
count = DL_SPI_drainRXFIFO16(PER_SPI_INST, buffer, 256);
gADCResult = convertAnalogInput(0);
gADCResult &= 0x0FFF;
DL_SPI_transmitDataBlocking16(PER_SPI_INST, loopCount);
break;
default:
break;
}
}
发送的数据为每个消息 16 位长度、总共 3 条消息用于表示 SPI ADC 外设的实际消息。
命令、虚拟周期、响应:

接收所有数据和时钟周期没有问题:


问题是我需要在第一条消息和第二条消息之间发生 RX 中断、以便填充发送缓冲区来响应主器件。
我已经尝试将 RX 超时设置为 125ns、希望它会在芯片选择转换阶段触发 IRQ(我们基本上有 12.5us)。

是否有办法使 SPI IRQ 更快、以便控制器收到 1 条消息时收到通知?
感谢您的帮助。