器件型号: TDA2P-ACD
TI 团队大家好
我目前正在 TDA2PHVRQACDQ1 平台上启用 I2C5。 但是、我遇到了中断处理和内核稳定性问题。
我已配置以下寄存器用于时钟门控和引脚多路复用:
| Name | 物理地址 | 十六进制值 |
| CM_IPU_I2C5_CLKCTRL | 0x4A00 5578 | 0x2 |
| CTRL_CORE_PAD_McASP1_AXR0 | 0x4A00 3748 | 0x60004 |
| CTRL_CORE_PAD_McASP1_AXR1 | 0x4A00 3744. | 0x60004 |
执行写入请求时、消息会正确发送。 但是、 消息之间存在 1 秒的延迟。 这似乎是由超时驱动的执行、而不是由中断驱动的执行。
预期的行为是让中断触发异步回调以立即处理下一条消息。 目前没有发出或处理中断。

附加辅助测试:IRQ 映射和核心崩溃:
作为排除中断缺失问题的辅助测试、我尝试 使用交叉开关寄存器手动将 I2C5 中断映射到 IPU2 上的 IRQ 48。
-
注册:
CTRL_CORE_IPU2_IRQ_47_48(0x4A002884) -
操作: 将该
IPU2_IRQ_48字段设置为 55 (I2C5_IRQ)。
问题: 无论之前的配置如何、每当我尝试写入此寄存器或将此映射初始化为替代解决方案时、我都会遇到 内核崩溃/异常。
问题:
-
是否
CTRL_CORE需要特定的序列或先决条件(例如锁定/解锁寄存器)才能写入 IRQ 交叉开关? -
在这个特定的 TDA2P 型号上、I2C5 的正确交叉开关实例 ID 是否为 55?
-
对于交叉开关逻辑、是否存在任何其他时钟或电源相关性、我可能会缺失?
如果您对如何正确路由该中断提供任何指导、我们将不胜感激。
此致、
Rodrigo Rubio