Other Parts Discussed in Thread: TCAN4550EVM
您好的团队、
我的客户正在测试 TCAN4550EVM。
它们使用 API TCAN4x5x_InterruptEnable Device_Configure (&0) 来禁用所有中断、但 nINT 仍会执行操作。 它们读取的寄存器 0820h 和 0830h 并非全部为 0。
您能解释一下为什么该 API 无法禁用中断吗?

谢谢、
Severi
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.
Other Parts Discussed in Thread: TCAN4550EVM
您好的团队、
我的客户正在测试 TCAN4550EVM。
它们使用 API TCAN4x5x_InterruptEnable Device_Configure (&0) 来禁用所有中断、但 nINT 仍会执行操作。 它们读取的寄存器 0820h 和 0830h 并非全部为 0。
您能解释一下为什么该 API 无法禁用中断吗?

谢谢、
Severi
尊敬的 Severi:
nINT 引脚是寄存器 0x0820 和 0x0824 中设置的所有“已启用“位的逻辑或。 器件中断启用寄存器 (0x0830) 只能禁用中断寄存器 (0x0820) 中的某些位、使 nINT 引脚电压发生变化。
寄存器 0x0820 和 0x0830 中的位之间存在一对一的相关性。 不能禁用寄存器 0x0820 中任何具有相应 RSVD 名称的位、以免导致 nINT 引脚发生更改。
要清除任何设置的中断位、您需要向设置的位写入“1"。“。 向寄存器写入 0xFFFF 将有效地清除任何置 1 的位。
请注意、寄存器 0x0824 是 MCAN 中断寄存器 0x1050 的只读副本、因此若要清除寄存器 0x0824 中的任何置位、需要向寄存器 0x1050 中的置位写入“1"。“。
如果在寄存器 0x0820 中设置了 SPI 错误 (SPIERR) 位、则需要清除状态寄存器 0x000C 中报告 SPI 错误的位。
一旦您清除寄存器 0x000C、0x0820 和 0x0824/0x1050 中的所有设置位、nINT 引脚应变为高电平。
此致、
Jonathan
是、可以通过向寄存器 0x0820 中的位写入“1"来“来清除 CANSLNT。
如果您想防止 CANSLNT 位导致 nINT 引脚拉至低电平、也可以将寄存器 0x0830 中的 CANSLNT 位设置为“0",“,以、以禁止 CANSLNT 标志生成硬件中断。 该位仍将在寄存器 0x0820 中设置、但不会导致 nINT 引脚拉至低电平。
此致、
Jonathan
为了防止 CANSLNT 导致 nINT 引脚拉至低电平、您只需将寄存器 0x0830 的 CANSLNT 位设置为 0。 (0x0830[10]= 0)。
CANSLNT、CANERR 和 GLOBALERR 位仍将在寄存器 0x0820 中设置、但由于寄存器 0x0830 中的 CANSLNT 位已被禁用、nINT 引脚将不会被拉低。
但是、其他仍启用的位将导致 nINT 引脚拉至低电平。
此致、
Jonathan