Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
06/23/10 07:28
Read: times


 
#176853 - Please don'g generalize
Responding to: ???'s previous message
Justin said:
People already bought the s/w for an 8051 and they are unwilling to fork over more money to learn a new cpu and the massive time investment.

No massive time investment to look at a new chip.

You can buy a development board with demo software and be productive after 2-3 days. Faster, if you already have experience with a couple of different processors/processor architectures. Remember too that a 8051 is hell-on-earth for running a HLL. Most newer chips are very, very, very much easier to write a compiler for. For an ARM, you'll find that you really have to invest significant amounts of time to match or beat the ARM compiler. You don't have to be the best student at school to beat an 8051 compiler long before you graduate.

And you can find free software, if you are willing to sacrifice the availabity of a simulator.

Justin said:
People already bought the s/w for an 8051 and they are unwilling to fork over more money to learn a new cpu and the massive time investment.

You are confusing core size with cost or production complexity.

32-bit cores are nothing magic. They are good to use in any quantities in just about any-size project. It is only very specific situations where you may decide that you _need_ an 8-bit processor or a 32-bit processor. Maybe your product really needs an 8-pin AVR chip. Maybe it really needs a 144-pin monster with multiple USB, CAN, Ethernet, ... But there is no significant difference in price or power consumption for most of the chips.

If I'm going to produce a unit in 10k/year - I don't magically select a 32-bit processor. If an 8-bit processor is $0.2 cheaper and as good at the task, I would save $2k/year using the 8-bit processor. It's just that there are no simple rule saying that an 8-bit processor will be $0.2 cheaper. It may be the same price or even more expensive. And even if having the same price, it may require weeks of extra programming because most 8-bit processors have lousy peripherials.

Justin said:
The packages are larger the pin spacing is more separated, etc.

I assume you are talking about hole-mounted components now - not many such components available, since they are expensive to use in production.

But are you saying that there are a difference in package size or pin spacing between a 32-pin ARM chip and a 32-pin 8051 chip? I doubt it very much. An ARM isn't automagically 100+ pins.

Justin said:
Rarely, does anyone need all the bells and whistles that accompany the ARM chips.

Rarely, does anyone need all the configuration bits in a single 8051 chip. But it doesn't cost you anything extra to have access to the X2 speed, ...

Price and power consumption ads up when you add extra features. But you wouldn't buy chips with extra features unless you considered them meaningful. Then you would notice that you may pay $0.2 for a CAN contrller, or a similar amount for a USB device. Maybe $0.5 or $1 extra for a variant with USB host or USB OTG. But if you need USB OTG, then you need it.

Need all the bells and whistles? Most of them you get for free, giving you options when developing. But quite a lot of applications can take advantage of 16-character FIFO on UARTS. Quite a lot of applications have an advantage of a chip with two or four UART - how nice it is with a debug port, separated from the port(s) used by the business logic. Fast, SPI with FIFO or DMA? Guess how much nicer it is to guild a multiprocessor solution when you can drop 16 bytes of data and have the SPI perform the full transfer in the background. How many applications have "needs" for 32-bit timers, allowing the timers to tick at 15MHz and still span 286 seconds - or prescale it to 1Hz and have it tick for 4 billion seconds allowing it to store uptime for 136 years. Or maybe a timer with four separate match registers, letting you create four separate events with same frequency but varying phase. Many of the chips have excellent PWM - for example driving a three-phase motor with push-pull from 6 pins at zero processor load. That gives you a lot of CPU time to measure and decide what speed you really want. Many of the ARM chips have full IrDA support on at least one serial port. Possibly hardware-acceleration for RS485. Often fractional baudrate divisor allowing exact baudrate with whatever crystal you use. Normally always a PLL allowing the processor speed to be changed dynamically. Often multiple I2C. Not too seldom a 12MHz USB device with the required capacity to service it. Quite a number of applications can make good use of the peripherials - quite large parts of applications can be handled by the hardware and ISR.

Justin said:
Unfortunately, it is unnecessary power because a lot of applications are just bloated and unrealistic.

I don't think too many developers have time to spend on adding too much extra bells and whistles on embedded products. They tend to deliver the absolute minimum. It's the PC programs that gets all the bloated extra just because you can link in 10 libraries more and drag/drop some extra fields into the dialogs. And the difference between embedded and PC programs is that the PC program has an almast fixed distribution cost - a CD or DVD can hold quite a lot, and the bandwidth for downloading applications isn't so high either. For embedded, you may save $0.5 my using one step smaller flash, so there is incentives for not bloating.

But you have to separate a couple of things.
- Code seen on the web tends to be lousy, since it is mostly students posting it - they are proud that they "almost" got the code working.
- Much embedded products have lousy software - not bloated, but badly written and badly tested resulting in huge amounts of bugs. Doesn't depend on chip. Only time, education, goals, management, ...
- You only see the bad/broken/uggly - when an embedded device works well, you don't notice it. Most of them are expected to be almost invisible, while solving their tasks.

