Walter Banks wrote:> Eric, > > Some factual corrections and comments. > > > 8051 I don't know any versions of the 8051 that has a barrel shifter for multiple > bit shiftsThere are some with an additional ALU SFR mapped, first seen in the Siemens 80C517. That allowed 32 bit operand, and IIRC included a barrel shift. There is no native opcode for barrel shift. -jg
Microcontroller Family Selection Guide
Started by ●November 5, 2007
Reply by ●November 5, 20072007-11-05
Reply by ●November 5, 20072007-11-05
On Nov 5, 2:01 pm, Jim Granville <no.s...@designtools.maps.co.nz> wrote:> Eric wrote: > > I could swear that the 8051 had a barrel shifter, but maybe it was one > > of the variants that had that feature and I just assumed it was part > > of the original 8051. > > > The 8051 memory paging I was referring to should have been named > > differently to avoid confusion. I had in mind the bottleneck of using > > DPTR to reference memory and the fact that most instructions do not > > have the ability to reference "external" memory. That's not really > > paging...it's worse in my mind. > > That's an opcode reach threshold issue, and every device have those. > In the 80C51 you have 128+128 bytes of DATA memory, which can be > accessed & also INC/DEC/DJNZ/AND/OR etc _without_ consuming a register > pointer. > In this memory, the 80C51 is _more_ code efficent than a core like the > AVR, where ALL Data memory goes via some pointer, or offset pointer. > > A better idea on a uC register ('RISC') core, is a register frame > pointer a la C166, and z8. The AVR started life as a RISC IP block, so > that was not on their radar. > > XDATA is Microcontroller optional, and so has less access opcodes. Many > newer C51's have multiple DPTR sets, which eases the bottleneck. > > > > > There are msp430 devices with 2% accuracy in the internal osc. > > It is not the precision, it is the absence of Low Power on Chip OSC. > We have an app right now, where we cannot afford a 32Khz Xtal, > and do not need high precision. > That's actually not easy to resolve. eg AVR P versions OnChip LF OSC, > consumes a large 100-220uA. > > Best are newest Silabs devices at 5.5uA and some WDOG Osc, at 1-2uA, > but most WDOG osc are very poor in Precison AND trim. > There is a definite Icc/Precision trade off. > Ideal would be a RS08 with more pins, but that's not around yet... >if you are not worried about precision, STM32's have .65 uA typical on the low power chip OSC, 1.2uA max
Reply by ●November 5, 20072007-11-05
FreeRTOS.org wrote:> "Eric" <englere_geo@yahoo.com> wrote in message > news:1194242160.870442.15090@19g2000hsx.googlegroups.com... > >>I wrote up some of my thoughts about various microcontroller families. >>My intent is to mostly to help newbies and students decide what type >>of microcontrollers to start with. >> >>http://www.ericengler.com/downloads/microcontroller%20family%20selection%20guide.pdf >> >>Feel free to correct any possible errors, but I have a right to keep >>my opinions unless you can change them by presenting new information. >> >>There are many families I have never tried so I did not try to comment >>on them. >> >>I want to follow this up with another document that points out some >>good developer boards, ISP programmers, and JTAG debuggers for the >>various families. >> >>Eric > > > > What about the PIC32? You seem to have missed it off :o):) That's how it goes in this industry, as soon as you hit 'print', it's out of date! -jg
Reply by ●November 5, 20072007-11-05
On Sun, 04 Nov 2007 21:56:00 -0800, I said, "Pick a card, any card" and Eric <englere_geo@yahoo.com> instead replied:>I wrote up some of my thoughtsWith all the controversy already embedded (pun intended) in this thread, a Wiki page might be a good start towards a meaningful gathering of thoughts and real information.. -- Ray
Reply by ●November 5, 20072007-11-05
steve wrote:>>>There are msp430 devices with 2% accuracy in the internal osc. >> >>It is not the precision, it is the absence of Low Power on Chip OSC. >>We have an app right now, where we cannot afford a 32Khz Xtal, >>and do not need high precision. >>That's actually not easy to resolve. eg AVR P versions OnChip LF OSC, >>consumes a large 100-220uA. >> >>Best are newest Silabs devices at 5.5uA and some WDOG Osc, at 1-2uA, >>but most WDOG osc are very poor in Precison AND trim. >>There is a definite Icc/Precision trade off. >>Ideal would be a RS08 with more pins, but that's not around yet... >> > > if you are not worried about precision, STM32's have .65 uA typical > on the low power chip OSC, 1.2uA max[STM32 is way too big for this app, but..] Interesting. No mention of trim, but quite good numbers for 2:1 range. Even their HSI is pretty good at 80uA for 'precision' 8MHz. The Zilog eZ8-XP series have a similar uA region Wdog osc, and a full 32 bit Wdog divider, so trim is possible. Being lazy, we'd like a uA osc with precision too :) But being realistic we can tolerate a uA osc that can be infrequently recalibrated against a burst run of a higher precision CalOsc. Most chips have 32KHz watch Xtal osc, but on chip micropower ones are 'emerging technology'. As ST, and Freescale show, it IS possible to make uA region LF RC oscs, all we need, is that peripheral on the right uC ! [Notice again, how the core is not part of this selection process...] -jg
Reply by ●November 5, 20072007-11-05
Walter Banks wrote:>... snip ...> > Benchmarks on our C6808 compiler tools show that code generated > for the RS08 is between 10 and 15% larger than the same > applications on 68hc08 and S08 parts. Most of the difference is > lack of hardware multiply and divide. > > General comment about C compilers. All of the architectures > reviewed have good C compilers available. You may be doing > yourself a disservice by limiting yourself to no cost tools. The > typical commercial C compiler supporting this class of processors > costs between 2 and 3 man days. If it saves that much development > costs it should be considered.I am not familiar with the RS08, but comparing it with older chips such as the 8080 and z80, and assuming that you are not talking about floating point operations, 16 bit multiply and divide subroutines should take in the order of 200 bytes of code. Somehow I doubt that this explains your 10 to 15% size expansion. -- Chuck F (cbfalconer at maineline dot net) <http://cbfalconer.home.att.net> Try the download section. -- Posted via a free Usenet account from http://www.teranews.com
Reply by ●November 6, 20072007-11-06
On Mon, 5 Nov 2007 19:04:14 +0100, I said, "Pick a card, any card" and "Ulf Samuelsson" <ulf@a-t-m-e-l.com> instead replied:>"Eric" <englere_geo@yahoo.com> skrev i meddelandet >news:1194242160.870442.15090@19g2000hsx.googlegroups.com... >>I wrote up some of my thoughts about various microcontroller families. >> My intent is to mostly to help newbies and students decide what type >> of microcontrollers to start with. >> >> http://www.ericengler.com/downloads/microcontroller%20family%20selection%20guide.pdf >> >> Feel free to correct any possible errors, but I have a right to keep >> my opinions unless you can change them by presenting new information. >> >> There are many families I have never tried so I did not try to comment >> on them. >> >> I want to follow this up with another document that points out some >> good developer boards, ISP programmers, and JTAG debuggers for the >> various families. > >Why not create a Wiki instead?You took the words right out of my post! -- Ray
Reply by ●November 6, 20072007-11-06
CBFalconer wrote:> Walter Banks wrote: > > > ... snip ... > > > > Benchmarks on our C6808 compiler tools show that code generated > > for the RS08 is between 10 and 15% larger than the same > > applications on 68hc08 and S08 parts. Most of the difference is > > lack of hardware multiply and divide. > > > > General comment about C compilers. All of the architectures > > reviewed have good C compilers available. You may be doing > > yourself a disservice by limiting yourself to no cost tools. The > > typical commercial C compiler supporting this class of processors > > costs between 2 and 3 man days. If it saves that much development > > costs it should be considered. > > I am not familiar with the RS08, but comparing it with older chips > such as the 8080 and z80, and assuming that you are not talking > about floating point operations, 16 bit multiply and divide > subroutines should take in the order of 200 bytes of code. Somehow > I doubt that this explains your 10 to 15% size expansion.The 10 to 15% the range is from a benchmark of ~20 applications run through both the 6808 and RS08 compilers. The largest single difference was the availability of mul and divide hardware, there are other differences each accounting for a few bytes one way or another. Our RS08 16 bit mul and divide total 81 bytes 16x16 mult is 38 bytes and 16 by 16 divide is 43 bytes The 8x8 mult is 18 bytes the accum824 is about 100 bytes. All of the libraries were written in C. Regards -- Walter Banks Byte Craft Limited Tel. (519) 888-6911 Fax (519) 746 6751 http://www.bytecraft.com walter@bytecraft.com
Reply by ●November 6, 20072007-11-06
Thanks to all for the helpful comments. I agree with several posters that a Wiki would be a good way to let various people contribute. I don't have any experience setting them up and I'd appreciate it if someone could help set one up. When I get some time I'll update my document the best I can. It won't please everyone but I want to at least be accurate in the things I say. I didn't know about extended 8051's with multiple DPTRs. That sounds interesting indeed. I don't think Silabs has that, though. I really haven't looked much at 8051's and I mostly included info on them because they are perhaps the best known MCU family. I'll try to paint them in a more accurate light. One odd thing is that many 8051 variants still don't support internal debugging (breakpoints, single- step, etc). Silabs has their C2 debugger and I guess something like that is integrated on their USB stick. I guess the Intel 80251 died in the marketplace. What ever happened to the Philips XA - is that still around and still being updated? I'm also very excited about the STM32 and I will add more info about them. They now have a number of DEV kits, including that extremely cool little game with the color LCD and MEMS. At the price they're charging for it, it's almost free and it has an internal JTAG USB solution. Regarding the R8/M16, I have to say that I'm not the right one to comment about them. I have noticied them, and their recent attempts to actively market them. I'm sure they are fine devices and they have a lot of variants available. Again, this is why a Wiki would be good. I'd love to contribute what I can, but there's a lot of good stuff out there that I don't know about. I still see a need for 2 separate topics: one on the general features of the families, and another that talks about hardware and software tools. Or maybe the tools should be broken out so we cover hardware and software separately? Walter - I always appreciate your posts because you are a brilliant man and you're one of the best propeller heads I know (in the most positive sense). In all honesty, you can make anything sound simple, but those of us less fortunate in the gray matter department can't keep up with you. With my limited skillset, I can say that it would be almost impossible for me to write a code generator for the RS08. That's why you're worth every penny you make. I stand by my claims that the RS08 is not really suitable for low volume work, though. If a company already has the tools then it might indeed make sense to use it in low volume applications. But the cost of tooling for something that limited in reach is hard to mitigate. I'm not against commercial software tools. My paper is aimed at students and newbies and they need low-cost tools. Eval versions of compilers make sense in some cases, especially if they don't expire and their limits are reasonable. Two kinds of limited toolsets have recently surfaced that make a lot of sense: one is tethered to a specific dev board, usually through some kind of serial number on the board. The reasoning here is that I can't use that compiler anywhere except with that one board, so it can be cheap. The other kind of limitation is something like a student license. It can display a notice every time it starts up saying that it's only for use in a non- commerical setting. You might think there'd be a lot of cheating with that, but I disagree. Companies are very sensitive to being sued and they often have consultants and outsiders visit them. I think very few companies would cheat by using tools designated as non-commercial. For the record, I use IAR with the msp430, and Keil with the Arm. But I use gcc with the AVR and 9s12, and sometimes with the Arm and msp430. Eric
Reply by ●November 6, 20072007-11-06
Eric wrote:> Thanks to all for the helpful comments. I agree with several posters > that a Wiki would be a good way to let various people contribute. I > don't have any experience setting them up and I'd appreciate it if > someone could help set one up. > > When I get some time I'll update my document the best I can. It won't > please everyone but I want to at least be accurate in the things I > say. > > I didn't know about extended 8051's with multiple DPTRs. That sounds > interesting indeed.All 80C561's also allow PDATA or MOVX @ Ri access, so for an extra 256 bytes of DATA in XDATA space can be added 'almost for free', without using DPTR.> I don't think Silabs has that, though. I really > haven't looked much at 8051's and I mostly included info on them > because they are perhaps the best known MCU family.That's true, it is the most widely sourced core on the planet.> I'll try to paint > them in a more accurate light. One odd thing is that many 8051 > variants still don't support internal debugging (breakpoints, single- > step, etc).On new ones, that's pretty universal : Atmel's AT89C51RE2 has OCD, as do the new AT89LPxx series Winbonds' W89E series also have OCD Infineion XC8xx also has OCD, and a USB Key evaluation with THREE family members on it.> Silabs has their C2 debugger and I guess something like > that is integrated on their USB stick. I guess the Intel 80251 died in > the marketplace. What ever happened to the Philips XA - is that still > around and still being updated?Neither are candidates for new designs. Both rolled out in OTP, (and small OTP, at that ) right when the market started moving to FLASH, and neither hit critical mass. These also give a lesson in the importance of Binary Compatible, and how a vendors assurance of "just recompile" goes down like a lead-balloon in the real world.> > I'm also very excited about the STM32 and I will add more info about > them. They now have a number of DEV kits, including that extremely > cool little game with the color LCD and MEMS. At the price they're > charging for it, it's almost free and it has an internal JTAG USB > solution.That one is a good example, of the importance of Low Cost Eval/Debug access. The PIC32 may yet be similar, as Microchip are talking about screen PICtails plug in cards.> > Regarding the R8/M16, I have to say that I'm not the right one to > comment about them. I have noticied them, and their recent attempts to > actively market them. I'm sure they are fine devices and they have a > lot of variants available. Again, this is why a Wiki would be good. > I'd love to contribute what I can, but there's a lot of good stuff out > there that I don't know about. > > I still see a need for 2 separate topics: one on the general features > of the families, and another that talks about hardware and software > tools. Or maybe the tools should be broken out so we cover hardware > and software separately? > > Walter - I always appreciate your posts because you are a brilliant > man and you're one of the best propeller heads I know (in the most > positive sense). In all honesty, you can make anything sound simple, > but those of us less fortunate in the gray matter department can't > keep up with you. With my limited skillset, I can say that it would be > almost impossible for me to write a code generator for the RS08. > That's why you're worth every penny you make. I stand by my claims > that the RS08 is not really suitable for low volume work, though. If a > company already has the tools then it might indeed make sense to use > it in low volume applications. But the cost of tooling for something > that limited in reach is hard to mitigate.Cost of tooling ?! - is ~$40 hard to mitigate :) http://www.freescale.com/files/microcontrollers/doc/fact_sheet/USBSPYDER08FS.pdf For this you get a Free C Compiler, USB debug, and RS08 and HC08 support (If you get serious, you can Buy Walters Compiler..:) ) There are thousands of RS08 on the shelf in catalogue companies, in DIP8. To me that all adds up to VERY student accessible, and a simple core is not a bad place to start learning how these things actually work. Would you really want to throw over 10 Megabytes of manuals, at a novice student ?> > I'm not against commercial software tools. My paper is aimed at > students and newbies and they need low-cost tools. Eval versions of > compilers make sense in some cases, especially if they don't expire > and their limits are reasonable. Two kinds of limited toolsets have > recently surfaced that make a lot of sense: one is tethered to a > specific dev board, usually through some kind of serial number on the > board. The reasoning here is that I can't use that compiler anywhere > except with that one board, so it can be cheap. The other kind of > limitation is something like a student license. It can display a > notice every time it starts up saying that it's only for use in a non- > commerical setting. You might think there'd be a lot of cheating with > that, but I disagree. Companies are very sensitive to being sued and > they often have consultants and outsiders visit them. I think very few > companies would cheat by using tools designated as non-commercial.At the Student end of the scale, the focus has moved partly from Chips, to Modules & Debug Access - see the TI and Silabs latest low-cost solutions of a 'dock-able' USB debug, and Freescale's, Infineon's and ST's USB sticks (etc). Also all the small devices on Student's radar, usually have FREE Tools. Freescale IIRC are up to 128K free on the ColdFire C1, and all the 908 and RS08 tools are free. The new PIC32 goes to 64K, and most cores have some form of open source compiler, that may not be the tightest code, but does work. Zilog have free, and unlmited tools (they bought a compiler company) Zilog also have a opto isolated USB debug, good for power development work. Zilog also have good simulators. Then there is the Propellor chip - http://www.parallax.com/propeller/media.asp -jg