Yahoo Groups archive

Lpc2000

Index last updated: 2026-04-28 23:31 UTC

Thread

LPC2106 Electrical & Timing Specs

LPC2106 Electrical & Timing Specs

2005-10-15 by rtstofer

I have spent literally hours searching the Philips web site for 
documentation other than the User Manual for the LPC2106 and a few app 
notes.

Is there a document that has the electrical and timing specs for this 
chip?

One reason I am curious is that I don't seem to be able to get very 
short output pulses when I wiggle a pin.  Something on the order of 
100 nS is about the shortest I can get.  Now, I am running at 4x 
14.7456 MHz (I think!) and the VPBDIV is set to 0x01.  It would seem 
that, at 59 MHz, I should be able to get very short pulses.

This isn't a problem, just a curiousity.  But, I would like to review 
the specs.

Thanks
Richard

Re: [lpc2000] LPC2106 Electrical & Timing Specs

2005-10-15 by Robert Adsett

At 06:41 PM 10/15/05 +0000, rtstofer wrote:
>I have spent literally hours searching the Philips web site for
>documentation other than the User Manual for the LPC2106 and a few app
>notes.
>
>Is there a document that has the electrical and timing specs for this
>chip?
>
>One reason I am curious is that I don't seem to be able to get very
>short output pulses when I wiggle a pin.  Something on the order of
>100 nS is about the shortest I can get.  Now, I am running at 4x
>14.7456 MHz (I think!) and the VPBDIV is set to 0x01.  It would seem
>that, at 59 MHz, I should be able to get very short pulses.


See http://www.open-research.org.uk/ARMuC/index.cgi?LPC2100Tips

It has pointers to early measurements of the pin toggling and an 
explanation from Philips.  Both are threads from this group.  Some newer 
devices are better.

I did once get a very short pulse out of an LPC as a result of a timing 
glitch/race but I doubt that that is useful.

Robert

" 'Freedom' has no meaning of itself.  There are always restrictions,   be 
they legal, genetic, or physical.  If you don't believe me, try to chew a 
radio signal. "  -- Kelvin Throop, III
http://www.aeolusdevelopment.com/

Re: [lpc2000] LPC2106 Electrical & Timing Specs

2005-10-15 by Leon Heller

----- Original Message ----- 
Show quoted textHide quoted text
From: "rtstofer" <rstofer@...>
To: <lpc2000@yahoogroups.com>
Sent: Saturday, October 15, 2005 7:41 PM
Subject: [lpc2000] LPC2106 Electrical & Timing Specs


>I have spent literally hours searching the Philips web site for
> documentation other than the User Manual for the LPC2106 and a few app
> notes.
>
> Is there a document that has the electrical and timing specs for this
> chip?
>
> One reason I am curious is that I don't seem to be able to get very
> short output pulses when I wiggle a pin.  Something on the order of
> 100 nS is about the shortest I can get.  Now, I am running at 4x
> 14.7456 MHz (I think!) and the VPBDIV is set to 0x01.  It would seem
> that, at 59 MHz, I should be able to get very short pulses.
>
> This isn't a problem, just a curiousity.  But, I would like to review
> the specs.

The I/O is limited by the speed of the ARM peripheral bus and is rather 
slow. An AVR can actually wiggle pins faster than than the LPC2106.

Leon 

---
[This E-mail has been scanned for viruses but it is your responsibility 
to maintain up to date anti virus software on the device that you are
currently using to read this email. ]

Re: [lpc2000] LPC2106 Electrical & Timing Specs

2005-10-15 by Tom Walsh

rtstofer wrote:

>I have spent literally hours searching the Philips web site for 
>documentation other than the User Manual for the LPC2106 and a few app 
>notes.
>
>Is there a document that has the electrical and timing specs for this 
>chip?
>
>One reason I am curious is that I don't seem to be able to get very 
>short output pulses when I wiggle a pin.  Something on the order of 
>100 nS is about the shortest I can get.  Now, I am running at 4x 
>14.7456 MHz (I think!) and the VPBDIV is set to 0x01.  It would seem 
>that, at 59 MHz, I should be able to get very short pulses.
>
>This isn't a problem, just a curiousity.  But, I would like to review 
>the specs.
>
>  
>
That is something that is hard to quantify on a pipelined processor.  
This could predicted while using a simple CPU like a 68HC11 or 8051 
processor.  Those CPI (Clocks Per Instruction) are governed by a fixed 
set of conditions.  And the IPC (Instructions Per Clock) is always one 
(1).  You could go to a data sheet and lookup how many clock cycles a 
"mov a, r0" would take, then using your calculator, determine the period 
of your clock, then multiply by 12 (8051) to get one machine cycle time, 
then multiply the number of machine cyles for the "mov acc, rn" opcode.