Justin said:
You even have to worry about the heat dissipation from these chips

Heat dissipation? You, as developer, may decide if you want to run your ARM chip with 3.3V 1mA or if you allow it to draw 50mA. It's just a question of how much you crunch and what parameters you use for the PLL. There are ARM chips that may draw 5-10mA/MHz. There are chips drawing 1mA/MHz. And there are chips at 0.1mA/MHz. It's just a question of generation and need. A Cortex-M3 in 90nm technology gives 12.5DMIPS/mW. So you could get 125 million Dhrystone instructions/seconds at 10mW. Not so sure about your problems with power dissipation. 10mW doesn't sound like any huge heat problem...

1) A mobile phone consumes huge power for the display.
2) A mobile phone consumes a lot for a superscalar processor with 3D acceleration because we stupid customers buys the phones with the most animated featues.
3) A high-end mobile phone consumes a lot of power because we cant WIFI, Bluetooth, ... besides the "phone".

But the above has hardly anything with our discussion to do. I have a Nokia N900. A computer with integrated phone, running a full Linux system capable of installing Debian installation packages for the ARM distribution. If I want to build a Linux system, then I have to select a suitable processor for running Linux. If I need to build a lamp timer, I'm better off selecting a different processor.

You find a 100:1 or larger difference between a high-end and low-end in the 8051 world just as in the ARM world. What goes for the high-end chips should not be extrapolated down to the low-end world. The Nokia N900 runs a superscalar processor at 600MHz (and some people overclocks it to 1GHz). One of the products I work with runs an ARM chip at 48MHz - the chip can do twice as much, but I don't need the extra speed. Most of the time, I don't need 48MHz either but it's good for burst needs when multiple CAN channels runs at max while all other peripherials are also busy. For the majority of the time, the core is stopped. The main loop spends most of the time waiting at a halt instruction. Hot? If you buy me an IR-imaging camera (not the IR you get with a normal digital camera or standard IR film, but a camera that can actually measure temperature), I would be able to notice if the processor is powered or not. My finger isn't able to sense if it is up and running.

Justin said:
I will say I have never felt a hot 8052 and on top of that one can easily move the chips around on the board so that if they did heat up they would easily dissipate the heat.

Do you use tape to fix your 8052? If it's soldered, I can't see how you can easily move the chips around. If you have it soldered to a PCB, a CAD program would not care about the used core - it would move a 8052 chip with the same ease as it would move a PIC chip or an AVR chip or an ARM chip. If you have a processor with extreme quantities of pins? Then I really hope you are working with a product that needs such a chip - it would be stupid to add 60 pins "just in case". A 100-pin 8051 is no different from a 100-pin ARM. And you only select 100 pins if you see an advantage in doing so - for example by being able to remove a lot of external MUX chips.

In the end, there is nothing magic with the number of bits the ALU is wide. So there are no magic rules what is hard and easy. Select processor based on an unbiazed analysis of the needs. If the analysis points at a specific 8051 variant - use it. If it points at a specific AVR - use it. Don't use core size as a holy gral. Don't use digits in the model name as a holy gral. The 8051 will continue to live for a good many years. Not because it is best, but because it will always be "good enough" for a large number of tasks. But at the same time, it will be unsuitable for a large number of tasks too. The same goes for any other chip too, whatever manufacturer, architecture, core size, pin count, ... Make sure you don't go ahead and continue to use a 8051 where it is not suitable - just because of ancient history. And make sure you don't ignore other chips because of incorrect assumptions that are not applicable.

