您好!
我已经成功使 TCAN 器件能够实现一个简单的回显程序、当我通过总线发送一个 CAN 帧时、TCAN 将接收它、复制它、更改帧 ID、然后将复制的帧发送回总线上。 这很好。
尚未解决的问题是、在复制的帧回传到总线上后、我从未看到任何 TX 事件被放置在 TX 事件 FIFO 中的迹象。 在我的中断处理程序中、我从未看到任何 TX 事件标志被置位(TEFL、TEff、TEFW、TEFN、TFE)、当我读取 TX 事件 FIFO 状态寄存器时、它总是读取值0。
我在中断处理程序中一直看到 TC 中断标志、我认为这表示回传 CAN 帧的成功传输、我只是不明白为什么我在 FIFO 中没有收到任何 TX 事件。
一些背景:
所有中断处理都在任务的上下文中发生:当 nINT 发出中断信号时、MCU 的中断处理程序会设置一个标志、指示任务解除阻断。 当任务运行时、它执行所有 SPI 交互并处理 TCAN 中断标志。
TCAN 配置为:
5 SID 过滤器
5个 RX 缓冲器
5个配置为"队列"的 TX 缓冲器元件
RX FIFO 0包含17个单元
TX 事件 FIFO 包含5个单元
启动时、我启用以下中断:
TEFNE、RF0NE、DRXE
我还尝试启用 TCE、但这对接收任何 TX 事件没有影响
我还尝试为每个单独的 TX 缓冲区启用中断、但在获取 TX 事件方面仍然没有成功
是否缺少需要启用 TX 事件 FIFO 的配置步骤? 有什么想法说明为什么我从未看到任何已创建的中断、也从未收到指示新 TX 事件已准备就绪的中断?
谢谢!