Information

PIC24FJ64GA004 FAMILY
DS80000470H-page 18 2009-2013 Microchip Technology Inc.
51. Module: A/D Converter
Once the A/D module is enabled
(AD1CON1<15> = 1), it may continue to draw
extra current, even if the module is later disabled
(AD1CON1<15> = 0).
Work around
In addition to disabling the module through the
ADON bit, set the corresponding PMD bit
(ADC1MD, PMD1<0>) to power it down
completely.
Disabling the A/D module through the PMDx
registers also disables the AD1PCFG registers,
which in turn, affects the state of any port pins
with analog inputs. Users should consider the
effect on I/O ports and other digital peripherals
on those ports when ADC1MD is used for power
conservation.
Affected Silicon Revisions
52. Module: UART (Transmit Interrupt)
When using UTXISEL = 01 (interrupt when the last
character is shifted out of the Transmit Shift
Register) and the final character is being shifted out
through the Transmit Shift Register (TSR), the TX
interrupt may occur before the final bit is shifted out.
Work around
If it is critical that the interrupt processing occurs
only when all transmit operations are complete,
after which the following work around can be
implemented:
Hold off the interrupt routine processing by adding
a loop at the beginning of the routine that polls the
Transmit Shift Register empty bit, as shown in
Example 2.
Affected Silicon Revisions
EXAMPLE 2: DELAYING THE ISR BY POLLING THE TRMT BIT
A3/
A4
B4 B5 B8
XXXX
A3/
A4
B4 B5
B8
XX
X
// in UART2 initialization code
...
U2STAbits.UTXISEL0 = 1; // Set to generate TX interrupt when all
U2STAbits.UTXISEL1 = 0; // transmit operations are complete.
...
U2TXInterrupt(void)
{
while(U2STAbits.TRMT==0); // wait for the transmit buffer to be empty
... // process interrupt