You cannot really do that with a modern processor, yeah, ARM falls under 
that category.  Modern CPUs do two things differently which make 
computing finite execution times difficult: they cache instructions and 
execute instructions in parallel.  While looping inside a cache boundry, 
you get your best performance time, the CPU doesn't need to reload / 
dump cache from External RAM (in the case of the LPC2xxx, it is the 
on-chip SRAM, no difference, just a bit faster than external [S]DRAM).

ARM processors also execute opcodes in paralell with each other, 
predicative execution.  Take the "moveq r1,r1,#0" instruction, that is a 
conditional instruction based on the result of the zero flag.  While the 
previous instruction is executing, ARM pipelines the next instruction 
into the microcode unit and sets it up.  In this case, it gets a value 
of ZERO all set to be put into R1, but the instruction is held up until 
the value of the zero flag is known to be stable.  Once it is time to 
execute the move, the processor either does the instruction or discards it.

Meanwhile, another instruction has already been loaded and it, too, is 
ready to go!  The predictive exectution can extend beyond just a few 
instructions, but can encompass the width of the cache.

TomW



-- 
Tom Walsh - WN3L - Embedded Systems Consultant
http://openhardware.net, http://cyberiansoftware.com
"Windows? No thanks, I have work to do..."
----------------------------------------------------

Re: LPC2106 Electrical & Timing Specs

2005-10-15 by lpc2100_fan

--- In lpc2000@yahoogroups.com, "rtstofer" <rstofer@p...> wrote:
>
> I have spent literally hours searching the Philips web site for 
> documentation other than the User Manual for the LPC2106 and a few app 
> notes.
> 
> Is there a document that has the electrical and timing specs for this 
> chip?
> 
> One reason I am curious is that I don't seem to be able to get very 
> short output pulses when I wiggle a pin.  Something on the order of 
> 100 nS is about the shortest I can get.  Now, I am running at 4x 
> 14.7456 MHz (I think!) and the VPBDIV is set to 0x01.  It would seem 
> that, at 59 MHz, I should be able to get very short pulses.
> 
> This isn't a problem, just a curiousity.  But, I would like to review 
> the specs.
> 
> Thanks
> Richard
>

Richard,

the timing specs are in the Data Sheet but this does not include pin
toggeling speeds. The LPC2106 can toggle with approx. 4 MHz at full
speed. 
THe newest device, the LPC2148 has the pins connected to with paths to
both busses, the APB (the docu calls it VPB) as slow as it was before
but compatible to existing software while the is a chapter in the
Users Manual how to toggle the pins faster, up to 15 MHz, which is the
fastest theoretically possible through software. 

afaik, the upcoming LPC2101/2/3 also have the fast toggle option. If
you are just looking for a micro that toggles a pin as fast as
possible, there are 8-bits that can do this as good as an ARM for
less, if you need speed for algorithms, do yourself a favor and forget
about 8-bit

hth, Bob

Re: LPC2106 Electrical & Timing Specs

2005-10-15 by lpc2100_fan

Tom,

great contribution! It is indeed difficult to count cycles for
instructions in the ARM. Nevertheless, the LPC2000 family does not use
a cache. The internal SRAM is something in ARM terms called tightly
coupled memory (TCM). This offers the same speed as cache but a lot
less undeterministic behavior. If a real cache gets a cache miss, the
next instruction could take 20 or more cycles, if there is a branch in
the SRAM or even hte flash of the LPC2000, it is just the regular 2
cycles of the branch in SRAM  + 1 cycle for the first instruction from
Flash.  All subsequent linear instructions either from SRAM or Flash
will execute the same speed. This is something special in the LPC2000
series because the bandwidth of the flash based on one fetchcycle
loads 16 bytes and this can be done every 50 ns. The bandwidth
therefor is up to 320 MBytes/sec, faster than anything else with flash
in this market. 

Bob


