How would do you do an 8 x 8 multiply with 24 clocks and a serial ALU? Seems to me you'd need at least 64 clocks.
Anyway, MUL and DIV take 4 machine cycles (24 states, 48 oscillator clocks in the original 8x51). Still not 64 unless you're using both clock edges. There is at least one 8-bit micro that is serial internally- the ST-6 (it's a feature they say, lower noise)-- but I am not convinced that the 8051 is. Any cites?
Best regards, Spehro Pefhany
--
"it\'s the network..." "The Journey is the reward"
speff@interlog.com Info for manufacturers: http://www.trexon.com
Embedded software/hardware/analog Info for designers: http://www.speff.com
I don't have the microarchitecture of the original 8051, but you don't need a clock for each bit. The diagonals should be enough.
I thought it was six clocks per machine cycle and two (most) or four (MUL/DIV) cycles per instruction. It's been a long time since I used one though so may be misremembering the convoluted details.
It was brought up in AFC in the past week or so. I'll see if I can find the reference.
68000 series has pretty symmetric instruction set (orthoganol).
ie Moving from register to memory and vice versa is symmetric there are minimal exceptions. There are microntroller variants of processors that use 68000 instruction set.
Having a lot of registers is a bonus, 16 to 32 is ideal for the vast bulk on microcontroller apps, can get away with 4 or even 2 if you are keen.
Basically, for a beginner, you'd want an instruction set that works 'both ways' with registers, memory and IO ports, you dont want one with lots of lumpy exceptions or stack size restrictions or memory address or io restrictions - because if you are doing assembler you dont want to worry about that many until you are proficient, which usually happens fairly soon once you get stuck into it...
--
Regards
Mike
* VK/VL Commodore FuseRails that wont warp or melt with fuse failure indication
and now with auto 10-15 min timer for engine illumination option.
* VN, VP, VR Models with relay holder in progress.
* Twin Tyres to suit most sedans, trikes and motorcycle sidecars
http://niche.iinet.net.au
GEEEZ -- I gave up writing ASM for the 1st cut about 20 years ago -- the compilers available even then were efficient enough that you only needed to get down and dirty for the most critical timing dependent code.. there just isnt a point in starting off with ASM considering that C maps almost 1-to-1 to most assembly languages for most of its internal features. And the WinAVR C compiler makes it real easy to embed ASM right in the C code so I can do it in C first, then convert just the parts that need it in place with a perfectly working and tested "flow chart" right in front of me.
In addition.. for 99% of apps, you'll never bother with ASM because the compiled code will work right off and nothing will need to be hand optimized... you've gotta be right on the ragged edge of what the chip is capable of before ASM is going to help you, and 99% of apps wont even come close to that limit.
Names! Names! Names! (please). I agree with what you say, but I need the benefit of y'all's experience. Which controller "variants of processors that use 68000 instruction set" and which don't do "lumpy exceptions or stack size restrictions..." etc.
Just need to know what name to call these lovelies by.
True, some OSs suck more than others. OTOH, some suck so much they simply blow.
I haven't looked closely in the past couple of years. 8051s had it all over others several years back. I had plenty of 8051s (and the environment) for my last project so I just used them. only needed ten. ;-)
The 8051 is extreme Harvard. It makes sense once you break the von Neuman mindset. A von Neuman controller is a waste.
How so? ...at least until 64K no bank switching is needed. After
64K, well the 8051 was never intended to be a PeeCee. ;-)
AFAIC, the 8051 is a good choice as a bit-banger, which was what it was designed to do. As I've said, I've never used a PIC (or seriously looked at it, even) so I can't compare the two. My assumption is that the PIC architects aren't brain-dead (like Dimbulb).
I'm not so sure they ALL do. ;-)
There really isn't any ambiguity with an 8051 either. Gazinta bit and a gazouta bit and a couple of rules. Some tieups may be needed for shared pins. Share pins and you'll have that.
I'm certainly not afraid of them, just never had an opportunity. Maybe I'll buy a kit and play.
ARMs don't thrill me much. Too much power. I'd likely have to learn C. ;-)
Too much for what? The one I am using draws 70mA typical. Of course, you can run an AVR for less than 1mA. In my case, I use an AVR to power control an ARM. The ARM can do the job quicker so both can go back to sleep ASAP.
Why? They work in assemblers too, even if I don't.
And you are using a AVR to turn it on? I would think a small ARM like that can be throttled down to run at about the same power as an AVR ( 1 mA), the AVR and Atmel ARM's have about the same W/hz, as an example, but the AVR's have much better sleep modes
I don't need a pickup truck to go to the pub either but it comes in handy at the dump. This dual 1.86GHz laptop is kinda nice too (once I put enough memory on it).
Terran: Its cheaper for me to buy a stick of chips with the quantity discount than it is to buy the minimal chip that will do the job each time I come up with a new project :) Plus I dont have to wait for the new chips to show up -- always have a few on hand :) I've probably got 4 or 5 flavors of AVR hangin around... from 18 pin to 40 pin with various flash/ram/eeprom combos -- I just use whatever I got that will do the job at all :) havent run into a project yet where the processor was out of the idle loop more than 50% of the time :) hehehe I guess I could meet your criteria by cranking the clock speed down a bunch !! but for me -- the processor has only 2 speeds -- the fastest it will do without a crystal -- and the fastest it will do with one :) I dont see the point of putting a slower crystal in then having to bust nuts to make the code work.
Linnix: hehehehe ---- If I only used my Dual 2.8g hyperthreaded Xeon with 4 gigs ram to read newsgroups -- welllll :) but between editing DVD masters, programming AVRs and C#, designing databases, apps and websites, editing graphics, controlling my CNC mill, running 8-10 hour spice simulations on
10kw power supplies, etc -- I tend to keep this sucker pretty busy most of the time :)
KRW: I dont have a (working) laptop at the moment -- but the pub sounds like a good idea !!
68HC11, but it's old. I'll bet the 'HC12 and 'HC16 (do they still make those?) are good.
AVR, if you don't mind wimpy pins.
The TI MSP430 -- the small ones at least have oodles of pin drive, they appear to have a rational architecture, they're fast, and you can get a complete development system from TI for $20.
ARM, if you don't mind wading through all the different versions that are available to find what you want (check those pin drive capacities!). The instruction set is rational, but only in a screwy, RISC sort of way. The capabilities are HUGE, and so is the set of mistakes you can make -- I wouldn't recommend it for a beginner.
PowerPC -- Freescale has embedded versions. Same snarky comment about the instruction set as ARM, but still way better than a PIC.
Those are the ones that I'm familiar with.
Oh -- _not_ the Intersil/RCA 1802, unless you want to be an ace assembly language programmer. It was the very first processor I ever worked with, in 8th grade. I call it a NHISC -- Never Had an Instruction Set. I don't know if it's still around, but for quite a while it was the king of little space apps, because it had a huge geometry that could absorb cosmic rays without even noticing that they were there.
--
Tim Wescott
Wescott Design Services
http://www.wescottdesign.com
Posting from Google? See http://cfaj.freeshell.org/google/
"Applied Control Theory for Embedded Systems" came out in April.
See details at http://www.wescottdesign.com/actfes/actfes.html
I recommend Microchip PIC, starting 18F series because it has build in multiplier. =A3100 for complier package and =A3100 for ICD2 programmer/ debugger. MPLAB is free.
8052 and other processor is a consideration, but I started with PIC becuase it supported with training package, available offshelve, extensive range and easy to use. I developed successful project based on PIC. I'm now working on 2191 Analog Device DSP processor.
Damn google no longer accept my email and change into more complex emil, so I say goodbye to this discussion group.
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.