LPC2148 vs AT91SAMS256 New in the ARM Wolrd: Need To choose!

Started by gasparpollano September 12, 2007
Hi Everybody!

Im a new in the world of ARM, im previosly use 8051-compatible form
Atmel, Z8000 & PIC's.

I need to choose between NXP LPC2148 and ATMEL AT91SAMS256, two uC
that seems to be very similar.

I live in Argentina (by the way, sorry for my bad English!), and the
cost of OLIMEX Starters Kits are similar for the two options.

One thing I love from ATMEL is th LOW Prices, but when i visit
NXP.com: the LPC2xxx aren't expensive! Then, i find this group, and
due the number of members (WOW!) the decision come more dificult.
The entire site of NXP seems very profesional and useful. However the
Data Sheets and the user's manuals aren't long, but maybe is just a
first-impresion.

Can anyone tellme what is the NXP ARM's uC top (or tops) features
better over ATMEL? Im not fan of ATMEL - but maybe a future fan of
NXP's ARM's!

Thanks in advance!
Gaspar

An Engineer's Guide to the LPC2100 Series

Hi,

> Can anyone tellme what is the NXP ARM's uC top (or tops) features
> better over ATMEL?

NXP's LPC2000 runs faster than the equivalent SAM7, but to make up for it
(in part) the SAM7 has a nice PDC which the LPCs don't have (in general).

-- Paul.
Hello Gaspar,

>
> Hi Everybody!
>
> Im a new in the world of ARM, im previosly use 8051-compatible form
> Atmel, Z8000 & PIC's.
>
> I need to choose between NXP LPC2148 and ATMEL AT91SAMS256, two uC
> that seems to be very similar.

Indeed LPC2148 and AT91SAM7S256 are remarkable similar, both use ARM
core
but there are quite a few differences so comparing them side by side
should help you decide.

>
> I live in Argentina (by the way, sorry for my bad English!), and the
> cost of OLIMEX Starters Kits are similar for the two options.
>
> One thing I love from ATMEL is th LOW Prices, but when i visit
> NXP.com: the LPC2xxx aren't expensive! Then, i find this group, and
> due the number of members (WOW!) the decision come more dificult.
> The entire site of NXP seems very profesional and useful. However the
> Data Sheets and the user's manuals aren't long, but maybe is just a
> first-impresion.
>
> Can anyone tellme what is the NXP ARM's uC top (or tops) features
> better over ATMEL? Im not fan of ATMEL - but maybe a future fan of
> NXP's ARM's!
>From the on-chip resource point of view LPC2148 has advantage because it
has
512 kB of Flash memory, which is twice the size of what SAM7S256 has.
However,
this is reversed when you compare SRAM, SAM7S256 comes with 64 kB
versus
32 kB + 8 kB (USB memory separate from the the main) total of 40 kB
for the LPC2148.
So depending on your application if you need lots of flash storage use
NXP chip but
if you need lots of variables Atmel's chip is better.

LPC2148 has an optimized Flash memory controller which allows full speed
code execution from Flash in both ARM (32 bit) and Thumb (16 bit) modes
which
combined with the 60 MHz clock makes it quite faster then SAM.
SAM7S256 clock
tops at 50 MHz and its Embedded Flash Controller is optimized for the
Thumb
mode aka 16 bit access which does not make it a speed demon. However,
SAM7S256
has better support in memory controller for debugging problems like
prefetch aborts,
data aborts which pop from time to time.

LPC2148 Flash has better programming/endurance spec which might be
important
in some applications, it allows for a minimum of 100000 (5 zeros)
erase/write cycles
and 20 years of data-retention while SAM7S256 Flash is 10,000 (4 zeros)
write cycles,
10-year data retention. But I would give advantage to SAM7S256 when it
comes to
actually using Flash memory in your application it is organized in
uniform pages vs
variable size sectors on the LPC2148 which makes it easier to use in
your app.

