Go Down

Topic: Time to retire ATmega328P? (Read 10422 times) previous topic - next topic

68tjs

You do not want to understand you.

In this discussion there are two concepts:

1) Is Atmel  will continue to make avr ?
IMHO  answer is YES.
Anyway when Atmel will announce the end of avr there will be the possibility of buying millions of units in a last order. It's always the way it happens.

2) Is the avr technology obsolete ?
IMHO  answer is difficult because there is a technical side, a practical side and an irrational dimension.
- Technical side:
 IMHO   answer is NO.
 It is often enough to think and avoid costly programming methods in time and memory usage.

- Practicality.
IMHO  answer is  difficult. How long will it continue to exist foundry for 90nm ?
It is an economic problem. I can't answer.

- Irrational side:
  - Much buyers of Arduino board, or other board, are not specialists.
     They tend to choose the biggest, the strongest, even if it is useless.
  - For advanced users still use the same component ends up being boring.


Consequences:
If a  board manufacturer (Arduino or NXP or ST or Chinese), mostly sells boards based on ARM it will stop  to make boards based on 8 bits micro-controler.  Keep a single product line is the solution that allows  maximum profits.
 
Another point: all products created in US or in Europe are copied in China and sold for a very low price.
The only solution is to always introduce innovative products even if they are not really necessary.

68tjs


Quote
If they were obsolete, the distributors would all have them listed as "Discontinued", "End of Life", etc. and they are not:

I think we do not give the same meaning to the word "obsolete".
 Probably our culture are not the same side of the Atlantic.

 Here, "obsolete" does not mean "not found", it means that it's products or methods of the past.
To day you can always write your mail with a typewriter even it is "obsolete", there always exists that work but I think you're using a PC with a word processor and printer. :smiley-mr-green:

CrossRoads

Quote
adjective
1.
no longer in general use; fallen into disuse:
an obsolete expression.

2.
of a discarded or outmoded type; out of date:
an obsolete battleship.

3.
(of a linguistic form) no longer in use, especially, out of use for at least the past century.
Compare archaic.

4.
effaced by wearing down or away.

5.
Biology. imperfectly developed or rudimentary in comparison with the corresponding character in other individuals, as of the opposite sex or of a related species.
[color]


You are correct, my understanding of the word as it relates to electronics does not fit any of those definitions.  If a part is still being manufactured & consumed by the mass market and the manufacturer continues to supply and support it, it is not obsolete.[/color]
Designing & building electrical circuits for over 25 years.  Screw Shield for Mega/Due/Uno,  Bobuino with ATMega1284P, & other '328P & '1284P creations & offerings at  my website.

CrossRoads

The PIC has some disadvantages - 3.3V output and only 10mA supply current, so of limited use for driving LEDs (could be limited to Red only), small motors, transistors, couldn't drive small telecom relays - so all the stuff that the '328P is good for in embedded projects without needing extra components.
More expensive - $3.15/100 vs  vs $2.71/100 (digikey pricing)
Does have nice features for software projects, if you're into writing big software projects.
Designing & building electrical circuits for over 25 years.  Screw Shield for Mega/Due/Uno,  Bobuino with ATMega1284P, & other '328P & '1284P creations & offerings at  my website.

odometer

For me there is one issue that the AVR does not solve

- support for double (64 bit) math - preferably in HW.

I have seen many posts (esp GPS related) where floats just are not precise enough.


I was thinking of writing a library for that sort of thing, but the coding would likely be too complicated for me.

As for myself, I wonder whether floating-point arithmetic really belongs on an AVR. If it were up to me, I would just use fixed-point arithmetic and be done with it.

robtillaart

floats are mostly easy for us mere humans, when we do not need to have an exact number.

If I count apples I want to be exact. If I want the distance to the moon, I want an order of magnitude and that is where floats come in.

