PIC24FJ32MC102-E/TL

2012 Microchip Technology Inc. DS80549A-page 1
PIC24FJ32MC104 FAMILY
The PIC24FJ32MC104 family devices that you have
received conform functionally to the current Device
Data Sheet (DS39997C), except for the anomalies
described in this document.
The silicon issues discussed in the following pages are
for silicon revisions with the Device and Revision IDs
listed in
Table 1. The silicon issues are summarized in
Table 2.
The errata described in this document will be addressed
in future revisions of the PIC24FJ32MC104 family silicon.
Data Sheet clarifications and corrections start on Page 5,
following the discussion of silicon issues.
The silicon revision level can be identified using the
current version of MPLAB
®
IDE and Microchip’s
programmers, debuggers and emulation tools, which
are available at the Microchip corporate web site
(www.microchip.com).
For example, to identify the silicon revision level using
MPLAB IDE in conjunction with MPLAB ICD 3 or
PICkit™ 3:
1. Using the appropriate interface, connect the device
to the MPLAB ICD 3 programmer/debugger or
PICkit 3.
2. From the main menu in MPLAB IDE, select
Configure>Select Device, and then select the
target part number in the dialog box.
3. Select the MPLAB hardware tool
(
Debugger>Select Tool).
4. Perform a “Connect” operation to the device
(
Debugger>Connect). Depending on the devel-
opment tool used, the part number and Device
Revision ID value appear in the Output window.
The Device and Revision ID values for the various
PIC24FJ32MC104 family silicon revisions are shown in
Table 1.
Note: This document summarizes all silicon
errata issues from all revisions of silicon,
previous as well as current. Only the
issues indicated in the last column of
Table 2 apply to the current silicon
revision (A0).
Note: If you are unable to extract the silicon
revision level, please contact your local
Microchip sales office for assistance.
TABLE 1: SILICON DEVREV VALUES
Part Number Device ID
(1)
Revision ID for Silicon Revision
(2)
A0
PIC24FJ32MC101 0x0A0C
0x3000PIC24FJ32MC102 0x0A0D
PIC24FJ32MC104 0x0A0F
Note 1: The Device and Revision IDs (DEVID and DEVREV) are located at the last two implemented addresses in
program memory.
2: Refer to the “PIC24FJXXMC Family Flash Programming Specification” (DS75012) for detailed information
on Device and Revision IDs for your specific device.
PIC24FJ32MC104 Family
Silicon Errata and Data Sheet Clarification
PIC24FJ32MC104 FAMILY
DS80549A-page 2 2012 Microchip Technology Inc.
TABLE 2: SILICON ISSUE SUMMARY
Module Feature
Item
Number
Issue Summary
Affected
Revisions
(1)
A0
SPI Frame Sync
Pulse
1. Frame sync pulse is not generated in Master mode when
FRMPOL = 0.
X
SPI Frame Sync
Pulse
2. When in SPI Slave mode, with the frame sync pulse set as an
input, FRMDLY must be set to ‘0’.
X
UART TX Interrupt 3. A TX interrupt may occur before the data transmission is
complete.
X
UART UARTEN 4. The Transmitter Write Pointer does not clear when the UART
is disabled (UARTEN = 0); it requires UTXEN to be set in
order to clear the Write Pointer.
X
CPU div.sd
Instruction
5. When using the div.sd instruction, the overflow bit is not
getting set when an overflow occurs.
X
CPU Interrupt
Disable
6. When a previous DISI instruction is active (i.e., the DISICNT
register is non-zero), and the value of the DISICNT register is
updated manually, the DISICNT register Freezes and disables
interrupts permanently.
X
Oscillator Clock
Switching
7. Clock switch does not abort when device enters Sleep mode. X
Note 1: Only those issues indicated in the last column apply to the current silicon revision.
2012 Microchip Technology Inc. DS80549A-page 3
PIC24FJ32MC104 FAMILY
Silicon Errata Issues
1. Module: SPI
When using the frame sync pulse output feature
(FRMEN bit (SPIxCON2<15>) = 1) in Master
mode (SPIFSD bit (SPIxCON2<14>) = 0), the
frame sync pulse is not being generated with an
active-low pulse (FRMPOL (SPIxCON2<13>)
= 0).
Work around
The Slave Select pin is used as the frame sync
pulse when the frame sync pulse output feature is
used. Mapping the
SSx input function and output
function to the same pad, using the PPS feature,
resolves this issue.
The code in Example 1 assigns SPI1 Slave Select
input and SPI1 Slave Select output to RP15.
EXAMPLE 1:
Affected Silicon Revisions
2. Module: SPI
When in SPI Slave mode (MSTEN bit
(SPIxCON1<5>) = 0) and using the frame sync pulse
output feature (FRMEN bit (SPIxCON2<15>)
= 1
and SPIFSD bit (SPIxCON2<14>) = 0), the Frame
Sync Pulse Edge Select bit must be set to ‘0
(FRMDLY bit (SPIxCON2 <1>) = 0).
Work around
There is no work around. The Frame Sync Pulse
Edge Select (FRMDLY) bit cannot be set to
produce a Frame sync pulse that coincides with
the first bit clock.
Affected Silicon Revisions
3. Module: UART
When using UTXISEL<1:0> = 01 (interrupt when
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.
EXAMPLE 2:
Affected Silicon Revisions
4. Module: UART
The Transmitter Write Pointer does not get cleared
when the UART module is disabled (UARTEN = 0)
and it requires the UTXEN bit to be set in order to
clear the Write Pointer.
Work around
Do not load data into the TX FIFO (register) before
setting the UTXEN bit.
Affected Silicon Revisions
Note: This document summarizes all silicon
errata issues from all revisions of silicon,
previous as well as current. Only the
issues indicated by the shaded column in
the following tables apply to the current
silicon revision (A0).
A0
X
A0
X
/* Assign SPI1 Slave Select Input to RP15 */
RPINR21bits.SS1R = 15;
/* Assign peripheral output function SPI1
to RP15 */
RPOR7bits.RP15R = 0b01001;
A0
X
A0
X
// in UART1 initialization code
...
// Set to generate TX interrupt when all
// transmit operations are complete.
U1STAbits.UTXISEL0 = 1;
U1STAbits.UTXISEL1 = 0;
...
U1TXInterrupt(void)
{
// wait for the transmit buffer to be
// empty and then process interrupt.
while(U1STAbits.TRMT==0);
...

PIC24FJ32MC102-E/TL

Mfr. #:
Manufacturer:
Microchip Technology
Description:
16-bit Microcontrollers - MCU 16bit Mtr Cnt Fam 16 MIPS 32KBFLSH 2KBRAM
Lifecycle:
New from this manufacturer.
Delivery:
DHL FedEx Ups TNT EMS
Payment:
T/T Paypal Visa MoneyGram Western Union