Which uController to learn?

PIC is king, I'm sure. But I'd like to hear from those who are using all brands. Whichever you use, what do you like about it? What don't you like
about others? Suggestions re. learning?
I've programmed 68000 assembly and some higher-level languages (FORTRAN; some BASIC; COBOL if forced to admit it), so no stranger to programming, per se.
Thanks,
--
John English


Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
John E. wrote:

The answer is strongly application dependent.
Ian
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
"John E." wrote:

8051 family. You can't keep a good chip down. It's been going since 1981 IIRC. NXP's (formerly Philips) variants do all sorts of useful stuff with the 8051 core plus their RAM is static now so you can reduce the clock to zero to save power. And the 8051 is multi-sourced !

PICs are indifferently documented so I've heard. I also heard something about dodgy compilers.
Graham
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Eeyore wrote:

Oh gawd. The biggest problem I've seen with PIC documentation is that people won't read it. Almost every quirk and pitfall now gets fancy shaded background balloons complete with code examples.
The only "dodgy" compiler I ever dealt with was SDCC for the 8052, what a POS. It may be better now, but a few years ago it sucked bad. Of course I don't even bother trying to use C on a PIC, it's just not desiged for it. The 18Fs are different though, they do C ok. FWICT, everyone seems happy with Microchip's ever-lasting "trial" C compiler for the 18Fs.
Multisourced, that's another misrepresentation. For the most part, chips from different vendors are just similar archetectures, not "compatible" chips insofar as actually being able to drop one in place of another. Not to mention how vastly incompatible the code internals are for anything but the most basic peripherals.
But that's just my opinion. ;-)
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

If you use a good C compiler like HI-TECH PIC-C then it works just fine on any 16series (or even smaller) PIC. You can do heaps with C on only 1K memory devices with a good compiler.

Yeah, very few limitations by the looks of it. I don't know why they don't just make it free and be done with it. It would put a lot of the other tool companies noses out of joint though I guess...
Dave.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
David L. Jones wrote:

I've never used it, but I've heard good things about it. I always use assembler on the PIC. I've used the Keil compiler on the 8052, sweet. It really generates dense code. Never done anything with an 18F yet, but I plan to whenever I need that much horsepower. I have to admit that there have been times that I've longed to be writing something for the PIC in other than assembler.

I'll have to order some 18Fs and give it a try. I got my Rigol scope today. Oh man this is just way too cool. :-)))
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Just looked at their web site. Top of the line is only EUR1800 (how the heck do I make a Euro symbol...?), US$2376. Not bad. FInally a DSO the average guy can afford. Keep us informed...
--
John English


Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
John E. wrote:

Bought the DS1102C (100MHz/2-channel) for US$999. So far so good, I like it. :-)
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Anthony Fremont wrote:

Eh ?
The various 8051 clones from various manufacturers are completely compatible in every respect. That's one of the joys of the part. Such changes as have been made are backwardly compatible even with no code change too.
Graham
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Eeyore wrote:

Things must have changed then. Only the barest parts would be compatible. As soon as you start adding extra peripherals (and these _are_ the chips that get used in production, not the 8051 true clones) things change allot. So it's true that you could probably get away with dropping an Atmel 89c52 in place of a vintage 8052, it likely wouldn't work the other way around since the Atmel part has "extensions". As soon as people utilize the extensions, compatibility disappears. no?
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Anthony Fremont wrote:

I don't know about that. Some of the extra functions seem to be implemented both by Philips and Atmel for example. Sure you can use an 89C51 with flash memory in place of an 87C51 to take the simpler example.

Manufacturers seem to have been careful about allocating the new SFRs. I've never come across an example where a 'new' SFR didn't default to 'plain vanilla' operation if left untouched.
Graham
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Eeyore wrote:

That's true, but wasn't really my point. I'm saying that people use these "special features" and then they narrow (or eliminate) their source options. Where parts from different vendors do have similar extensions, they don't usually implement the SFRs the same way. It's been a while since I looked around, maybe vendors are getting on the same page now (why do I really doubt that though ;-).
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Anthony Fremont wrote:

Well.... yes if you do use those very specific features you will be stuck with a single source but you're still no worse off than you would be with a PIC.
Graham
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

The differences are minor. And if you code properly, its very easy to adjust any relocated SRF's that affect program execution. Ditto for the Interrupt vectors, which for the "Standard" interrupts like T0, T1, etc... are usually at the expected addresses anyway.
Now, clock cycle / instruction cycle time is another story. I think the original 8051 would execute 1 instruction every 12 clocks. (?) Newer ones can do it in 2. (in other words, a 6x improvement).
If yours happens to default to the faster "speed", then it may not be a drop-in replacement. -even if its 100% code compatible.
-mpm
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
[...]

The ones from Cygnal do it in one. Basically they are 50MPIS 8051s with analog stuff on board.
--
--
snipped-for-privacy@rahul.net forging knowledge


Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
snipped-for-privacy@aol.com says...

Yes, I always wrote a module for each UC that had the names of all SRFs for that model. This module was then included in the MAKE based on version. Never, EVER, use absolute addresses for SRFs.

Sure, I hard-coded these at each location, whether they were used or not. The main source module would have a stub to each ISR.

Yes, as I recently found out (duh!) the original 8051 has a bit- serial ALU. BTW, MUL and DIV are 24 clocks per instruction.

--
Keith

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
wrote:

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"
snipped-for-privacy@interlog.com Info for manufacturers: http://www.trexon.com
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
snipped-for-privacy@interlogDOTyou.knowwhat says...

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.
--
Keith

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
On Thu, 15 Mar 2007 21:00:07 +0000, Eeyore

--
Instead of writing about what you've heard, dumb ass, why don't you
stick with what you know?
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
I think the AVR butterfly is a good starting point. Unfortunately the ICSP feature is quite picky with regards to voltage.
http://www.smileymicros.com/index.php?module=pagemaster&PAGE_user_op=view_page&PAGE_id4
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Polytechforum.com is a website by engineers for engineers. It is not affiliated with any of manufacturers or vendors discussed here. All logos and trade names are the property of their respective owners.