主题中讨论的其他器件:TMDS243EVM
您好!
我正在使用 TMDS243EVM 电路板、并想使用 PRU 的 Σ-Δ 转换器来控制我的系统。 程序流如下:
- 每秒 R5内核触发一个中断并将当前值从共享存储器打印到控制台
- PRU:
- 等待 、直到 R5内核的中断被触发
- 启动 Σ-Δ 转换
- 将结果写入共享存储器
- 触发 R5内核的中断
根据技术参考手册(AM64x/AM243x 处理器器件版本2.0德州仪器(TI)产品系列)第3132页、可以通过写入 PRU 的_R31寄存器来触发中断。 在我的测试中、我发现这样做只会偶尔触发中断(请参阅附加的 PRU main.c、函数 TRIGGER_INTERRUPT )。
但是、如果我使用 ICSS_INTC_STATUS_SET_INDEX_REG 寄存器直接设置中断状态、从 PRU 到 R5的中断生成从不会出现问题。
在我的系统中、我看到在写入_R31寄存器后 INTC 的 RAW_STATUS 寄存器未 正确设置、ENABLE_REG 和 GLOBAL_ENABLE_HINT_REG 寄存器是正确的。
"我怎么了? 这里错了? 据我所知、不存在已知问题、根据文档、对_R31寄存器进行写入应该会始终触发中断。
我附加了所有文件以重现问题:
e2e.ti.com/.../TriggerInterruptFromPRUSporadicError.zip
此致
安德烈