PIC18F97J60 Family Rev. A0 Silicon Errata

PIC18F97J60 FAMILY
PIC18F97J60 Family Rev. A0 Silicon Errata
The PIC18F97J60 family parts you have received
conform functionally to the Device Data Sheet
(DS39762D), except for the anomalies described
below. Any Data Sheet Clarification issues related to
the PIC18F97J60 family will be reported in a separate
Data Sheet errata. Please check the Microchip web site
for any existing issues.
1. Module: Resets
The following silicon errata apply only to
PIC18F97J60
family
devices
with
these
Device/Revision IDs:
Work around
Part Number
Device ID
Revision ID
PIC18F66J60
0001 1000 000
00000
PIC18F66J65
0001 1111 000
00000
PIC18F67J60
0001 1111 001
00000
PIC18F86J60
0001 1000 001
00000
PIC18F86J65
0001 1111 010
00000
PIC18F87J60
0001 1111 011
00000
PIC18F96J60
0001 1000 010
00000
PIC18F96J65
0001 1111 100
00000
PIC18F97J60
0001 1111 101
00000
The Device IDs (DEVID1 and DEVID2) are located at
addresses 3FFFFEh:3FFFFFh in the device’s
configuration space. They are shown in binary in the
format “DEVID2 DEVID1”.
MCLR and BOR Resets behave as a POR Reset.
Special Function Registers’ Reset values after a
MCLR or BOR would have the same values as
those after a POR. All other Resets behave as
described in the data sheet.
None.
Date Codes that pertain to this issue:
All engineering and production devices.
2. Module: I/O (PORTJ)
Note:
This issue is only applicable to the
100-pin device.
When configured to operate in Microcontroller
mode (CONFIG3L<EMB1:0> = 11), PORTJ pins
do not go to a high-impedance state immediately
after a POR Reset. Instead, PORTJ<4,0> are
driven low, while all other PORTJ pins are driven
high, until the device exits the Reset condition
(refer to Section 4.5.1 “Time-out Sequence” of
the Device Data Sheet for details on when device
exits Reset condition) before transitioning to a
high-impedance state. Note that since MCLR and
BOR Resets are also treated as a POR Reset (see
errata issue #1), PORTJ pins will also be driven as
outputs until the device exits these Reset
conditions.
Work around
If using a PORTJ pin as an input, make sure to
check that your circuit will not create a short-circuit
condition during a Reset. For example, if you need
to have a direct pull-down to ground input, do this
on PORTJ<4> or PORTJ<0>, since they are
temporary driven low. If using a PORTJ pin as an
output, then use a pin that will temporarily drive
low for driving active-high loads, and use a pin that
temporarily will drive high for driving active-low
loads. This way, the temporary output signals are
in the Idle state.
Date Codes that pertain to this issue:
All engineering and production devices.
© 2008 Microchip Technology Inc.
DS80292D-page 1
PIC18F97J60 FAMILY
3. Module: I/O (PORTJ) and External
Memory Bus
Note:
This issue is only applicable to the
100-pin device.
In
an
Extended
Microcontroller
mode
(CONFIG3L<EMB1:0> = 00, 01 or 10), each
control signal on PORTJ is supposed to be driven
to its Idle state. However, the control signals on
PORTJ pins go to a high-impedance state for a
brief interval after a MCLR Reset. The brief loss of
control signals may cause the corruption of data in
memory devices connected to the External
Memory Bus (EMB).
Work around
To maintain the default states on the control lines,
use pull-up or pull-down resistors on all PORTJ
pins (pull-down on PORTJ<4,0>, pull-up on all
others).
Date Codes that pertain to this issue:
All engineering and production devices.
4. Module: Ethernet (Buffer Memory)
The receive hardware may corrupt the circular
receive buffer (including the Next Packet Pointer
and receive status vector fields) when an even value
is programmed into the ERXRDPTH:ERXRDPTL
registers.
Work around
Ensure that only odd addresses are written to the
ERXRDPT registers. Assuming that ERXND contains an odd value, many applications can derive a
suitable value to write to ERXRDPT by subtracting 1
from the Next Packet Pointer (a value always
ensured to be even because of hardware padding)
and then compensating for a potential ERXST to
ERXND wraparound.
Assuming that the receive buffer area does not
span the 1FFFh to 0000h memory boundary, the
logic in Example 1 will ensure that ERXRDPT is
programmed with an odd value.
EXAMPLE 1:
if (Next Packet Pointer – 1 < ERXST) or
(Next Packet Pointer – 1 > ERXND)
then:
ERXRDPT = ERXND
else:
ERXRDPT = Next Packet Pointer – 1
Date Codes that pertain to this issue:
All engineering and production devices.
DS80292D-page 2
© 2008 Microchip Technology Inc.
PIC18F97J60 FAMILY
5. Module: Ethernet (MIIM)
When writing to any PHY register through the MIIM
interface’s MIWRL and MIWRH registers, the low
byte actually written to the PHY register may be
corrupted. The corruption occurs when the
following actions are taken:
• The application writes to MIWRL
• The PIC® MCU core executes any instruction
that reads or writes to any memory address that
has the Least Significant six address bits of 36h
(‘b110110)
• The application writes to MIWRH
For example, the following sequence will result in
a corrupted write to a PHY register:
MOVFF
NOP
MOVFF
0xCF5, MIWRL
0xCF6, MIWRH
In this example, 0xCF5 and 0xCF6 are GPR
memory locations that the application wishes to
write to the current PHY register defined by the
MIREGADR SFR. When the PIC MCU core
reads from the GPR at address 0xCF6
(‘b110011110110), the value originally written to
MIWRL will be corrupted.
Work around 1
Ensure that following a write to MIWRL, the firmware does not access any of the problem memory
locations prior to writing to MIWRH. After finished
writing to MIWRH, normal operation can resume.
If interrupts are enabled, disable them prior to writing to MIWRL and MIWRH to prevent an Interrupt
Service Routine (ISR) from performing any reads
or writes to a problem memory address.
Special care must be taken to ensure that the
source data to be written to MIWRH does not
result in a problem memory access.
The following PHY write sequence avoids the
problem:
1. Copy the low byte, to be written to the PHY, into
the PRODL register.
PRODL is at address FF3h and not subject to
the memory address issue.
2. Copy the high byte, to be written to the PHY,
into the PRODH register.
PRODH is at address FF4h and not subject to
the memory address issue.
3. Disable all interrupts by clearing GIEH and
GIEL in the INTCON register.
4. Move PRODL into MIWRL.
5. Wait one instruction cycle, as required by the
MAC host interface logic.
6. Move PRODH into MIWRH.
7. Enable all interrupts that are needed by
restoring GIEH and GIEL in INTCON.
© 2008 Microchip Technology Inc.
Work around 2
If you cannot disable interrupts, as specified in
Work around 1, because the application cannot
tolerate interrupt latency variations:
• Perform the write (with interrupts enabled), but
• Verify the correct values were written by
reading the PHY register
If a corrupted value was written due to an interrupt
occurring, perform the write again and reverify.
The source data must be stored in a non-problem
location.
The application should follow the following
procedure:
1. Copy the low byte, to be written to the PHY, into
the PRODL register.
PRODL is at address FF3h and not subject to
the memory address issue.
2. Copy the high byte, to be written to the PHY,
into the PRODH register.
PRODH is at address FF4h and not subject to
the memory address issue.
3. Move PRODL into MIWRL.
4. Wait one instruction cycle, as required by the
MAC host interface logic.
5. Move PRODH into MIWRH.
6. Wait two TCY and then poll the BUSY bit
(MISTAT<0>) until it is clear.
7. Perform a PHY register read of the same
location.
8. Compare the read result with the original value
copied to the PRODH:PRODL registers. If they
do not match, return to step 1.
Date Codes that pertain to this issue:
All engineering and production devices.
6. Module: Ethernet (RX Filter)
When enabled, the Pattern Match receive filter
may allow some packets with an incorrect data
pattern to be received. Also, in certain configurations, packets with a valid pattern may be
incorrectly discarded.
Work around
Do not use the Pattern Match hardware filter.
Instead, use the Unicast, Mutlicast, Broadcast and
Hash Table receive filters to accept all needed
packets and filter out unwanted ones in software.
Date Codes that pertain to this issue:
All engineering and production devices.
DS80292D-page 3
PIC18F97J60 FAMILY
7. Module: Ethernet (TX)
When configured for half duplex and a transmit
operation encounters unusual collision timing,
there is a small chance that the Ethernet transmit
engine will internally deadlock. The PHY will stop
transmitting the packet and normal RX operations
will continue. However, the TXRTS bit
(ECON1<3>) will stay set indefinitely. The TXIF
(EIR<3>) and TXERIF (EIR<1>) bits will not
become set.
This deadlock condition applies only to half-duplex
operation and is most readily observable when the
network has a duplex mismatch (i.e., PIC18F97J60
family device is configured for half duplex and the
remote node is configured for full duplex). In most
cases, high network utilization is needed to observe
the issue.
Work around
To prevent most transmit deadlock conditions,
issue a TX Logic Reset prior to transmitting each
packet:
1.
2.
3.
4.
Set TXRST (ECON1<7>)
Clear TXRST
Wait 1.6 μs or longer
Set TXRTS to start the transmission.
Issuing a TX Logic Reset may cause the Ethernet
transmit error interrupt to occur and the associated
TXERIF bit to become set, which can be ignored.
To detect and recover from any possible deadlock
conditions, applications should implement a timer to
poll the TXRTS bit. If the Ethernet hardware enters
the deadlock state and fails to clear this bit by the
time the timer expires, software should manually
clear the TXRTS bit, issue a TX Logic Reset and
then set the TXRTS bit to retry transmission. The
timer should be cleared and restarted whenever the
application sets TXRTS. The timer expiration time
should be chosen to allow adequate time for
ordinary packets to finish transmitting, after
accounting for possible delays due to the medium
being occupied by other nodes. For example, a
time-out value of 3 ms is suitable since it will allow a
maximum length 1518-byte packet to be transmitted at 10Base-T speeds while giving reasonable
margin to account for potential collisions.
8. Module: Ethernet (DMA)
When the DMA is configured to compute an IP
checksum, there is a small chance that an incoming packet receive event will cause the DMA to
internally deadlock. In these cases, the DMAST bit
(ECON1<5>) stays set indefinitely, and the DMA
done interrupt never occurs.
Work around
Perform checksum calculations in software. Use
the DMA only for copy operations.
Date Codes that pertain to this issue:
All engineering and production devices.
9. Module: I/O (PORTJ)
Note:
This issue is only applicable to the
80-pin device.
The weak internal pull-up resistors on pins RJ4
and RJ5 cannot be enabled on the PIC18F86J60,
PIC18F86J65 and PIC18F87J60 devices. Setting
the RJPU bit (PORTA<7>) has no effect on the I/O
pin state.
Work around
Install external pull-up resistors on RJ4 and RJ5.
Alternatively, use any of the PORTB, PORTD or
PORTE pins which all have weak internal pull ups.
Date Codes that pertain to this issue:
All engineering and production devices.
Date Codes that pertain to this issue:
All engineering and production devices.
DS80292D-page 4
© 2008 Microchip Technology Inc.
PIC18F97J60 FAMILY
REVISION HISTORY
Rev A Document (9/2006)
Original version of this document. Includes silicon
issues 1 (Resets), 2 (I/O – PORTJ), 3 (I/O (PORTJ) and
External Memory Bus), 4 (Ethernet – Buffer Memory)
and 5 (Ethernet – PHY).
Rev B Document (2/2007)
Modified issue 5 (Ethernet – PHY) and added issue 6
(Ethernet – Buffer Memory).
Rev C Document (6/2007)
Removed previous silicon issues 5 (Ethernet – PHY)
and 6 (Ethernet – Buffer Memory). Added new silicon
issues 5 (Ethernet – MIIM) and 6 (Ethernet – RX
Filter).
Rev D Document (6/2008)
Added new silicon issues 7 (Ethernet – TX),
8 (Ethernet – DMA) and 9 (I/O – PORTJ).
© 2008 Microchip Technology Inc.
DS80292D-page 5
PIC18F97J60 FAMILY
NOTES:
DS80292D-page 6
© 2008 Microchip Technology Inc.
Note the following details of the code protection feature on Microchip devices:
•
Microchip products meet the specification contained in their particular Microchip Data Sheet.
•
Microchip believes that its family of products is one of the most secure families of its kind on the market today, when used in the
intended manner and under normal conditions.
•
There are dishonest and possibly illegal methods used to breach the code protection feature. All of these methods, to our
knowledge, require using the Microchip products in a manner outside the operating specifications contained in Microchip’s Data
Sheets. Most likely, the person doing so is engaged in theft of intellectual property.
•
Microchip is willing to work with the customer who is concerned about the integrity of their code.
•
Neither Microchip nor any other semiconductor manufacturer can guarantee the security of their code. Code protection does not
mean that we are guaranteeing the product as “unbreakable.”
Code protection is constantly evolving. We at Microchip are committed to continuously improving the code protection features of our
products. Attempts to break Microchip’s code protection feature may be a violation of the Digital Millennium Copyright Act. If such acts
allow unauthorized access to your software or other copyrighted work, you may have a right to sue for relief under that Act.
Information contained in this publication regarding device
applications and the like is provided only for your convenience
and may be superseded by updates. It is your responsibility to
ensure that your application meets with your specifications.
MICROCHIP MAKES NO REPRESENTATIONS OR
WARRANTIES OF ANY KIND WHETHER EXPRESS OR
IMPLIED, WRITTEN OR ORAL, STATUTORY OR
OTHERWISE, RELATED TO THE INFORMATION,
INCLUDING BUT NOT LIMITED TO ITS CONDITION,
QUALITY, PERFORMANCE, MERCHANTABILITY OR
FITNESS FOR PURPOSE. Microchip disclaims all liability
arising from this information and its use. Use of Microchip
devices in life support and/or safety applications is entirely at
the buyer’s risk, and the buyer agrees to defend, indemnify and
hold harmless Microchip from any and all damages, claims,
suits, or expenses resulting from such use. No licenses are
conveyed, implicitly or otherwise, under any Microchip
intellectual property rights.
Trademarks
The Microchip name and logo, the Microchip logo, Accuron,
dsPIC, KEELOQ, KEELOQ logo, MPLAB, PIC, PICmicro,
PICSTART, PRO MATE, rfPIC and SmartShunt are registered
trademarks of Microchip Technology Incorporated in the
U.S.A. and other countries.
FilterLab, Linear Active Thermistor, MXDEV, MXLAB,
SEEVAL, SmartSensor and The Embedded Control Solutions
Company are registered trademarks of Microchip Technology
Incorporated in the U.S.A.
Analog-for-the-Digital Age, Application Maestro, CodeGuard,
dsPICDEM, dsPICDEM.net, dsPICworks, dsSPEAK, ECAN,
ECONOMONITOR, FanSense, In-Circuit Serial
Programming, ICSP, ICEPIC, Mindi, MiWi, MPASM, MPLAB
Certified logo, MPLIB, MPLINK, mTouch, PICkit, PICDEM,
PICDEM.net, PICtail, PIC32 logo, PowerCal, PowerInfo,
PowerMate, PowerTool, REAL ICE, rfLAB, Select Mode, Total
Endurance, UNI/O, WiperLock and ZENA are trademarks of
Microchip Technology Incorporated in the U.S.A. and other
countries.
SQTP is a service mark of Microchip Technology Incorporated
in the U.S.A.
All other trademarks mentioned herein are property of their
respective companies.
© 2008, Microchip Technology Incorporated, Printed in the
U.S.A., All Rights Reserved.
Printed on recycled paper.
Microchip received ISO/TS-16949:2002 certification for its worldwide
headquarters, design and wafer fabrication facilities in Chandler and
Tempe, Arizona; Gresham, Oregon and design centers in California
and India. The Company’s quality system processes and procedures
are for its PIC® MCUs and dsPIC® DSCs, KEELOQ® code hopping
devices, Serial EEPROMs, microperipherals, nonvolatile memory and
analog products. In addition, Microchip’s quality system for the design
and manufacture of development systems is ISO 9001:2000 certified.
© 2008 Microchip Technology Inc.
DS80292D-page 7
WORLDWIDE SALES AND SERVICE
AMERICAS
ASIA/PACIFIC
ASIA/PACIFIC
EUROPE
Corporate Office
2355 West Chandler Blvd.
Chandler, AZ 85224-6199
Tel: 480-792-7200
Fax: 480-792-7277
Technical Support:
http://support.microchip.com
Web Address:
www.microchip.com
Asia Pacific Office
Suites 3707-14, 37th Floor
Tower 6, The Gateway
Harbour City, Kowloon
Hong Kong
Tel: 852-2401-1200
Fax: 852-2401-3431
India - Bangalore
Tel: 91-80-4182-8400
Fax: 91-80-4182-8422
India - New Delhi
Tel: 91-11-4160-8631
Fax: 91-11-4160-8632
Austria - Wels
Tel: 43-7242-2244-39
Fax: 43-7242-2244-393
Denmark - Copenhagen
Tel: 45-4450-2828
Fax: 45-4485-2829
India - Pune
Tel: 91-20-2566-1512
Fax: 91-20-2566-1513
France - Paris
Tel: 33-1-69-53-63-20
Fax: 33-1-69-30-90-79
Japan - Yokohama
Tel: 81-45-471- 6166
Fax: 81-45-471-6122
Germany - Munich
Tel: 49-89-627-144-0
Fax: 49-89-627-144-44
Atlanta
Duluth, GA
Tel: 678-957-9614
Fax: 678-957-1455
Boston
Westborough, MA
Tel: 774-760-0087
Fax: 774-760-0088
Chicago
Itasca, IL
Tel: 630-285-0071
Fax: 630-285-0075
Dallas
Addison, TX
Tel: 972-818-7423
Fax: 972-818-2924
Detroit
Farmington Hills, MI
Tel: 248-538-2250
Fax: 248-538-2260
Kokomo
Kokomo, IN
Tel: 765-864-8360
Fax: 765-864-8387
Los Angeles
Mission Viejo, CA
Tel: 949-462-9523
Fax: 949-462-9608
Santa Clara
Santa Clara, CA
Tel: 408-961-6444
Fax: 408-961-6445
Toronto
Mississauga, Ontario,
Canada
Tel: 905-673-0699
Fax: 905-673-6509
Australia - Sydney
Tel: 61-2-9868-6733
Fax: 61-2-9868-6755
China - Beijing
Tel: 86-10-8528-2100
Fax: 86-10-8528-2104
China - Chengdu
Tel: 86-28-8665-5511
Fax: 86-28-8665-7889
Korea - Daegu
Tel: 82-53-744-4301
Fax: 82-53-744-4302
China - Hong Kong SAR
Tel: 852-2401-1200
Fax: 852-2401-3431
Korea - Seoul
Tel: 82-2-554-7200
Fax: 82-2-558-5932 or
82-2-558-5934
China - Nanjing
Tel: 86-25-8473-2460
Fax: 86-25-8473-2470
Malaysia - Kuala Lumpur
Tel: 60-3-6201-9857
Fax: 60-3-6201-9859
China - Qingdao
Tel: 86-532-8502-7355
Fax: 86-532-8502-7205
Malaysia - Penang
Tel: 60-4-227-8870
Fax: 60-4-227-4068
China - Shanghai
Tel: 86-21-5407-5533
Fax: 86-21-5407-5066
Philippines - Manila
Tel: 63-2-634-9065
Fax: 63-2-634-9069
China - Shenyang
Tel: 86-24-2334-2829
Fax: 86-24-2334-2393
Singapore
Tel: 65-6334-8870
Fax: 65-6334-8850
China - Shenzhen
Tel: 86-755-8203-2660
Fax: 86-755-8203-1760
Taiwan - Hsin Chu
Tel: 886-3-572-9526
Fax: 886-3-572-6459
China - Wuhan
Tel: 86-27-5980-5300
Fax: 86-27-5980-5118
Taiwan - Kaohsiung
Tel: 886-7-536-4818
Fax: 886-7-536-4803
China - Xiamen
Tel: 86-592-2388138
Fax: 86-592-2388130
Taiwan - Taipei
Tel: 886-2-2500-6610
Fax: 886-2-2508-0102
China - Xian
Tel: 86-29-8833-7252
Fax: 86-29-8833-7256
Thailand - Bangkok
Tel: 66-2-694-1351
Fax: 66-2-694-1350
Italy - Milan
Tel: 39-0331-742611
Fax: 39-0331-466781
Netherlands - Drunen
Tel: 31-416-690399
Fax: 31-416-690340
Spain - Madrid
Tel: 34-91-708-08-90
Fax: 34-91-708-08-91
UK - Wokingham
Tel: 44-118-921-5869
Fax: 44-118-921-5820
China - Zhuhai
Tel: 86-756-3210040
Fax: 86-756-3210049
01/02/08
DS80292D-page 8
© 2008 Microchip Technology Inc.