As far as the other peripherals is concerned both of them offer
goodmix GPIO, ADC, Timers,
I2C and SPI to name a few. In general I have found that SAM7S256
peripherals tend to
be more complex to use then LPC2148 but you could say that SAM7S256 is
more flexible.
To make an exhaustive comparison would require few more pages so you
have to look at
what peripherals you need in your app and see which chip has better
support.

USB is present on both chips but I would give thumbs up to Atmel. USB on
SAM7S256
is supported by the boot loader and can be used to program the chip, no
such luck with
LPC2148 you have to use serial (RS-232) port to program.

Both chips have good Flash programming tools, Atmel's tool support
programming
using USB, serial and JTAG (SAM-ICE only) while tools for LPC2000
generally support
serial only. In addition there are open source tools that allow to use
JTAG to program
both of them.

Based on developing firmware for both chips I would say that in general
NPX LPC2000
series is simpler to use for a beginner because AT91SAM7S is more
complex, has more
things to configure and learning curve is steeper. However, once you go
beyond initial
steps Atmel offers better support for the chips, starting from the
header files all the way
through USB driver. NXP website and docs do look better but in the end
what you need
is the information.

Hope this helps!

Pawel Wodnicki
\
-----
HBBR Basic compiler and IDE for ARM based microcontrollers
http://www.hbbrbasic.com/

>
> Thanks in advance!
> Gaspar
>
At 04:31 PM 9/12/2007 +0000, elektrknight wrote:

>As far as the other peripherals is concerned both of them offer
>good mix GPIO, ADC, Timers,
>I2C and SPI to name a few. In general I have found that SAM7S256
>peripherals tend to
>be more complex to use then LPC2148 but you could say that SAM7S256 is
>more flexible.
>To make an exhaustive comparison would require few more pages so you
>have to look at
>what peripherals you need in your app and see which chip has better
>support.
I just wanted to add another point to consider. Timer length. One item
that really attracted me to the LPC family was the 32bit timers. It
sometimes makes a real difference to have that kind of dynamic range. You
can have a high precision timer and still deal with long periods w/o
needing to change prescalers or poll/interrupt frequently. I too advantage
of that in the timer I built in newlib-lpc. Another place it would be
potentially useful is in quadrature decoding. At high speeds you want to
count pulses but at low speeds you measure the time between pulses. With a
large timer you can get much closer to zero speed before having to give up
or deal with wrap around. Not useful for everyone but sometimes it's very
nice. As I recall the Atmel parts have 16bit timers but maybe they've
added some larger ones since.

Robert

Another sign of the end of civilization, our technical magazines are
getting chatty
From an EETimes product descriptions 2006/08/09
".... systems that can sample gobs of inputs simultaneously"
Now just what is the technical definition for gobs again?
http://www.aeolusdevelopment.com/
Thanks elektrknight, Robert and Paul!

elektrknight, your comparison is very usefull!!

The finish lines you worte, makeme get in a hard decision.
Im just already buy a OLIMEX board for LPC... but the quality
information is a very imporatant thing!

There is header files for LPC2148? And USB support (examples,
projects...)? I hope so!
In the ATMEL web site i find this items, but in NXP, not. I hope the
GREAT GNU communty will helpme in this.

Thanks Again
--- In l..., "gasparpollano" wrote:
>
> Thanks elektrknight, Robert and Paul!
>
> elektrknight, your comparison is very usefull!!
>
> The finish lines you worte, makeme get in a hard decision.
> Im just already buy a OLIMEX board for LPC... but the quality
> information is a very imporatant thing!
>
> There is header files for LPC2148? And USB support (examples,
> projects...)? I hope so!
> In the ATMEL web site i find this items, but in NXP, not. I hope the
> GREAT GNU communty will helpme in this.
>
> Thanks Again
>

If you want LPC2148 demo code including USB, go to www.jcwren.com/arm

JC,

I guess this must be 'shameless pimping' but this is a great set of
demos! Thanks for writing it.

I just had to have that NSSL Storm-Chase T-Shirt!

Richard