List of 104 messages in thread
TopicAuthorDate
So What Is An 8051/2 Good For?            01/01/70 00:00      
   thoughts            01/01/70 00:00      
      The Future of the 805x            01/01/70 00:00      
         PARC            01/01/70 00:00      
            Bigger Hammers            01/01/70 00:00      
               re: Bigger Hammers            01/01/70 00:00      
               The opposite problem seems more common here!            01/01/70 00:00      
         Would Toyota have had the problem if ...            01/01/70 00:00      
            Toyota: Case in point            01/01/70 00:00      
            RE: Toyota            01/01/70 00:00      
               It was a mechanical fix ...            01/01/70 00:00      
            Parallel Processing            01/01/70 00:00      
               Sometimes the practical reality is of little consequence            01/01/70 00:00      
                  Totally Agree, but I was looking for a magic bullet            01/01/70 00:00      
                  RE: "outperform"            01/01/70 00:00      
                     There are some operations ...            01/01/70 00:00      
                        rephrased            01/01/70 00:00      
                        Now, you are extrapolating            01/01/70 00:00      
                           good points, but            01/01/70 00:00      
                              How many 8051 chips uses 0.13u?            01/01/70 00:00      
                                 not yet            01/01/70 00:00      
                           not exactly ...            01/01/70 00:00      
                              Do not get focused on one operation...            01/01/70 00:00      
                              any 8-bit instruction can exist in a 32-bit processor            01/01/70 00:00      
                                 Yes, but does it?            01/01/70 00:00      
                                    So have you looked at any other processors?            01/01/70 00:00      
                                       not a point of disagreement, but you missed it anyway            01/01/70 00:00      
                                          A good point            01/01/70 00:00      
                                             beg to differ            01/01/70 00:00      
                                             Disagree entirely!            01/01/70 00:00      
                                          Yes, auto-increment/decrement is standard and not "feature"            01/01/70 00:00      
                                             What I wanted to point out ...            01/01/70 00:00      
                                                Same same all the time. no "one size fits".            01/01/70 00:00      
                                                   and the most important point is (drumroll) ....            01/01/70 00:00      
                                                Comparing Apples to Oranges            01/01/70 00:00      
                                          Prices are comparable            01/01/70 00:00      
               Parallel processing            01/01/70 00:00      
                  Sweeping generalisation!            01/01/70 00:00      
                     Not a magic silver bullit            01/01/70 00:00      
                        Fond memories            01/01/70 00:00      
                        A magic bullet            01/01/70 00:00      
                           Most concepts already exists in the wild            01/01/70 00:00      
                           Another generalisation            01/01/70 00:00      
                           Speed vs latency            01/01/70 00:00      
                              Why 8051?            01/01/70 00:00      
                                 Isn't it obvious?            01/01/70 00:00      
                                    ARM simpler than 8051            01/01/70 00:00      
                                       Generalisation            01/01/70 00:00      
                                          ARM 'MCUs' have their limitations too!            01/01/70 00:00      
                                             You normally engineer with a backup plan            01/01/70 00:00      
                                    No, it's not!            01/01/70 00:00      
                                       Im just trying to provide an argument            01/01/70 00:00      
                                          x bits are just one parameter among many            01/01/70 00:00      
                                             Avoiding the issue            01/01/70 00:00      
                                                Avoiding what issue?            01/01/70 00:00      
                                          They say it because it's true!            01/01/70 00:00      
                                          RE: ARM is not the only 32-bitter            01/01/70 00:00      
                                    Please don'g generalize            01/01/70 00:00      
                                 Heterogenous multiprocessing widespread            01/01/70 00:00      
                  Re: Multicore 8051            01/01/70 00:00      
                     ALU chaining            01/01/70 00:00      
   Well... maybe            01/01/70 00:00      
      A Linear Accelerator?            01/01/70 00:00      
         Its one of these            01/01/70 00:00      
      please, repeat            01/01/70 00:00      
         All I was saying was            01/01/70 00:00      
   So what the '51 are good for...            01/01/70 00:00      
      Not terribly helpful            01/01/70 00:00      
         Always up to the developers            01/01/70 00:00      
            RE: The manufacturers tells us...            01/01/70 00:00      
               Sales - "may be used for" presented as "recommended"            01/01/70 00:00      
               pretty hot, low-power and small            01/01/70 00:00      
                  Automotive...            01/01/70 00:00      
         but answers your original question (at least the one...            01/01/70 00:00      
         MCS51 still rocking !!!            01/01/70 00:00      
            Scale            01/01/70 00:00      
            Missing the point            01/01/70 00:00      
               Impossible to generalize into fields            01/01/70 00:00      
                  An appropriate generalisation...            01/01/70 00:00      
               You are right..Andy Neil            01/01/70 00:00      
                  Cheers!            01/01/70 00:00      
                     No..only AT89C52 can be used            01/01/70 00:00      
                        why do you insist on Atmel?            01/01/70 00:00      
                        what a strange post            01/01/70 00:00      
                        Tools?            01/01/70 00:00      
                           Multiple manufactuers with (almost) identical chips            01/01/70 00:00      
                              Getting better            01/01/70 00:00      
                                 Unified interrupt controller is really great            01/01/70 00:00      
                           Yes, even with free tools for PIC/AVR            01/01/70 00:00      
                              I mean no offense, but ...            01/01/70 00:00      
                              Similar difficulties coming to 8051/2?            01/01/70 00:00      
                                 Same same            01/01/70 00:00      
                  Is it your purchase price or why so sure AVR or PIC are off?            01/01/70 00:00      
                     Answer to Per and Erik...            01/01/70 00:00      
                  Living in the past            01/01/70 00:00      
                     Thanks John D. Maniraj            01/01/70 00:00      
                     locking            01/01/70 00:00      
                        RE: Locking            01/01/70 00:00      
                        Agreed, but            01/01/70 00:00      
                           fairly easy            01/01/70 00:00      
      Don't forget consumer devices            01/01/70 00:00      
         A perfect application            01/01/70 00:00      
   8051 vs ARM            01/01/70 00:00      
   just thought of one case            01/01/70 00:00      

Back to Subject List