[Asterisk-Dev] why not disable clock when using multiple Zaptel cards?

Peter Svensson psvasterisk at psv.nu
Sun Nov 28 10:28:21 MST 2004


On Sun, 28 Nov 2004, Andrew Kohlsmith wrote:

> On November 28, 2004 04:23 am, Peter Svensson wrote:
> > If there are several digium cards with 1kHz interrupts then maybe only one
> > of them should be causing interrupts. The other cards could be serviced
> > from within that handler. It does sound a bit tricky.
> 
> This is what I'm not getting; why it's tricky.
> 
> Say you have an ISR with a list of cards to service.  Normally the list has 
> only one entry: the entry for its own card.
> 
> Now with two cards installed, the module init code would see the second card, 
> disable the timer interrupt on the second and add card 2's address to the 
> list of cards to service.

One problem that has been / is being discussed in another mail thread is
that the cards are in fact not synchronized. After a while the internal
clocks on the cards will diverge a large enough fraction of a ms. If I
remember correctly there is only on ms worth of buffering where at least
two would be needed to handle all possible phase shifts between the 
interrupts on two cards.

Even if the two (or more) cards were made to drive their clocks at exactly 
the same frequency they can still end up in different phases. Of course, a 
more advanced clock servo loop can keep the 1kHz timer phase. This, I 
feel, is where things get tricky. 

Peter





More information about the asterisk-dev mailing list