@Odometer
BY chance do you have a link to a good fixed point lib that includes functions like sqrt and trigonometry?
(I'm familiar with the big number lib )

Found this one - https://code.google.com/p/libfixmath/ - for my todo list
Rob Tillaart

Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -
(Please do not PM for private consultancy)

odometer

Quote
@Odometer
BY chance do you have a link to a good fixed point lib that includes functions like sqrt and trigonometry?
(I'm familiar with the big number lib )

Found this one - https://code.google.com/p/libfixmath/ - for my todo list
Not good, only 16 bits after the radix point.
Maybe use it as a model to construct a more precise library, though.

I wonder if it would be OK to use, say, 64-bit integers. I wonder which would be better, 16.48 format or 32.32 format.

fjrg76

No one is saying ATMEGA328 is obsolete. What is starting to be outdated are the 8 bit architectures. ARM (in all its flavours) is the future; and for the embedded market the Cortex M branch is the future.

LPC824 is better than ATMEGA328

fjrg76

LPC824 is better than ATMEGA328 in all aspects, from performance to price. For the Arduino's end user the change to a newer architecture (in regards to the Arduino One) is painless.

Some interesting features that should be taken into account for the Arduino designers are:

a) LPC824 is faster (Up to 30 MHz). It includes its own 12 MHz on-chip oscillator at 1.5% accuracy. On-chip oscillator + on-chip PLL = core running at 24 MHZ
b) LPC824 is cheaper
c) 32 bit bus lets do more work with less programming instructions
d) 16 bit instructions means more code in less flash
e) Imagine all you can do with 8 KB in RAM
f) Better power-save profiles. It means you might power the board with batteries
g) Better peripherals
h) No external programmer other than a UART.
i) 12-bit ADC with a sample rate up to 1.2 Msamples per second
j) One of my best LPC824 features: the SWITCH MATRIX. If you are not aware of what this means here is a short explanation: you can move any peripheral function to (almost) any pin (**power pins are not movable**).
k) All that and many more features plus the Cortex-M0+ beauties: 32 bits bus, 16 bit instructions, NVIC and SysTick included at the very kernel.

I might continue listing the LPC824 features but it's better that you can see it by yourself:

http://www.mouser.com/ds/2/302/LPC82X-466467.pdf

CrossRoads

Drawbacks: SMD only, no fixing your board by replacing the chip. Need the 32-pin leadless part to get a comparable qty of IO as the '328P.

32K Flash, 8K SRAM.  I could see a lot of the flash being used for setting up the flexible hardware configuration.

('1284P has 128K flash, 16K SRAM. And available in a DIP (not an official board, but pretty handy).)

"High-current source output driver (20 mA) on four pins."  Not the handiest - need to add external hardware for simply driving LEDs for example, leading to a multichip board right off the bat. 

Does have a lot of nice features. The input switch matrix would need to be addressed by the IDE - I can see lots of confusion there getting that set up.

Maybe have the SMD part as a module to go on a board so it could be swapped out when folks smoke it.
Designing & building electrical circuits for over 25 years.  Screw Shield for Mega/Due/Uno,  Bobuino with ATMega1284P, & other '328P & '1284P creations & offerings at  my website.

westfw

Quote
LPC824 is better than ATMEGA328 in all aspects
That seems doubtfull.
Quote
c) 32 bit bus lets do more work with less programming instructions
For some operations.  An m328 AVR can set or toggle an IO bit (or a byte register bit) in a single 16bit instruction.  Not so an ARM.

Quote
d) 16 bit instructions means more code in less flash
Most AVR instructions are also 16 bits.

Quote
g) Better peripherals
More complicated peripherals.

