PIC18F2331/2431/4331/4431 PIC18F2331/2431/4331/4431 Rev. A2 Silicon Errata The PIC18F2331/2431/4331/4431 parts you have received conform functionally to the Device Data Sheet (DS39616), except for the anomalies described below. Any Data Sheet Clarification issues related to the PIC18F2331/2431/4331/4431 will be reported in a separate Data Sheet errata. Please check the Microchip web site for any existing issues. All the issues listed here will be addressed in future revisions of the PIC18F2331/2431/4331/4431 silicon. The following silicon errata apply only to PIC18F2331/2431/4331/4431 devices with these Device/Revision IDs: 2. Module: In-Circuit Serial ProgrammingTM (ICSPTM) A small number of parts may be difficult to program successfully at certain voltages using the MPLAB(R) ICD 2. Work around If such a part is encountered, attempt to program several times. If unsuccessful, adjust VDD up or down slightly, within the operating range of the device. If this is not possible, then try another part. Date Codes that pertain to this issue: Part Number Device ID Revision ID PIC18F2331 00 1000 111 00001 PIC18F2431 00 1000 110 00001 PIC18F4331 00 1000 101 00001 PIC18F4431 00 1000 100 00001 The Device IDs (DEVID1 and DEVID2) are located at addresses 3FFFFEh:3FFFFFh in the device's configuration space. They are shown in hexadecimal in the format "DEVID2 DEVID1". All engineering and production devices. 3. Module: PCPWM When the PCPWM is operated in Complementary mode with a non-zero dead-time value and the duty cycle results in an active-low time of less than 1 TCY, the PWM generator will miss the rising edge for a new PWM period and the PWM output will alternate between one PWM period high and one PWM period low. Work around 1. Module: Timer5 (R) In Debug mode (using the MPLAB ICD 2), if "Freeze on Halt" is selected (an option in the MPLAB ICD 2 settings under the Program tab), TMR5L will not increment properly when single stepping if the prescaler is not set to 1:1. Work around When in Complementary mode with a non-zero dead-time value, ensure that the active-low time will always be greater than 1 TCY. In other words, when dead-time is not equal to zero, ensure that: PDCH:PDCL < (4 * PTPERH:PTPERL) or PDCH:PDCL > (4 * (PTPERH:PTPERL + 1)) None. Use in Debug mode only with the 1:1 prescaler. Date Codes that pertain to this issue: Date Codes that pertain to this issue: All engineering and production devices. All engineering and production devices. (c) 2005 Microchip Technology Inc. DS80180C-page 1 PIC18F2331/2431/4331/4431 4. Module: PCPWM When the PCPWM is operated in Center-Aligned mode with double updates and the duty cycle alternates on each update between a zero and non-zero value, an incorrect waveform is generated (the PWM output will alternate between one PWM period high and one PWM period low). If in Complementary mode, dead time will not be inserted properly. Work around 7. Module: PCPWM The PTMRH register will read as `00' or the last value written to it, even though the upper four bits of the PWM timer may be different. Writing to PTMRH will effect the upper four bits of the PWM timer when PTMRL is subsequently written. Although the PWM timer operates correctly, the double-buffer circuit does not transfer data to the PTMRH register from the upper four bits of the PWM timer. Do not use zero duty cycle when in Center-Aligned mode with double updates. Instead of zero, set the duty cycle to a small, non-zero value. Work around Date Codes that pertain to this issue: Date Codes that pertain to this issue: All engineering and production devices. All engineering and production devices. 5. Module: PCPWM When the PCPWM is operated in Center-Aligned mode with double updates and the duty cycle alternates on each update between a greater than 100% duty cycle and a non-zero value, an incorrect waveform is generated. PWM operation is not affected. Do not attempt to read PTMRH. 8. Module: PCPWM In Complementary mode with dead-time insertion, when using OVDCOND and OVDCONS to override the PWM outputs, dead time is not inserted correctly when the dead-time prescaler is FOSC/4, FOSC/8 or FOSC/16. Work around Work around Do not use equal to or greater than 100% duty cycle when in Center-Aligned mode with double updates. Ensure that the maximum duty cycle value is always smaller than or equal to the PWM period, i.e., PDCH:PDCL (4 * (PTPERH:PTPERL)). None. Use dead-time prescaler of FOSC/2 in these circumstances. Date Codes that pertain to this issue: All engineering and production devices. 6. Module: PCPWM If dead-time insertion is enabled and it is a nonzero value, glitches in the PWM output will occur under the following conditions: 1. When the PWM Timer is stopped by clearing the PTEN bit. 2. When the duty cycle is changed to zero. Work around 1. Before disabling the PWM timer, ensure that PORTB is set up to maintain a safe state of external hardware and that TRISB is set up to define the pins as outputs. 2. Do not use zero duty cycle when dead-time insertion is enabled. Instead of zero, set the duty cycle to a small, non-zero value (such as `1'). Date Codes that pertain to this issue: All engineering and production devices. 9. Module: Data EEPROM When writing to the data EEPROM, the contents of the data EEPROM memory may not be written as expected if the internal voltage reference is not enabled. Work around Either of two work arounds can be used: 1. Before beginning any writes to the data EEPROM, enable the LVD (any voltage) and wait for the internal voltage reference to become stable. LVD interrupt requests may be ignored. Once the LVD voltage reference is stable, perform all EEPROM writes normally. When writes have been completed, the LVD may be disabled. 2. Configure the BOR as enabled (any voltage). Select a threshold below VDD to allow normal operation. If VDD is below the BOR threshold, the device will be held in Brown-out Reset. Date Codes that pertain to this issue: All engineering and production devices. DS80180C-page 2 (c) 2005 Microchip Technology Inc. PIC18F2331/2431/4331/4431 10. Module: Program Memory 12. Module: EUSART When writing to the program memory, the contents of the program memory may not be written as expected if the internal voltage reference is not enabled. Bit SENDB in the TXSTA register is not automatically cleared by hardware upon completion of transmission of a Sync Break. Work around Check the TRMT bit in TXSTA. If the TRMT bit is set, Break transmission is said to be complete. Either of two workarounds can be used: 1. Before beginning any writes to the program memory, enable the LVD (any voltage) and wait for the internal voltage reference to become stable. LVD interrupt requests may be ignored. Once the LVD voltage reference is stable, perform all program memory writes normally. When writes have been completed, the LVD may be disabled. 2. Configure the BOR as enabled (any voltage). Select a threshold below VDD to allow normal operation. If VDD is below the BOR threshold, the device will be held in BOR Reset. Date Codes that pertain to this issue: Work around 13. Module: EUSART If the transmitter is left enabled while the module is performing an auto-baud operation, an arbitrary data byte may get transmitted. Work around Clear TXEN (TXSTA<5>) before any auto-baud operation and set it after auto-baud is complete. Enable TXEN only when a data byte is to be transmitted. Care must be taken to ensure that the TX pin is pulled high, either through an external resistor, or by making the TX pin an output and writing `1' to it to not disturb the transmit line. All engineering and production devices. 11. Module: Core (DAW Instruction) 14. Module: EUSART The DAW instruction may improperly clear the Carry bit (Status<0>) when executed. This module may perform incorrect auto-baud calculation if the ABDEN (BAUDCON<0>) bit was set while the receive pin was at a low level. Work around Work around Test the Carry bit state before executing the DAW instruction. If the Carry bit is set, increment the next higher byte to be added, using an instruction such as INCFSZ (this instruction does not affect any Status flags and will not overflow a BCD nibble). After the DAW instruction has been executed, process the Carry bit normally (see Example 1). Wait for the RX pin to go high and then set the ABDEN bit. EXAMPLE 1: PROCESSING THE CARRY BIT DURING BCD ADDITIONS MOVLW ADDLW 0x80 0x80 ; .80 (BCD) ; .80 (BCD) BTFSC INCFSZ DAW BTFSC INCFSZ STATUS, C byte2 ; test C ; inc next higher LSB STATUS, C byte2 ; test C ; inc next higher LSB This is repeated for each DAW instruction. 15. Module: EUSART In Asynchronous Receiver mode, the EUSART does not load the SPBRGH value after completion of auto-baud. Work around Do not enable the BRG16 (BAUDCON<3>) bit. If the BRG16 is in use, ensure that the auto-baud SPBRG value does not exceed the 8-bit value. 16. Module: EUSART The CREN (RCSTA<4>) bit is cleared after every auto-baud operation. Work around Upon completion of auto-baud, manually set the CREN bit. Date Codes that pertain to this issue: All engineering and production devices. (c) 2005 Microchip Technology Inc. DS80180C-page 3 PIC18F2331/2431/4331/4431 17. Module: EUSART Writing to the USART/EUSART TXREG register faster than the baud rate in Synchronous mode will overwrite the previous value instead of double-buffering as in Asynchronous mode. Work around Load the first character into TXREG and then wait for a TX interrupt, or check the TXIF bit before writing each additional character to TXREG. 18. Module: EUSART The EUSART cannot receive asynchronous data at the four fastest baud rates (BRGH = 1, BRG16 = 1 and SPBRG < 4). Work around 19. Module: HSADC A IAD (parameter D026) of greater than 300 A (for VDD = 3V) is observed when the device is put into Sleep mode with the HSADC enabled (ADON = 1) without setting the GO/DONE bit so that at least one conversion is performed. Observed IAD will increase in proportion to VDD. Work around If no conversion will be done while in Sleep mode, disable the HSADC module by clearing the ADON bit before entering Sleep mode. If power consumption is an issue for the application, do not put the part into Sleep mode with the HSADC enabled if no conversion is to be performed. Use a slower baud rate or a faster system clock speed. DS80180C-page 4 (c) 2005 Microchip Technology Inc. PIC18F2331/2431/4331/4431 REVISION HISTORY Rev A Document (1/2004) First revision of this document. Silicon issues 1 (Timer5), 2 (In-Circuit Serial Programming), 3-8 (PCPWM), 9 (Data EEPROM), 10 (Program Memory), 11 (Core - DAW Instruction) and 12-18 (EUSART) and Data Sheet Clarification issue 1 (Power-on Reset). Rev B Document (2/2004) Modifications to the Work Around for Silicon issue 3 (PCPWM). Rev C Document (05/2005) Added silicon issue 19 (HSADC). All Data Sheet Clarification issues were removed and placed into a separate Data Sheet Errata. (c) 2005 Microchip Technology Inc. DS80180C-page 5 PIC18F2331/2431/4331/4431 NOTES: DS80180C-page 6 (c) 2005 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's products as critical components in life support systems is not authorized except with express written approval by Microchip. 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, PICMASTER, 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, dsPICDEM, dsPICDEM.net, dsPICworks, ECAN, ECONOMONITOR, FanSense, FlexROM, fuzzyLAB, In-Circuit Serial Programming, ICSP, ICEPIC, Linear Active Thermistor, MPASM, MPLIB, MPLINK, MPSIM, PICkit, PICDEM, PICDEM.net, PICLAB, PICtail, PowerCal, PowerInfo, PowerMate, PowerTool, rfLAB, rfPICDEM, Select Mode, Smart Serial, SmartTel, Total Endurance and WiperLock 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. (c) 2005, Microchip Technology Incorporated, Printed in the U.S.A., All Rights Reserved. Printed on recycled paper. Microchip received ISO/TS-16949:2002 quality system certification for its worldwide headquarters, design and wafer fabrication facilities in Chandler and Tempe, Arizona and Mountain View, California in October 2003. The Company's quality system processes and procedures are for its PICmicro(R) 8-bit MCUs, KEELOQ(R) 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. (c) 2005 Microchip Technology Inc. DS80180C-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-2229-0061 Fax: 91-80-2229-0062 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 - Weis Tel: 43-7242-2244-399 Fax: 43-7242-2244-393 Denmark - Ballerup Tel: 45-4450-2828 Fax: 45-4485-2829 China - Chengdu Tel: 86-28-8676-6200 Fax: 86-28-8676-6599 Japan - Kanagawa Tel: 81-45-471- 6166 Fax: 81-45-471-6122 France - Massy 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 Korea - Seoul Tel: 82-2-554-7200 Fax: 82-2-558-5932 or 82-2-558-5934 Germany - Ismaning Tel: 49-89-627-144-0 Fax: 49-89-627-144-44 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 China - Hong Kong SAR Tel: 852-2401-1200 Fax: 852-2401-3431 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 - Qingdao Tel: 86-532-502-7355 Fax: 86-532-502-7205 Malaysia - Penang Tel:011-604-646-8870 Fax:011-604-646-5086 Philippines - Manila Tel: 011-632-634-9065 Fax: 011-632-634-9069 Singapore Tel: 65-6334-8870 Fax: 65-6334-8850 Italy - Milan Tel: 39-0331-742611 Fax: 39-0331-466781 Netherlands - Drunen Tel: 31-416-690399 Fax: 31-416-690340 England - Berkshire Tel: 44-118-921-5869 Fax: 44-118-921-5820 Taiwan - Kaohsiung Tel: 886-7-536-4818 Fax: 886-7-536-4803 Taiwan - Taipei Tel: 886-2-2500-6610 Fax: 886-2-2508-0102 Taiwan - Hsinchu Tel: 886-3-572-9526 Fax: 886-3-572-6459 Los Angeles Mission Viejo, CA Tel: 949-462-9523 Fax: 949-462-9608 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 04/20/05 DS80180C-page 8 (c) 2005 Microchip Technology Inc.