Microchip Technology MCP3421DM-WS Data Sheet

Page of 438
PIC18F2455/2550/4455/4550
DS39632E-page 182
 
© 2009 Microchip Technology Inc.
17.5.1.1
Bus Activity Detect Interrupt Bit 
(ACTVIF)
The ACTVIF bit cannot be cleared immediately after
the USB module wakes up from Suspend or while the
USB module is suspended. A few clock cycles are
required to synchronize the internal hardware state
machine before the ACTVIF bit can be cleared by
firmware. Clearing the ACTVIF bit before the internal
hardware is synchronized may not have an effect on
the value of ACTVIF. Additionally, if the USB module
uses the clock from the 96 MHz PLL source, then after
clearing the SUSPND bit, the USB module may not be
immediately operational while waiting for the 96 MHz
PLL to lock. The application code should clear the
ACTVIF flag as shown in Example 17-1.
EXAMPLE 17-1:
CLEARING ACTVIF BIT (UIR<2>)
Note:
Only one ACTVIF interrupt is generated
when resuming from the USB bus Idle
condition. If user firmware clears the
ACTVIF bit, the bit will not immediately
become set again, even when there is
continuous bus traffic. Bus traffic must
cease long enough to generate another
IDLEIF condition before another ACTVIF
interrupt can be generated.
Assembly:
BCF
UCON, SUSPND
Loop:
BCF
UIR, ACTVIF
BTFSC UIR, ACTVIF
BRA
Loop
Done:
C:
UCONbits.SUSPND = 0;
while (UIRbits.ACTVIF) { UIRbits.ACTVIF = 0; }