IRQ pin not tripping interrupt

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

IRQ pin not tripping interrupt

4,230 次查看
MichaelB
Contributor I
Using the SMAC 4.1a simple network template, with a M9S8GT60 processor, my remote (rx) works for a period of time, (from 1 min - 3 days) then suddenly locks up.  This only happens if it is recieving communication on the same channel. (ie I shut the tx off, & it runs fine for 1 week +).  I have managed to capture with BDM what is happening when this happens, & the IRQ pin is driven low (verified on a scope) but the Interrupt flag is never set. I've tried (IRQSC = 00010010) and (IRQSC = 00010011) .  If I manually change the IRQMOD register, the module recovers, but I'm not sure how much of that is related to the BDM.  Any Suggestions?

Message Edited by MichaelB on 03-03-200601:44 PM

标签 (1)
0 项奖励
回复
3 回复数

1,112 次查看
alex_spotw
Contributor III
Hi:

When using the SMAC, be aware of the reentrant interrupts in the receive functions. This could be creating a conflict between the TX process and the RX process that creates your lockup. Your code might be in the middle of a TX , when receives (Rx) a message, and then both processes get lost.

The best way is to modify your code to avoid the reentrant interrupt.

Regards,

Alex
0 项奖励
回复

1,112 次查看
MichaelB
Contributor I

Just so that I'm clear, this would involve disabling the interrupt pin at the start of the tx, then enabling it afterwards.  The clarification I'm after is that the IRQ pin isn't required durring the TX portion?
Thanks

0 项奖励
回复

1,112 次查看
alex_spotw
Contributor III
Hi:

The SMAC code relies on receiving an IRQ request after finishing the TX to change to the Idle mode. That's where the things get more complicated. This means that: yes, the IRQ pin is required during the TX.

I suggest to inspect the SMAC code and try to understands all interactions happening in the TX and RX processes.

Regards,

Alex

Message Edited by alex_spotw on 03-07-200611:45 AM

Message Edited by alex_spotw on 03-07-200611:45 AM

0 项奖励
回复