[Tinyos-host-mote-wg] RE: [Tinyos-2.0wg] Interrupt interface
Phil Buonadonna
pbuonadonna at archedrock.com
Thu Oct 20 13:38:46 PDT 2005
> What do you mean by "generic peripheral interrupt?" So far, the
> Interrupt interface has not been used for internal devices (e.g.,
> SPI, UART); instead, their interrupts are controlled through
> a device
> specific interface.
Effecitvely, this answers my question. That is, Interrupt.nc is implicitly
a GPIO ping interrup interface. Great.
> I am wary of doing this unless we understand the design space better.
>
Not too much to understand, I think. Except that there are/will be devices
which can be set to interrupt on both edges, not just one. If we stick to
the present interface, we consciously block this capability. I think that's
just fine, but we should be aware of it.
pb
> -----Original Message-----
> From: Philip Levis [mailto:pal at cs.stanford.edu]
> Sent: Thursday, October 20, 2005 12:55 PM
> To: Phil Buonadonna
> Cc: Tinyos-2.0wg at Mail.Millennium.Berkeley.EDU
> Subject: Re: [Tinyos-2.0wg] Interrupt interface
>
> On Oct 20, 2005, at 12:04 PM, Phil Buonadonna wrote:
>
> >
> > The 'enable' function of the interrupt interface
> > (tos/interfaces/Interrup.nc) takes as an argument a flag to
> > determine wether
> > it should fire on a rising or falling edge. This implies that the
> > interrupt
> > is based on a digital signal transition (i.e. a GPIO pin) rather
> > than a
> > generic peripheral interrupt in which there is no notion of 'edge
> > transition' but rather just an event.
>
> What do you mean by "generic peripheral interrupt?" So far, the
> Interrupt interface has not been used for internal devices (e.g.,
> SPI, UART); instead, their interrupts are controlled through
> a device
> specific interface.
> >
> > The docs of the interface say that it is microcontroller
> > independent, but it
> > really isn't in this case. It is specific to 1) Digital (GPIO)
> > signals and
> > 2) interrupt controllers that can fire on only one type of
> transition:
> > rising OR falling BUT NOT both. (As I understand it, this is
> > because the
> > ATmega128 is limited to this case)
> >
>
> I actually think it came out of the MSP430 code. But you're right,
> the possibility of both can't be covered. Hm. What sorts of chips
> support that? The PX?
>
> > Proposals:
> > 1) Move interrupt to a new interface called GPIOInterrupt and
> > create a new
> > Interrupt.nc in which there is only an enable feature.
>
> This ignores the "I can do one or both" possibility...
>
> > -or- 2) Keep the present interface, but document 'enable()'
> where the
> > argument is optional (seems kludgy)
> >
>
> Agreed.
>
> > As for the double edge trigger issue, one option is to simply not
> > accomodate
> > this function in TOS 2.0. That is, in TOS 2.0 you can define a
> > GPIO trigger
> > on a rising edge XOR falling edge. Which is fine, if that's the
> > consensus
>
> I am wary of doing this unless we understand the design space better.
>
> Phil
>
>
_______________________________________________
Tinyos-2.0wg mailing list
Tinyos-2.0wg at Mail.Millennium.Berkeley.EDU
https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-2.0wg
More information about the Tinyos-host-mote-wg
mailing list