ATMEL T89C51CC01CA

Active T89C51CC01 Errata List
•
Flash/EEPROM – First Read After Write Disturbed
•
Flash/EEPROM – First Read After Load Disturbed
•
Timer 2 – Baud Rate Generator – No IT When TF2 is Set by Software
•
Timer 2 – Baud Rate Generator – Long Start Time
•
UART – RB8 Lost with JBC on SCON Register
•
ADC – Interrupt During Idle Conversion
T89C51CC01 Errata History
Lot Number
Errata List
A00151
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12
A00369
1, 3, 4, 5, 6, 7, 8, 9, 10, 12
A00367, A00368,
A00396 to A00529
A00510, all lots from A00588
80C51 MCUs
T89C51CC01UA
T89C51CC01CA
1, 3, 5, 6, 7, 8, 9, 10, 12
1, 7, 8, 9,10, 11, 12
Errata Sheet
T89C51CC01 Errata Description
1. Flash/EEPROM – First Read After Write Disturbed
After a write of more than 32 bytes in the EEPROM and 16 bytes in the User Flash
memory, the read of the first byte may be disturbed if it occurs just after the write.
Workaround
Do not load/write more than 32 bytes at a time for EEPROM memory.
Do not load/write more than 16 bytes at a time for User Flash memory,
OR perform a “dummy” read before reading the first byte,
OR wait 10 ms before reading the first byte.
2. Buffer Noise
Large bounces and high noise are generated when buffers are switching (both rising and falling edges).
Workaround
None.
3. Double IT on External Falling Edge on INT1 or INT0 in X2 Mode
When the CPU is in X2 mode and Timer1 or Timer 0 in X1 mode (CKCON =
0x7F), IEx flag is not cleared by hardware after servicing interrupt. In this case,
the CPU executes the ISR a second time.
Workaround
The workaround is to clear IEx bit in Interrupt subroutine.
INT1_ISR :
; Interrupt sub routine
CLR IE1
....
Rev. 4131C–8051–11/02
1
4. Movc Instruction on Boot Memory from Boot Memory Does Not Work
No movc instruction is performed when a program running on the boot memory tries to read its own code using a movc
instruction.
Workaround
None.
5. Power OFF Flag
Power OFF Flag does not work.
Workaround
None.
6. CAN – Lost CAN Error Interrupt
When a stuff error occurs during a CAN frame transmission on DPRAM write access, the controller does not generate
the error interrupt and any received frame can generate a Receive interrupt.
Workaround
None.
7. Timer 2 – Baud Rate Generator – No IT When TF2 is Set by Software
When Timer 2 is used in baud rate generator mode, setting TF2 by software does not generate an interrupt.
Workaround
Use Timer 1 instead of Timer 2 to generate baud rate and interrupt.
8. Timer 2 – Baud Rate Generator – Long Start Time
When Timer 2 is used as a baud rate generator, TH2 is not loaded with RCAP2H at the beginning, then UART is not
operational before 10000 machine cycles.
Workaround
Add the initialization of TH2 and TL2 in the initialization of Timer 2.
9. UART – RB8 Lost With JBC on SCON Register
May lose RB8 value, if RB8 changes from 1 to 0 during JBC instruction on SCON register.
Workaround
Clear RB8 at the beginning of the code and after each time it goes to 1.
10. ADC – Interrupt Controller/ADC Idle Mode/Loops In High Priority Interrupt
The problem occurs during an A/D conversion in idle mode, if a hardware resetable interrupt occurs followed by a second interrupt with higher priority before the end of the A/D conversion. If the above configuration occurs, the high
priority interrupt is served immediately after the A/D conversion. At the end of the high priority interrupt service, the processor will not serve the hardware resetable interrupt pending. It will also not serve any new interrupt requests with a
priority lower than the high level priority last served.
Workaround
Disable all interrupts (Interrupt Global Interrupt Bit) before starting an A/D conversion in idle mode, then re-enable all
interrupts immediately after.
2
4131C–8051–11/02
11. CAN – CANCONCH Harmless Corruption
The fix for Errata number 6 (Lost CAN Error Interrupt), fixes the problem. However, when the stuff error occurs, the
CONCH1, CONCH0 bits in CANCONCH are corrupted. This corruption has no effect on the behavior of the Transmit
channel.
Workaround
No workaround is required, re-writing CANCONCH to start a new message resolves the corruption.
12. Flash/EEPROM – First Read After Load Disturbed
In the "In-Application Programming" mode from the Flash, if the User software application load the Column Latch Area
prior to call the programming sequence in the CAN Bootloader.
The "Read after load" issue leads to a wrong Opcode Fetch during the column latch load sequence.
Workaround
Update of the Flash API Library. A NOP instruction has to be inserted after the load instruction.
MOVX @DPTR,A ;Load Column latches
NOP ; ADDED INSTRUCTION
3
4131C–8051–11/02
Active UART Bootloader Errata List
•
•
•
•
•
Timer 2 and UART Are Not Stopped
Watchdog and Flash API Starting the Bootloader Execution
Autobaud False Start Bit Detection
Boot Process Compatibility
Flash api “__api_wr_code_page” with 0 data in length parameter field
UART Bootloader Errata History
Version Number
Errata List
1.2 (1.1.2 displayed by FLIP)
1, 2, 3
1.4
1, 2, 3, 4,5
UART Bootloader Errata Description
1. Timer 2 and UART Are Not Stopped
When the bootloader receives the command “Start Application” (LJMP 0), the Timer 2 and the UART are not stopped.
Workaround
The application must have in its setup function a reset of Timer 2 and UART.
mov SCON, #00h
mov T2CON, #00h
mov RCAP2L, #00h
mov RCAP2H, #00h
mov TL2, #00h
mov TH2, #00h
2. Watchdog and Flash API Starting the Bootloader Execution
When an application call “__api_start_bootloader” or”__api_start_isp” routines while the watchdog is enabled, when
the watchdog overflow it will restart the application instead of the bootloader
Workaround
Set BLJB(=1) before calling the __api_start_bootloader or __api_start_isp if the watchdog is used.
3. Autobaud False Start Bit Detection
UART autobaud sequence does not work on some special UARTs.
Some laptops have the UART TX line set to 0 when unused (COM port closed), this results in a false baud rate calculation on the ‘U’ character.
The autobaud sequence checkes for a ‘0’ state (not a falling edge) on the Rx line of the UART microcontroller to detect
the ‘start’ bit of the ‘U’ synchro character.
As this line is ‘0’ by default when COM port is closed, the autobaud routine starts its baudrate calculation at the opening
sequence of the UART.
4
4131C–8051–11/02
Workaround
A ‘Special Sync’ can be used with ‘FLIP’ software.
In this case, the open port event and the ‘U’ sent are dissociated. The user must first open his COM port with the ‘connect’ button, then reset its hardware and finally push the ‘sync’ button.
4. Boot Process Compatibility
There are some differences between Boot process of bootloader 1.2 and newer versions.
Version 1.2:
RESET
BLJB = 1
BLJB = 0
BLJB
Hardware Process
Software Process
No
Yes
FCON = F0h
Yes
BSB = 00h
No
No
Yes
SBV = FCh
Application
Executed
Atmel bootloader
Executed
User Bootloader
Executed
Version 1.4:
RESET
BLJB = 1
BLJB
BLJB = 0
Hardware Process
Software Process
Yes
FCON = F0h
No
Yes
SBV < FCh
Application
Executed
User Bootloader
Executed
No
Atmel bootloader
Executed
Workaround
Use the fuse bit BLJB to start the application on both versions.
5
4131C–8051–11/02
5. Flash API “__api_wr_code_page” with 0 data in length parameter field
When the flash api “__api_wr_code_page” is called with the field nb_data equal 0 then 255 data are wrote in flash.
Workaround
Include a test on nb_data before executed __api_wr_code_page routine.
6
4131C–8051–11/02
Active CAN Bootloader Errata List
• The CAN is Not Stopped
• Watchdog and Flash API Starting the Bootloader Execution
• Flash api “__api_wr_code_page” with 0 data in length parameter field
CAN Bootloader Errata History
Version Number
Errata List
1.0.4
1, 2, 3
CAN Bootloader Errata Description
1. The CAN is not stopped
When the bootloader receives the command “Start Application” (LJMP 0), the CAN is not stopped.
Workaround
The application must have in its setup function a reset of CAN macro.
mov CANGCON, #00h
2. Watchdog and Flash API Starting the Bootloader Execution
When an application call “__api_start_bootloader” or”__api_start_isp” routines while the watchdog is enabled, when
the watchdog overflow it will restart the application instead of the bootloader
Workaround
Set BLJB(=1) before calling the __api_start_bootloader or __api_start_isp if the watchdog is used.
3. Flash API “__api_wr_code_page” with 0 data in length parameter field
When the flash api “__api_wr_code_page” is called with the field nb_data equal 0 then 255 data are wrote in flash.
Workaround
Include a test on nb_data before executed __api_wr_code_page routine.
7
4131C–8051–11/02
Atmel Headquarters
Atmel Operations
Corporate Headquarters
Memory
2325 Orchard Parkway
San Jose, CA 95131
TEL 1(408) 441-0311
FAX 1(408) 487-2600
Europe
Atmel Sarl
Route des Arsenaux 41
Case Postale 80
CH-1705 Fribourg
Switzerland
TEL (41) 26-426-5555
FAX (41) 26-426-5500
Asia
Room 1219
Chinachem Golden Plaza
77 Mody Road Tsimhatsui
East Kowloon
Hong Kong
TEL (852) 2721-9778
FAX (852) 2722-1369
Japan
9F, Tonetsu Shinkawa Bldg.
1-24-8 Shinkawa
Chuo-ku, Tokyo 104-0033
Japan
TEL (81) 3-3523-3551
FAX (81) 3-3523-7581
2325 Orchard Parkway
San Jose, CA 95131
TEL 1(408) 441-0311
FAX 1(408) 436-4314
RF/Automotive
Theresienstrasse 2
Postfach 3535
74025 Heilbronn, Germany
TEL (49) 71-31-67-0
FAX (49) 71-31-67-2340
Microcontrollers
2325 Orchard Parkway
San Jose, CA 95131
TEL 1(408) 441-0311
FAX 1(408) 436-4314
La Chantrerie
BP 70602
44306 Nantes Cedex 3, France
TEL (33) 2-40-18-18-18
FAX (33) 2-40-18-19-60
ASIC/ASSP/Smart Cards
Zone Industrielle
13106 Rousset Cedex, France
TEL (33) 4-42-53-60-00
FAX (33) 4-42-53-60-01
1150 East Cheyenne Mtn. Blvd.
Colorado Springs, CO 80906
TEL 1(719) 576-3300
FAX 1(719) 540-1759
Biometrics/Imaging/Hi-Rel MPU/
High Speed Converters/RF Datacom
Avenue de Rochepleine
BP 123
38521 Saint-Egreve Cedex, France
TEL (33) 4-76-58-30-00
FAX (33) 4-76-58-34-80
1150 East Cheyenne Mtn. Blvd.
Colorado Springs, CO 80906
TEL 1(719) 576-3300
FAX 1(719) 540-1759
Scottish Enterprise Technology Park
Maxwell Building
East Kilbride G75 0QR, Scotland
TEL (44) 1355-803-000
FAX (44) 1355-242-743
e-mail
[email protected]
Web Site
http://www.atmel.com
© Atmel Corporation 2002.
Atmel Corporation makes no warranty for the use of its products, other than those expressly contained in the Company’s standard warranty
which is detailed in Atmel’s Terms and Conditions located on the Company’s web site. The Company assumes no responsibility for any errors
which may appear in this document, reserves the right to change devices or specifications detailed herein at any time without notice, and does
not make any commitment to update the information contained herein. No licenses to patents or other intellectual property of Atmel are granted
by the Company in connection with the sale of Atmel products, expressly or by implication. Atmel’s products are not authorized for use as critical
components in life support devices or systems.
ATMEL ® is a registered trademark of Atmel.
Other terms and product names may be the trademarks of others.
Printed on recycled paper.
4131C–8051–11/02
0M