PHILIPS LPC2124

INTEGRATED CIRCUITS
ERRATA SHEET
Date:
Document Release:
Device Affected:
November 8, 2004
Version 1.4
LPC2124
This errata sheet describes both the functional deviations and any deviations from the electrical specifications known at the release date of this document.
Each deviation is assigned a number and its history is tracked in a table at the end of the document.
2004 November 8
Philips
Semiconductors
PHILIPS
Philips Semiconductors
Single Chip 32-bit Microcontroller
Erratasheet
LPC2124
Identification:
The LPC2124 devices typically have the following top-side marking:
LPC2124xxx
xxxxxxx
xxYYWW R
The last letter in the third line (field ‘R’) will identify the device revision. This Errata Sheet covers the following
revisions of the LPC2124:
Revision Identifier (R)
‘A’
Comment
Initial device revision
Field ‘YY’ states the year the device was manufactured. Field ‘WW’ states the week the device was manufactured
during that year.
2004 November 8
2
Philips Semiconductors
Single Chip 32-bit Microcontroller
Erratasheet
LPC2124
Functional Deviations of LPC2124
IAP.1: Flash memory programming interface timing problem
Introduction:
The Flash memory on the LPC2124 offers In-Application Programming (IAP) functionality. The IAP
routines are part of the on-chip boot loader software, which controls the interface between the digital
logic and the Flash memory. Please note that all programming methods (JTAG, ISP, IAP) use IAP
calls.
Problem:
Due to a timing problem in the interface between the Flash block and the digital logic the following
problem may occur:
If the boot loader revision in the device is previous to V1.63 then in up to 10% of the devices the
Flash memory interface, at some point during an IAP programming or erase operation, may never
return from the IAP call. Please note that devices that pass the IAP programming are functional and
do not suffer from any long-term reliability problems.
Devices with a date code prior to 0425 (manufactured before week 25 in 2004) are generally
affected by this problem unless you receive devices with updated boot loader software from your
distributor. Parts marked with date code 0425 or later are not affected by this problem. Please refer
to page 2 of this document for details on how to identify the date code.
Workarounds:
1) The on-chip boot-loader software can be updated via ISP to correct this issue. The boot loader
update files can be downloaded here:
http://www.semiconductors.philips.com/files/products/standard/microcontrollers/utilities/
lpc2000_bl_update.zip
The boot-loader version can be read out using the Philips Flash ISP Utility which can be found here:
http://www.semiconductors.philips.com/files/products/standard/microcontrollers/utilities/
lpc2000_flash_utility.zip
Both links can also be found on the product information page for this product under the Support &
Tools section which can be found here:
http://www.semiconductors.philips.com/pip/LPC2124FBD64.html
2) Limiting the external clock frequency to 12 MHz AND making sure the on-chip PLL is turned OFF
while programming any part of the Flash memory reduces the likelihood of the occurrence
significantly. During In-System-Programming the PLL is turned off by default.
2004 November 8
3
Philips Semiconductors
Single Chip 32-bit Microcontroller
Erratasheet
LPC2124
ADC.1:
First two ADC conversions in burst mode from same channel
Introduction:
In burst mode the A/D converter does repeated conversions at the rate selected by the CLKS field
in the ADCR, scanning (if necessary) through the pins selected by 1s in the SEL field. The first
conversion after the start corresponds to the least-significant 1 in the SEL field, then higher
numbered 1-bits (pins) if applicable. Repeated conversions can be terminated by clearing this bit.
Problem:
In burst conversion mode, the first two conversions (after setting the mode) will be of the same,
lowest-numbered, of the selected channels.
work-around:
Ignore the first conversion, always check the CHN bits to confirm the channel converted.
ADC.2:
First conversion from channel specified by previous SEL setting
Introduction:
The ADCR SFR contains bits to enable the ADC burst mode (BURST), start the conversion in
software control mode (START), and to select the channel to begin converting (SEL).
Problem:
In burst mode, If the BURST bit is set before or simultaneously to (using the STR instruction for
example), the SEL bits, then the first channel converted will correspond to the previous SEL bit
settings.
In software control mode (only when using external trigger), if the START bits are set before or
simultaneously to (using the STR instruction for example) the SEL bits, then the first channel
converted will correspond to the previous SEL bit settings.
work-around:
Set the BURST/START bit(s) after setting the SEL bits.
ADC.3:
Incorrect scan pattern
Introduction:
In hardware scan mode multiple ADC channels may be selected as part of the scan by selecting
the appropriate bits in the SEL field in the ADCR register.
Problem:
Certain hardware scanning patterns for the A/D Converter do not operate properly. Selecting
channel 2 only leads to alternate sampling of channels 2 and 3. Selecting channels 1 and 2 leads
to sampling channel 1 for the first conversion, then sampling channel 2 on every subsequent
conversion.
work-around:
None. Do not use the sampling patterns "channel 2 only" or "channels 1 and 2". This problem has
no effect on software conversion, nor on any other patterns other than the two noted above.
ADC.4
Global powerdown does not power down the ADC
Introduction:
Setting the PD bit (bit 1) in PCON stops all clocks and powers down the peripherals. The ADC is
powered down by clearing the PDN bit (bit 21) in the ADCR register, setting the bit powers up
(enables) the ADC.
Problem:
If the PDN in ADCR is set, setting the PD bit in PCON will not power down the ADC.
Work-around:
Clear the PDN bit in the ADCR SFR to turn off the ADC prior to setting the PD bit in PCON.
2004 November 8
4
Philips Semiconductors
Single Chip 32-bit Microcontroller
Erratasheet
LPC2124
ADC.5
Edge triggered ADC conversion start error
Introduction:
When the START field of the ADCR register contains 010-111 the EDGE bit in ADCR will determine
whether a conversion is started on a rising or falling edge of the selected CAP/MAT signal. EDGE=0
selects rising edge detection, EDGE=1 selects falling edge detection. (On CAP/MAT pin)
Problem:
If the state of the selected CAP/MAT signal is 1 and EDGE is set to detect rising edges (EDGE = 0)
or, if detection of falling edges is selected (EDGE = 1) and the state of the selected CAP/MAT signal
is 0, an ADC conversion will immediately be initiated when the START bits are written to. So the
first conversion behaves as a level triggered event rather than edge triggered.
Work-around:
Clear the selected CAP/MAT signal for EDGE = 0 or set the selected CAP/MAT signal for EDGE =
1 before writing 010-111 to START field. Alternatively, discard the first conversion after writing to
the start bits.
ADC.6
Writing to ADCR while conversion in progress
Introduction:
Writing to ADCR while a conversion is in progress should set the DONE bit and start a new
conversion.
Problem:
In actuality, if the ADCR is written to within 2.5 ADC_clock cycles, a new conversion is started but
the DONE bit is not set. If the ADCR is written to after 2.5 ADC_clocks, but within a conversion
time, the DONE bit is set within one ADC_clock and a new conversion is started.
work-around:
Do not write to ADCR until the conversion is complete.
SPI.1
Unintentional clearing of SPI interrupt flag
Introduction:
The SPI interrupt flag is set by the SPI interface to generate an interrupt. It is cleared by writing a
1 to this bit.
Problem:
A write to any register associated with the SPI peripheral will clear the SPI interrupt register.
work-around:
Avoid writing to SPI registers while transmissions are in progress or while SPI interrupts are
pending.
EXTINT.1
Corruption of VPBDIV via EXTPOLAR or EXTMODE
Introduction:
The VPBDIV register controls the rate of the VPB clock in relation to the processor clock.
EXTPOLAR and EXTMODE determine the operating parameters of the external interrupts.
Problem:
A write to either the external interrupt polarity register (EXTPOLAR) or the external interrupt mode
register (EXTMODE) will corrupt the VPBDIV register. A read of either EXTPOLAR or EXTMODE
will be corrupted BY the VPBDIV register. If VPBDIV is “1” or “2” prior to any write to EXTPOLAR
or EXTMODE, the CPU will hang up on the write to EXTPOLAR or EXTMODE.
work-around:
If VPBDIV is non-zero, write all zeroes to VPBDIV before reading or writing EXTMODE or
EXTPOLAR, then write the proper value back to VPBDIV. In most applications this is a known and
fixed value, but if there is a possibility of dynamic changes in VPBDIV, software will need to read
VPBDIV, write zero to VPBDIV, read or write EXTMODE and/or EXTPOLAR, and then rewrite the
value previously read from VPBDIV.
2004 November 8
5
Philips Semiconductors
Single Chip 32-bit Microcontroller
Erratasheet
LPC2124
CAP.1
Problem when selecting P0.21 as a capture 1.3 input (timer1)
Introduction:
P0.21 and P0.19 may be configured as capture inputs via the PINSEL register.
Problem:
When PINSEL(11:10) is set to "11" P0.21 is not internally connected as capture 1.3
Work-around:
To use P0.21 as capture 1.3, PINSEL(7:6) must also be set to "11" which means that P0.19 must
be selected as capture input 1.2.
VPBDIV.1
Incorrect read of VPBDIV
Introduction:
The Peripheral Bus Divider (VPBDIV) divides the processor clock (CCLK) by one, two, or four. This
is the clock that is provided to the peripheral bus.
Problem:
Reading the VPBDIV register may return an incorrect value.
work-around:
Performing two consecutive reads of the VPBDIV assures that the correct value is returned.
Timer.1
Missed Interrupt Potential
Introduction:
The Timers may be configured so that events such as Match, Capture, and PWM, cause interrupts.
Bits in the Interrupt Register (IR) indicate the source of the interrupt, whether from Capture or
Match.
Problem:
If more than one interrupt for multiple Match events using the same Timer are enabled, it is possible
that one of the match interrupts may not be recognized. If this occurs no more interrupts from that
specific match register will be recognized. This could happen in a scenario where the match events
are very close to each other. This issue also affects the Capture functionality.
Specific details:
Suppose that two match events are very close to each other (Say Match0 and Match1). Also
assume that the Match0 event occurs first. When the Match0 interrupt occurs the 0th bit of the
Interrupt Register will be set. To exit the Interrupt Service Routine of Match0, this bit has to be
cleared in the Interrupt Register. The clearing of this bit might be done by using the following
statement:
T0_IR = 0x1;
It is possible that software will be writing a 1 to bit 0 of the Interrupt Register while a Match1 event
occurs, meaning that hardware needs to set the bit 1 of the Interrupt Register. In this case, since
hardware is accessing the register at the same time as software, bit 1 for Match1 never gets set,
causing the interrupt to be missed.
In summary, while software is writing to the Interrupt Register, any Match or Capture event (which
are configured to interrupt the core) occurring at the same time may result in the subsequent
interrupt not being recognized.
Similarly for the Capture event, if a capture event occurs while a Match event is being is serviced
then the Capture event might be missed if the software and hardware accesses coincide.
2004 November 8
6
Philips Semiconductors
Single Chip 32-bit Microcontroller
Erratasheet
LPC2124
Affected features:
1. Interrupt on Match for Timer0/1.
2. Interrupt on Capture for Timer0/1.
3. These same features will be affected when using PWM.
Workaround:
There is no clear workaround for this problem but some of the below mentioned solutions could
work with some applications.
Possible workarounds for Match functionality:
1. If the application only needs two Match registers then distribute them between Timer 0 and
Timer 1 to avoid this problem
2. Stop the timer before accessing the Interrupt register for clearing the interrupt and then start timer
again after the access is completed.
3. Polling for interrupt: Supposing that there are two Match events (Match X and Match Y). At the
end of the Interrupt Service Routine (ISR) for Match X, compare the Timer Counter value with the
Match Register Y value. If the Timer Counter value is more than the Match Register Y value then
it is possible that this event might have been missed. In this case jump to the ISR directly and
service Match event Y.
Possible workarounds for Capture functionality:
1. Try to spread the capture events between both timers if there are two capture events. If the
application also has a match event then one of the capture events may suffer
2. Polling for Capture: At the end of a Match interrupt ISR or Capture event ISR compare the
previous Capture value with the current Capture value. If the Capture value has changed then
the Capture event might have been missed. In this case, jump to the ISR directly and service the
Capture event.
The same above workarounds will also be applicable for the Match and Compare functionality of
the PWM block.
Core.1
Incorrect update of the Abort Link register in Thumb state
Introduction:
If the processor is in Thumb state and executing the code sequence STR, STMIA or PUSH followed
by a PCrelative load, and the STR, STMIA or PUSH is aborted, the PC is saved to the abort link
register.
Problem:
In this situation the PC is saved to the abort link register in word resolution, instead of half-word
resolution.
Conditions:
The processor must be in Thumb state, and the following sequence must occur:
<any instruction>
<STR, STMIA, PUSH> <---- data abort on this instruction
2004 November 8
7
Philips Semiconductors
Single Chip 32-bit Microcontroller
Erratasheet
LPC2124
LDR rn, [pc,#offset]
In this case the PC is saved to the link register R14_abt in only word resolution, not half-word
resolution. The effect is that the link register holds an address that could be #2 less than it should
be, so any abort handler could return to one instruction earlier than intended.
Work around:
In a system that does not use Thumb state, there will be no problem.
In a system that uses Thumb state but does not use data aborts, or does not try to use data aborts
in a recoverable manner, there will be no problem.
Otherwise the workaround is to ensure that a STR, STMIA or PUSH cannot precede a PC-relative
load. One method for this is to add a NOP before any PC-relative load instruction. However this is
would have to be done manually.
Electrical and Timing Specification Deviations of the LPC2124
VIH.1
Incompatibility of actual VIH levels as compared to those specified
Introduction:
The specified, minimum, value for VIH is 2.0V.
Problem:
Any pin associated with either an external interrupt input or an analog to digital converter (ADC)
input has a VIH of 2.4V, not 2.0V. The pins that are affected are the ones that can be configured
as either an ADC input or and external interrupt input, not just the ones that are configured as such.
work-around:
Make sure that high logic levels are at least 2.4V at these pins.
2004 November 8
8
Philips Semiconductors
Single Chip 32-bit Microcontroller
Erratasheet
LPC2124
Errata History - Functional Problems
Functional
Problem
Short Description
IAP.1
No return from IAP erase/program call
ADC.1
First two ADC conversions in burst mode from same channel
ADC.2
First conversion from channel specified by previous SEL setting
ADC.3
Incorrect scan pattern
ADC.4
Global powerdown does not power down the ADC
ADC.5
Edge triggered ADC conversion start error
ADC.6
Writing to ADCR while conversion in progress
SPI.1
Unintentional clearing of SPI interrupt flag
EXTINT.1
Corruption of VPBDIV via EXTPOLAR or EXTMODE
CAP.1
Problem when selecting P0.21 as a capture 1.3 input (timer1)
VPBDIV.1
Incorrect read of VPBDIV
CORE.1
Incorrect load of the link register
Timer.1
Missed Interrupt Potential
errata occurs in
device revision
A
A
A
A
A
A
A
A
A
A
A
A
A
Errata History - Electrical and Timing Specification Deviations
AC/DC
Deviations
Short Description
errata occurs in
device revision
VIH.1
Incompatibility of actual VIH levels as compared to those specified
A
2004 November 8
9