--- In lpc2000@yahoogroups.com, Tom Walsh <tom@o...> wrote:
>
> rtstofer wrote:
> 
> >I have spent literally hours searching the Philips web site for 
> >documentation other than the User Manual for the LPC2106 and a few app 
> >notes.
> >
> >Is there a document that has the electrical and timing specs for this 
> >chip?
> >
> >One reason I am curious is that I don't seem to be able to get very 
> >short output pulses when I wiggle a pin.  Something on the order of 
> >100 nS is about the shortest I can get.  Now, I am running at 4x 
> >14.7456 MHz (I think!) and the VPBDIV is set to 0x01.  It would seem 
> >that, at 59 MHz, I should be able to get very short pulses.
> >
> >This isn't a problem, just a curiousity.  But, I would like to review 
> >the specs.
> >
> >  
> >
> That is something that is hard to quantify on a pipelined processor.  
> This could predicted while using a simple CPU like a 68HC11 or 8051 
> processor.  Those CPI (Clocks Per Instruction) are governed by a fixed 
> set of conditions.  And the IPC (Instructions Per Clock) is always one 
> (1).  You could go to a data sheet and lookup how many clock cycles a 
> "mov a, r0" would take, then using your calculator, determine the
period 
> of your clock, then multiply by 12 (8051) to get one machine cycle
time, 
> then multiply the number of machine cyles for the "mov acc, rn" opcode.
> 
> You cannot really do that with a modern processor, yeah, ARM falls
under 
> that category.  Modern CPUs do two things differently which make 
> computing finite execution times difficult: they cache instructions and 
> execute instructions in parallel.  While looping inside a cache
boundry, 
> you get your best performance time, the CPU doesn't need to reload / 
> dump cache from External RAM (in the case of the LPC2xxx, it is the 
> on-chip SRAM, no difference, just a bit faster than external [S]DRAM).
> 
> ARM processors also execute opcodes in paralell with each other, 
> predicative execution.  Take the "moveq r1,r1,#0" instruction, that
is a 
> conditional instruction based on the result of the zero flag.  While
the 
> previous instruction is executing, ARM pipelines the next instruction 
> into the microcode unit and sets it up.  In this case, it gets a value 
> of ZERO all set to be put into R1, but the instruction is held up until 
> the value of the zero flag is known to be stable.  Once it is time to 
> execute the move, the processor either does the instruction or
discards it.
Show quoted textHide quoted text
> 
> Meanwhile, another instruction has already been loaded and it, too, is 
> ready to go!  The predictive exectution can extend beyond just a few 
> instructions, but can encompass the width of the cache.
> 
> TomW
> 
> 
> 
> -- 
> Tom Walsh - WN3L - Embedded Systems Consultant
> http://openhardware.net, http://cyberiansoftware.com
> "Windows? No thanks, I have work to do..."
> ----------------------------------------------------
>

Re: [lpc2000] Re: LPC2106 Electrical & Timing Specs

2005-10-15 by Tom Walsh

lpc2100_fan wrote:

>Tom,
>
>great contribution! It is indeed difficult to count cycles for
>instructions in the ARM. Nevertheless, the LPC2000 family does not use
>a cache. The internal SRAM is something in ARM terms called tightly
>coupled memory (TCM). This offers the same speed as cache but a lot
>less undeterministic behavior. If a real cache gets a cache miss, the
>next instruction could take 20 or more cycles, if there is a branch in
>the SRAM or even hte flash of the LPC2000, it is just the regular 2
>cycles of the branch in SRAM  + 1 cycle for the first instruction from
>Flash.  All subsequent linear instructions either from SRAM or Flash
>will execute the same speed. This is something special in the LPC2000
>series because the bandwidth of the flash based on one fetchcycle
>loads 16 bytes and this can be done every 50 ns. The bandwidth
>therefor is up to 320 MBytes/sec, faster than anything else with flash
>in this market. 
>
>  
>

Cool!   I do see it has some nice performance at 59MHz.  Well beyond the 
14MHz 8051 this board is replacing..  Of course, now that I have more 
Flash, I have put an MMC on it, more serial ports, ...  heh

TomW



-- 
Tom Walsh - WN3L - Embedded Systems Consultant
http://openhardware.net, http://cyberiansoftware.com
"Windows? No thanks, I have work to do..."
----------------------------------------------------

Re: LPC2106 Electrical & Timing Specs

2005-10-15 by Karl Olsen

