MSSP Module Silicon Errata Sheet

MSSP MODULE
MSSP Module Silicon/Data Sheet Errata
The PICmicro® microcontrollers you have received all
exhibit anomalous behavior in their Master SSP
(MSSP) modules, as described in this document. They
otherwise conform functionally to the descriptions
provided in their respective Device Data Sheets and
Reference Manuals, as amended by silicon release
errata for particular devices.
Users are encouraged to review the latest Device Data
Sheets and errata available for additional information
concerning an individual device. These documents
may be obtained directly from the Microchip corporate
web site, at www.microchip.com.
1. Module: I2C™ (Slave Mode)
In its current implementation, the module may fail
to correctly recognize certain Repeated Start
conditions. For this discussion, a Repeated Start is
defined as a Start condition presented to the bus
after an initial valid Start condition has been recognized and the Start status bit (SSPSTAT<3>) has
been set and before a valid Stop condition is
received.
These issues are expected to be resolved in future
silicon revisions of the designated parts.
If a Repeated Start is not recognized, a loss of
synchronization between the Master and Slave
may occur; the condition may continue until the
module is reset. A NACK condition, generated by
the Slave for any reason, will not reset the module.
Silicon issues 1 and 2 affect all silicon revisions of the
following devices:
This failure has been observed only under two
circumstances:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
PIC16C717
PIC16C770
PIC16C771
PIC16C773
PIC16C774
PIC16F737
PIC16F747
PIC16F767
PIC16F777
PIC16F872
PIC16F873
PIC16F873A
PIC16F874
PIC16F874A
PIC16F876
PIC16F876A
PIC16F877
PIC16F877A
PIC17C752
PIC17C756
PIC17C756A
PIC17C762
PIC17C766
PIC18C242
PIC18C252
PIC18C442
PIC18C452
PIC18C601
PIC18C801
PIC18C658
PIC18C858
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
© 2006 Microchip Technology Inc.
PIC18F2220
PIC18F2320
PIC18F242
PIC18F2439
PIC18F248
PIC18F252
PIC18F2539
PIC18F258
PIC18F4220
PIC18F4320
PIC18F442
PIC18F4439
PIC18F448
PIC18F452
PIC18F4539
PIC18F458
PIC18F6520
PIC18F6525
PIC17F6585
PIC18F6620
PIC18F6621
PIC18F6680
PIC18F6720
PIC18F8520
PIC18F8525
PIC18F8585
PIC18F8620
PIC18F8621
PIC18F8680
PIC18F8720
• A Repeated Start occurs within the frame of a
data or address byte. The unexpected Start
condition may be erroneously interpreted as a
data bit, provided that the required conditions
for setup and hold times are met.
• A Repeated Start condition occurs between two
back-to-back slave address matches in the
same Slave, with the R/W bit set to Read (= 1)
in both cases. (This circumstance is regarded
as being unlikely in normal operation.)
Work around
A time-out routine should be used to monitor the
module’s operation. The timer is enabled upon the
receipt of a valid Start condition; if a time-out
occurs, the module is reset. The length of the timeout period will vary from application to application
and will need to be determined by the user.
Two methods are suggested to reset the module:
1. Change the mode of the module to something
other than the desired mode by changing the settings of bits, SSPM3:SSPM0 (SSPCON1<3:0>);
then, change the bits back to the desired
configuration.
2. Disable the module by clearing the SSPEN bit
(SSPCON1<5>); then, re-enable the module
by setting the bit.
Other methods may be available.
DS80131E-page 1
MSSP MODULE
Clarifications/Corrections to the Data
Sheets
Note:
Items 1-3 apply to the Data Sheets for the
following devices:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
PIC16C717/770/771 (DS41120B)
PIC16C773/774 (DS30275A)
PIC16F872 (DS30221B)
PIC16F873/874/876/877 (DS30292C)
PIC16F873A/874A/876A/877A
(DS39582B)
PIC17C752/756A/762/766 (DS30289B)
PIC18C242/252/442/452 (DS39026C)
PIC18C601/801 (DS39541A)
PIC18C658/858 (DS30475A)
PIC18F242/252/442/452 (DS39564B)
PIC18F2220/2320/4220/4320
(DS39599C)
PIC18F2439/2539/4439/4539
(DS30485A)
PIC18F6520/6620/6720/8520/8620/
8720 (DS39609B)
PIC18F6585/6680/8585/8680
(DS30491C)
1. Module: MSSP (SPI Mode)
The description of the operation of the CKE bit
(SSPSTAT<6>) is clarified. Please substitute the
description in Register 1, below, for all occurrences
of the existing text for the SSPSTAT register, bit 6
(new text in bold).
Note:
This text refers only to the operation of
the CKE bit in SPI mode; its operation
in I2C mode is unchanged. For those
data sheets that describe the SSPSTAT
register in separate locations for SPI
and I2C modes, this description applies
only to the register titled “SSPSTAT
Register (SPI Mode)”.
2. Module: MSSP (SPI Slave Mode)
The description of the operation of SPI Slave
mode is clarified as follows: the state of the clock
line (SCK) must match the polarity for the Idle state
before enabling the module.
The subsection of the “MSSP Module” chapter,
entitled “Slave Mode” (Subsection 3.6 in the
majority of data sheets, Subsection 3.5 in others),
is amended by adding the following paragraph to
the end of the existing text:
“Before enabling the module in SPI Slave mode,
the clock line must match the proper Idle state.
The clock line can be observed by reading the
SCK pin. The Idle state is determined by the CKP
bit (SSPCON1<4>) .”
REGISTER 1:
bit 6
SSPSTAT: MSSP STATUS REGISTER (EXCERPT)
CKE: SPI Clock Edge Select bit
1 = Transmit occurs on transition from active to Idle clock state
0 = Transmit occurs on transition from Idle to active clock state
Note:
DS80131E-page 2
Polarity of clock state is set by the CKP bit (SSPCON1<4>).
© 2006 Microchip Technology Inc.
MSSP MODULE
3. Module: MSSP (I2C Mode)
The table for the I2C Baud Rate Generator clock
rates is revised. Replace the I2C Clock Rate Table
with the following:
I2C™ CLOCK RATE w/BRG
TABLE 1:
FOSC
FCY
FCY * 2
BRG Value
FSCL
(2 Rollovers of BRG)
40 MHz
10 MHz
20 MHz
18h
400 kHz(1)
40 MHz
10 MHz
20 MHz
1Fh
312.5 kHz
40 MHz
10 MHz
20 MHz
63h
100 kHz
16 MHz
4 MHz
8 MHz
09h
400 kHz(1)
16 MHz
4 MHz
8 MHz
0Ch
308 kHz
16 MHz
4 MHz
8 MHz
27h
100 kHz
4 MHz
1 MHz
2 MHz
02h
333 kHz(1)
4 MHz
1 MHz
2 MHz
09h
100 kHz
4 MHz
1 MHz
2 MHz
00h
1 MHz(1)
Note 1:
The I2C™ interface does not conform to the 400 kHz I2C specification (which applies to rates greater than
100 kHz) in all details, but may be used with care where higher rates are required by the application.
© 2006 Microchip Technology Inc.
DS80131E-page 3
MSSP MODULE
4. Module: MSSP (I2C Mode)
Note:
Item 4 applies to the Data Sheets for the
following devices:
•
•
•
•
•
PIC16C717/770/771 (DS41120B)
PIC16C773/774 (DS30275A)
PIC16F872 (DS30221B)
PIC16F873/874/876/877 (DS30292C)
PIC16F873A/874A/876A/877A
(DS39582B)
The description of the I2C pins related to the TRIS
bits is clarified. To ensure proper communication of
the I2C Slave mode, the TRIS bits (TRISx [SDA,
MOVF
IORLW
ANDLW
TRISC, W
0x18
B’11111001’
MOVWF
TRISC
DS80131E-page 4
;
;
;
;
SCL]) corresponding to the I2C pins must be set to
‘1’. If any TRIS bits (TRISx<7:0>) of the port containing the I2C pins (PORTx [SDA, SCL]) are
changed in software during I2C communication
using a Read-Modify-Write instruction (BSF, BCF),
then the I2C mode may stop functioning properly
and I2C communication may suspend. Do not
change any of the TRISx bits (TRIS bits of the port
containing the I2C pins) using the instruction BSF
or BCF during I2C communication. If it is absolutely
necessary to change the TRISx bits during
communication, the following method can be
used:
Example for a 40-pin part such as the PIC16F877A
Ensures <4:3> bits are ‘11’
Sets <2:1> as output, but will not alter other bits
User can use their own logic here, such as IORLW, XORLW and ANDLW
© 2006 Microchip Technology Inc.
MSSP MODULE
REVISION HISTORY
Revision A Document (7/2002):
Original version (I2C Slave Issue)
Revision B Document (1/2003):
Clarification of original issue to include Restart
conditions. Addition of data sheet clarification 1 (SPI
Mode, CKE bit).
Revision C Document (3/2003):
Addition of data sheet clarification 2 (SPI Slave Mode,
operation).
Revision D Document (9/2004):
Updated list of affected devices for silicon issue 1 (I2C
– Slave Mode) and 2 (MSSP – SPI, Slave Mode),
removed silicon issue 3 (I2C – Slave Mode) and added
data sheet clarifications 3 and 4 (MSSP – I2C Mode).
Revision E Document (7/2006):
Removed silicon issue 2 (MSSP – SPI, Slave Mode).
© 2006 Microchip Technology Inc.
DS80131E-page 5
MSSP MODULE
NOTES:
DS80131E-page 6
© 2006 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, microID, MPLAB, PIC, PICmicro, PICSTART,
PRO MATE, PowerSmart, rfPIC, and SmartShunt are
registered trademarks of Microchip Technology Incorporated
in the U.S.A. and other countries.
AmpLab, FilterLab, Migratable Memory, 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, ECAN,
ECONOMONITOR, FanSense, FlexROM, fuzzyLAB,
In-Circuit Serial Programming, ICSP, ICEPIC, Linear Active
Thermistor, Mindi, MiWi, MPASM, MPLIB, MPLINK, PICkit,
PICDEM, PICDEM.net, PICLAB, PICtail, PowerCal,
PowerInfo, PowerMate, PowerTool, REAL ICE, rfLAB,
rfPICDEM, Select Mode, Smart Serial, SmartTel, 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.
© 2006, 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 Mountain View, California. The
Company’s quality system processes and procedures are for its
PICmicro® 8-bit MCUs, 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.
© 2006 Microchip Technology Inc.
DS80131E-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
Australia - Sydney
Tel: 61-2-9868-6733
Fax: 61-2-9868-6755
India - Bangalore
Tel: 91-80-4182-8400
Fax: 91-80-4182-8422
China - Beijing
Tel: 86-10-8528-2100
Fax: 86-10-8528-2104
India - New Delhi
Tel: 91-11-5160-8631
Fax: 91-11-5160-8632
Austria - Wels
Tel: 43-7242-2244-3910
Fax: 43-7242-2244-393
Denmark - Copenhagen
Tel: 45-4450-2828
Fax: 45-4485-2829
China - Chengdu
Tel: 86-28-8676-6200
Fax: 86-28-8676-6599
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
China - Fuzhou
Tel: 86-591-8750-3506
Fax: 86-591-8750-3521
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
China - Hong Kong SAR
Tel: 852-2401-1200
Fax: 852-2401-3431
Korea - Gumi
Tel: 82-54-473-4301
Fax: 82-54-473-4302
China - Qingdao
Tel: 86-532-8502-7355
Fax: 86-532-8502-7205
Korea - Seoul
Tel: 82-2-554-7200
Fax: 82-2-558-5932 or
82-2-558-5934
Asia Pacific Office
Suites 3707-14, 37th Floor
Tower 6, The Gateway
Habour City, Kowloon
Hong Kong
Tel: 852-2401-1200
Fax: 852-2401-3431
Atlanta
Alpharetta, GA
Tel: 770-640-0034
Fax: 770-640-0307
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
China - Shanghai
Tel: 86-21-5407-5533
Fax: 86-21-5407-5066
China - Shenyang
Tel: 86-24-2334-2829
Fax: 86-24-2334-2393
China - Shenzhen
Tel: 86-755-8203-2660
Fax: 86-755-8203-1760
China - Shunde
Tel: 86-757-2839-5507
Fax: 86-757-2839-5571
China - Wuhan
Tel: 86-27-5980-5300
Fax: 86-27-5980-5118
China - Xian
Tel: 86-29-8833-7250
Fax: 86-29-8833-7256
Malaysia - Penang
Tel: 60-4-646-8870
Fax: 60-4-646-5086
Philippines - Manila
Tel: 63-2-634-9065
Fax: 63-2-634-9069
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
Singapore
Tel: 65-6334-8870
Fax: 65-6334-8850
Taiwan - Hsin Chu
Tel: 886-3-572-9526
Fax: 886-3-572-6459
Taiwan - Kaohsiung
Tel: 886-7-536-4818
Fax: 886-7-536-4803
Taiwan - Taipei
Tel: 886-2-2500-6610
Fax: 886-2-2508-0102
Thailand - Bangkok
Tel: 66-2-694-1351
Fax: 66-2-694-1350
San Jose
Mountain View, CA
Tel: 650-215-1444
Fax: 650-961-0286
Toronto
Mississauga, Ontario,
Canada
Tel: 905-673-0699
Fax: 905-673-6509
06/08/06
DS80131E-page 8
© 2006 Microchip Technology Inc.