OTOH, Switch Matrix is pretty awesome.  (although... I'm not exactly sure how to take advantage of it in an Arduino context.)

Have you implemented an Arduino "core" for LPC824?  If so, how big is "Blink."  One problem I've seen with a lot of the ARMs is that the vendor libraries are not very space-efficient.  That used to be fine, when most of the chips had 128k+ of flash memory (like Due and Zero), but it starts to worry me on these smaller (32k or less) chips...

Pinaki_Gupta_1982

I'm very new to this domain. May I ask a silly question? Is there any bread-board for smd parts? Do the ARMs have ADC/DAC built-in? Do they have a large flash+eeprom+ram inside? Do they run at 5V? Are they easy to solder? Is there any veroboard for smd parts? If all these meets I will jump to arm. Otherwise I think people those who are learning will be using DIP based AVRs but 8-bit DIP AVRs will be educational and instructional purpose tool only, may be used when prototyping a project, the same is true to the 'Through The Hole' parts also.

Isaac96

#27
Jul 25, 2015, 10:20 pm Last Edit: Jul 25, 2015, 10:22 pm by Isaac96
Many ARMs have ADCs and DACs. The Arduino Due has a large ARM chip with both of those features, as does Teensy 3.1.
The Due is 3.3V only and cannot take 5V inputs, while the Teensy operates at 3.3V but will tolerate 5V on its inputs.
EDIT Also, many ARMs cannot supply much current on their outputs. That makes it hard to power LEDs.
Do not PM me for help. I will delete immediately.
CONNECT THE GROUNDS!

After Tuesday, even the calendar goes W T F

westfw

Quote
Is there any bread-board for smd parts?
Is there any veroboard for smd parts?
The usual solution is something like a breakout board that will plug into a breadboard, or a less-specialized "Schmartboard" (specifically designed to be easier to solder.)  Such stuff appears all over Tindie.   Of course, if you were moving to ARM for lower cost, these "extras" would blow your budget.

Quote
Do the ARMs have ADC/DAC built-in?
Yep.

Quote
Do they have a large flash+eeprom+ram inside?
Yep.
I just picked an STM32L476 "Discovery" Board (MSRP about $20).  The chip has 1M Flash, 128K RAM, 12bit A2D and D2A, 6 uarts, native USB, and more.


Quote
Do they run at 5V?
Mostly not, but some do.  Atmel has announced a "SAMC" series that has 5V operation.  The Cypress PSoC parts will run at 5V...

Quote
Are they easy to solder?
It is reported that they're not as bad as they look, assuming you have a pretty high-quality PCB.  Which is ok, given that they look awful, and high-quality PCBs are a lot easier to get than they used to be.

The real issue shows up when your program stops fitting in an ATmega328, or you need some modern peripheral like USB or Ethernet.  Then you're pretty much stuck with SMT and 3.3V anyway, and you get to decide whether you're going to bite the bullet, or deal with module-level components (Pro Mini, Teensy, Maple Mini, etc, etc.  All similarly priced.)

All that said, there is little reason to "retire" the 328 for those problems that don't stress it...


Avamander

#29
Jul 26, 2015, 11:12 am Last Edit: Jul 26, 2015, 11:18 am by Avamander
The PIC has some disadvantages - 3.3V output and only 10mA supply current, so of limited use for driving LEDs (could be limited to Red only), small motors, transistors, couldn't drive small telecom relays - so all the stuff that the '328P is good for in embedded projects without needing extra components.
More expensive - $3.15/100 vs  vs $2.71/100 (digikey pricing)
Does have nice features for software projects, if you're into writing big software projects.
If I'd knew how to program those ARM processors, I'd dump Arduino IDE instantly. I seriously hate it sometimes, but there are no solutions as simple as it is (for Linux).

People have to deal with workarounds and removing features to deal with the low space Uno's and Nano's have. As soon as one wishes to use any networking, GPS or anything else other than simple led blinking.

Multiple SPI ports would be a godsend (no more bitbanged SPI!), 3V logic with 5V tolerance would be nice dealing with ESP alongside 5V LCD's.

Claiming that ARM chips are newbie hostile isn't a valid argument, you, smarter ones can make it as simple as programming ATmega328s. For beginners adding one more resistor and a transistor to blink a led would not be hard, would take a bit more space on a breadboard, but seriously, we can handle it. A lot worse is to deal with logic level incompactibilities, bitbanging and memory and space limits later on.

Go Up