--- In lpc2000@yahoogroups.com, Tom Walsh <tom@o...> wrote:
>
> rtstofer wrote:
> 
>> I have spent literally hours searching the Philips web site for 
>> documentation other than the User Manual for the LPC2106 and a few 
>> app notes.
>>
>> Is there a document that has the electrical and timing specs for 
>> this chip?
>>
>> One reason I am curious is that I don't seem to be able to get
>> very short output pulses when I wiggle a pin.  Something on the
>> order of 100 nS is about the shortest I can get.  Now, I am
>> running at 4x 14.7456 MHz (I think!) and the VPBDIV is set to
>> 0x01.  It would seem that, at 59 MHz, I should be able to get very
>> short pulses.
>>
>> This isn't a problem, just a curiousity.  But, I would like to
>> review the specs.
>
>
> You cannot really do that with a modern processor, yeah, ARM falls 
> under that category.  Modern CPUs do two things differently which
> make computing finite execution times difficult: they cache
> instructions and execute instructions in parallel.  While looping
> inside a cache boundry, you get your best performance time, the CPU 
> doesn't need to reload / dump cache from External RAM (in the case 
> of the LPC2xxx, it is the on-chip SRAM, no difference, just a bit
> faster than external [S]DRAM).
> 
> ARM processors also execute opcodes in paralell with each other, 
> predicative execution.  Take the "moveq r1,r1,#0" instruction, that 
> is a conditional instruction based on the result of the zero flag.  
> While the previous instruction is executing, ARM pipelines the next 
> instruction into the microcode unit and sets it up.  In this case, 
> it gets a value of ZERO all set to be put into R1, but the
> instruction is held up until the value of the zero flag is known to 
> be stable.  Once it is time to execute the move, the processor
> either does the instruction or discards it.
> 
> Meanwhile, another instruction has already been loaded and it, too, 
> is ready to go!  The predictive exectution can extend beyond just a 
> few instructions, but can encompass the width of the cache.


Actually, the ARM7TDMI-S is not that modern, and it is not that 
difficult to calculate the instruction timings.  See
http://groups.yahoo.com/group/lpc2000/message/7808

The ARM7TDMI-S has a simple three-stage pipeline, fetch-decode-
execute, and all register accesses and calculations happen in the 
execute stage.  There are no stalls if an instruction depends on the 
result of the previous instruction, be it register or flag values.  
There is no out-of-order or super-scalar execution, and there is no 
microcode, all instructions are hardwired.

And there are no caches to give unpredictable timing, except for the 
MAM, and the registers behind the AHB bridge (the VIC registers and 
the VPB peripheral registers).  Philips documents the MAM timings in 
the User Manual, and I have measured the VPB timings in the link 
above.  They are not unpredictable.

For the full details of the ARM7TDMI-S core, see the manual at
http://www.arm.com/pdfs/DDI0234A_7TDMIS_R4.pdf , in particular 
chapter "Instruction Cycle Timings", table 7-2.  All four kinds of 
cycles (I,C,N,S) take one core clock in the LPC2xxx, except for the 
MAM miss and AHB bridge cases.  

