CCS C Software and Maintenance Offers
FAQFAQ   FAQForum Help   FAQOfficial CCS Support   SearchSearch  RegisterRegister 

ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

CCS does not monitor this forum on a regular basis.

Please do not post bug reports on this forum. Send them to support@ccsinfo.com

Interrupt types

 
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion
View previous topic :: View next topic  
Author Message
alexz



Joined: 17 Sep 2004
Posts: 133
Location: UK

View user's profile Send private message

Interrupt types
PostPosted: Tue Nov 02, 2004 2:32 am     Reply with quote

Does anybody know the difference between the Open drain Interrupt and Push-Pull Interrupt?
Thanks
_________________
Alex
Ttelmah
Guest







Re: Interrupt types
PostPosted: Tue Nov 02, 2004 3:19 am     Reply with quote

alexz wrote:
Does anybody know the difference between the Open drain Interrupt and Push-Pull Interrupt?
Thanks

The difference, doesn't just apply to interrupt signals. A 'push-pull' _output_, drives the signal involved, high, and low as needed. On 'open drain' output, only pulls the signal 'low', and relies on an external pull-up resistor, to pull the signal high when not driven. Open drain signals, allow several outputs (assuming -ve logic is used), to be 'wire ored' together, with the signal going low, when any one of the drivers comes on.
The difference, applies in the context of interrupts, where some devices have an interrupt output that is a push-pull type, while others have an open drain type, allowing several devices to share a single interrupt input to the processor.
There is also another 'difference', that is tied to this, with regards to interrupt _inputs_. For the wire 'oring' to work, the interrupt input used, should support 'level sensitive' interrupts (ie., if the interrupt is is low, the interrupt will keep triggering), rather than 'edge sensitive' interrupts (which only trigger when the signal transitions from high-low). With the latter, if a second device interrupts, while another device is already holding the line low, only one interrupt event will occur, potentially missing the second interrupt. With level sensitive interrupts, once the first event has been handled, and the global interrupt is re-enabled, the second device will still be holding the line low, triggering a second interrupt event.
In the case of a chip using 'edge sensitive' interrupts, it is possible to use code to simulate the level sensitive behaviour, by clearing the incoming interrupt source, then 'polling' the interrupt line, to see if something else requires servicing, and if so, looping, and testing for this. To wire or interrupt inputs onto the PIC lines, requires this approach.


Best Wishes
alexz



Joined: 17 Sep 2004
Posts: 133
Location: UK

View user's profile Send private message

PostPosted: Tue Nov 02, 2004 3:42 am     Reply with quote

So, I do not need the pull up resistor when using push-pull type?

If the device I am working with(USBN9603) is configured as push-pull Low,
how can I configure the PIC16F877 to interrupt on the level and not on the edge?

Basically, if I am using only 1 device on the interrupt line, should I use the push-pull type?
_________________
Alex
Display posts from previous:   
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group