For example, LDR with R15 destination (such as LDR PC, [R0, #0]) is 
listed as "+N +I +N +2S", which for the LPC2xxx means 1+1+1+2 = 5 
clocks.  Assuming that R0 points to RAM and the word loaded from 
there points to somewhere in flash, add 0 for the RAM load (RAM is 
always 0 waitstates), and 2 for the initial nonsequential code fetch 
from flash (with MAMTIM=3), giving a total of 7 clocks.

For newer ARM cores, such as the ARM920 with caches and multiple 
pipeline stages after decode, it is a different story.


Karl Olsen

Re: [lpc2000] Re: LPC2106 Electrical & Timing Specs

2005-10-16 by Tom Walsh

Karl Olsen wrote:

>
>For example, LDR with R15 destination (such as LDR PC, [R0, #0]) is 
>listed as "+N +I +N +2S", which for the LPC2xxx means 1+1+1+2 = 5 
>clocks.  Assuming that R0 points to RAM and the word loaded from 
>there points to somewhere in flash, add 0 for the RAM load (RAM is 
>always 0 waitstates), and 2 for the initial nonsequential code fetch 
>from flash (with MAMTIM=3), giving a total of 7 clocks.
>
>For newer ARM cores, such as the ARM920 with caches and multiple 
>pipeline stages after decode, it is a different story.
>
>  
>

Thank you, I did not realize that the TDMI core differed that much from 
the regular core.

TomW

-- 
Tom Walsh - WN3L - Embedded Systems Consultant
http://openhardware.net, http://cyberiansoftware.com
"Windows? No thanks, I have work to do..."
----------------------------------------------------

Re: [lpc2000] Re: LPC2106 Electrical & Timing Specs

2005-10-16 by Richard Duits

All info about the core (ARM7TDMI in this case) is documented by ARM, so 
you should take a look on www.arm.com.

RD


rtstofer wrote:
Show quoted textHide quoted text
> > Richard,
> >
> > the timing specs are in the Data Sheet but this does not include
> pin
> > toggeling speeds. The LPC2106 can toggle with approx. 4 MHz at full
> > speed.
> > THe newest device, the LPC2148 has the pins connected to with
> paths to
> > both busses, the APB (the docu calls it VPB) as slow as it was
> before
> > but compatible to existing software while the is a chapter in the
> > Users Manual how to toggle the pins faster, up to 15 MHz, which is
> the
> > fastest theoretically possible through software.
> >
> > afaik, the upcoming LPC2101/2/3 also have the fast toggle option.
> If
> > you are just looking for a micro that toggles a pin as fast as
> > possible, there are 8-bits that can do this as good as an ARM for
> > less, if you need speed for algorithms, do yourself a favor and
> forget
> > about 8-bit
> >
> > hth, Bob
> >
>
> Bob,
>
> I have the Sept 2003 User Manual and I don't see any electrical
> specs beyond 3.3 & 1.8V.  Nothing about source/sink current or logic
> thresholds.  Not a single timing parameter in the entire manual.
>
> Do I have the wrong manual?
>
> Richard
>
>
>
>
>
>
> ------------------------------------------------------------------------
> YAHOO! GROUPS LINKS
>
>     *  Visit your group "lpc2000
>       <http://groups.yahoo.com/group/lpc2000>" on the web.
>        
>     *  To unsubscribe from this group, send an email to:
>        lpc2000-unsubscribe@yahoogroups.com
>       <mailto:lpc2000-unsubscribe@yahoogroups.com?subject=Unsubscribe>
>        
>     *  Your use of Yahoo! Groups is subject to the Yahoo! Terms of
>       Service <http://docs.yahoo.com/info/terms/>.
>
>
> ------------------------------------------------------------------------
>

Re: LPC2106 Electrical & Timing Specs

2005-10-16 by rtstofer

--- In lpc2000@yahoogroups.com, Richard Duits <yahoo@r...> wrote:
>
> All info about the core (ARM7TDMI in this case) is documented by 
ARM, so 
> you should take a look on www.arm.com.
> 
> RD

Yes, I have that ARM document.  I also found a different document that 
contains the various electrical and timing specs.  I'm all set...

I really like this chip!  Next up: the LPC2138, I need the pins.

Richard

Re: [lpc2000] Re: LPC2106 Electrical & Timing Specs

2005-10-16 by Tom Walsh

rtstofer wrote:

>--- In lpc2000@yahoogroups.com, Richard Duits <yahoo@r...> wrote:
>  
>
>>All info about the core (ARM7TDMI in this case) is documented by 
>>    
>>
>ARM, so 
>  
>
>>you should take a look on www.arm.com.
>>
>>RD
>>    
>>
>
>Yes, I have that ARM document.  I also found a different document that 
>contains the various electrical and timing specs.  I'm all set...
>
>I really like this chip!  Next up: the LPC2138, I need the pins.
>
>  
>

Yeah, but you'll loose the RAM.  Maybe take a harder look at SPI 
hardware, that SPI bus is fast!

My application I need the RAM plus lots of Flash, result has been 
LPC2106 to save in the stuff in RAM and LPC2138 to put code into...  :-/


TomW


-- 
Tom Walsh - WN3L - Embedded Systems Consultant
http://openhardware.net, http://cyberiansoftware.com
"Windows? No thanks, I have work to do..."
----------------------------------------------------

Re: LPC2106 Electrical & Timing Specs

2005-10-16 by rtstofer

> Yeah, but you'll loose the RAM.  Maybe take a harder look at SPI 
> hardware, that SPI bus is fast!
> 
> My application I need the RAM plus lots of Flash, result has been 
> LPC2106 to save in the stuff in RAM and LPC2138 to put code 
into...  :-/
> 
> 
> TomW

I'm messing around with the 3 millionth design of an MP3 player and 
mine won't be anything special.  Using CF is costing me 17 pins; no 
wonder everyone else is using SD/MMC.

Richard

Re: LPC2106 Electrical & Timing Specs

2005-10-16 by Karl Olsen

--- In lpc2000@yahoogroups.com, "rtstofer" <rstofer@p...> wrote:
>
> I have spent literally hours searching the Philips web site for 
> documentation other than the User Manual for the LPC2106 and a few
> app notes.
> 
> Is there a document that has the electrical and timing specs for this 
> chip?

See the datasheet.
http://www.semiconductors.philips.com/pip/LPC2106.html

Karl Olsen

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.