Which 8 bit microcontroller (family)

GroupDIY Audio Forum

Help Support GroupDIY Audio Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.

ruffrecords

Well-known member
Joined
Nov 10, 2006
Messages
16,152
Location
Norfolk - UK
For most of my career I was engaged in 8 bit microprocessor and then microcontroller design. I am now looking for a suitable modern 8 bit micro for DIY projects. Compared with the offerings in my day, today's microcontroller families have a wealth of peripherals and memory so there is no problem finding one that will do the job . For me the choice is more about cost and convenience of development. What I would prefer is:

1. Free assembler/ compiler that runs under Linux
2. Low cost USB programming  (flash program memory)
3. Low cost evaluation boards
4. Excellent community support - a board like group like groupDIY would be ideal
5. Available in DIP packages
6. On chip clock

What would you recommend?

Cheers

Ian
 
I would vote for Microchip pic family, wide range of µC and even some with dsp capabilities in DIP package. Easy programming, cheap dev board,  free tools running on linux, osx and win. Some very good C compiler but not free.
Also you could the arduino family, cheap, expendable, tons of library. Not sure if you can run it on linux.
 
I would not recommend 8b anything.

At my age I hate having to learn new "secret handshakes". All processor families have them. If you are familiar with some family why expose yourself to a new families quirks?

At the high end (large bit number platforms) several companies are using variants of the same silicon. I expect byte wide platforms to retain the old family characteristics for better and worse.. 

Good luck.

JR
 
JohnRoberts said:
At my age I hate having to learn new "secret handshakes". All processor families have them. If you are familiar with some family why expose yourself to a new families quirks?


Good luck.

JR

I was familiar with quite a few families back in the day - we tried to use the best micro for the job - but I have not undertaken a microcontroller development since I retired 15 years ago. A lot has happened in the microcontroller world in that time and I have forgotten most of the 'secret handshakes' I knew. So it is really back to basics for me. With the price of silicon these days I would not be surprised to find 16 bit devices are as cheap as 8 bitters so I am happy to go 16 bit.

Cheers

Ian
 
Niketouille said:
I would vote for Microchip pic family, wide range of µC and even some with dsp capabilities in DIP package. Easy programming, cheap dev board,  free tools running on linux, osx and win. Some very good C compiler but not free.
Also you could the arduino family, cheap, expendable, tons of library. Not sure if you can run it on linux.

Microchip and AVR seem to be the front runners from looking around the web. Arduino is a bit odd with its own HLL but it does run on Linux.  Looks lke the AVR micros are supported on Linux via Eclipse.

In the old days I used the 8051, the Hitachi H8 series, NEC uPB78K series, an odd Toshiba 4 bitter and the Zilog Z8. All but the Z8 and the 8051 seem to have fallen by the wayside.

Cheers

Ian
 
Depends what your needs are. For power efficiency and good peripherals, it's hard to fault the msp430.

However, if you can tolerate more power consumption, it's hard the fault the  cheap 32bit arms going around.

"Arduino" and it's cousin "Energia" have abstracted the chip from the function.

Virtually the same "write over API" will work on avr, msp and arm.

Hard to fault!
 
I've been using microchip and like the silicon, hate the tools. I write in assembler and the recent tools seem less friendly than earlier debugging environments. This may just be a personal problem.

I managed to get a FFT running on a microchip DSPic but it was work to do it in assembler instead of C.

JR

PS: I'd be surprised that you can't find a modern version of the 8051.. the industry doesn't usually disappoint when there is a large following built into a family. Just like they still sell 2n3055s. A new improved 8051 probably has some extra features the old ones didn't.
 
ruffrecords said:
For most of my career I was engaged in 8 bit microprocessor and then microcontroller design. I am now looking for a suitable modern 8 bit micro for DIY projects. Compared with the offerings in my day, today's microcontroller families have a wealth of peripherals and memory so there is no problem finding one that will do the job . For me the choice is more about cost and convenience of development. What I would prefer is:

1. Free assembler/ compiler that runs under Linux
2. Low cost USB programming  (flash program memory)
3. Low cost evaluation boards
4. Excellent community support - a board like group like groupDIY would be ideal
5. Available in DIP packages
6. On chip clock

What would you recommend?

Silicon Labs' series of 8051 variants, which meet all of your criteria except for the DIP package. And you can solder a 32- or 48-pin QFP, no problem. Really :)

The programming dongles are $30 or so. Boards are generally about $40. All have on-board oscillators, the worst of which are 2% accurate. They offer free Eclipse-based tools, and the Keil compiler is under the hood. They have a nice forum, and factory support has been very responsive. Part documentation is remarkably complete. The most difficult thing about them is choosing which part to use, as they have a lot! For general-purpose things, I've been using the C8051F314, which has 29 I/O pins in LQFP-32, a UART, an SPI interface, an I2C interface, two comparators, four timers, a programmable-counter array, 8k of flash, and 1k bytes of RAM. $2, I think.

SiLabs also offer 32-bit ARMs, and the Cortex M0 parts are cheaper than some of the full-featured (lots of ADC and DAC) 8051s. But you won't program those in assembler. (NB: I don't use assembler for the 8-bit things, the compiler does a better job than I can do.)

-a
 
I vote for 8-bit AVR - very compact, easy to program.  Very high performance for the dollar.

Open-source toolchain - can write programs using GCC, and use the avr-libc for all of the standard library stuff.  The library contains startup scripts so you don't have to do the entire .data, .bss, etc, initialization - the compiler just puts you in "main()" without too much fuss.

Unlike Arduino, you don't drag 20kB+ of library stuff with you just to get to main() : using avr-libc, you can write an LED blinker program in about 200 bytes of optimized code (including all of the startup stuff). If you really want to write assembler, you can inline it pretty easily.
 
You don't mention on-chip peripherals. For mixed-signal work I like parts with ADCs with differential inputs; I've had good experiences with the Atmel ATXMega series.

You don't mention production quantities. If this is indeed DIY-only, there are several pre-assembled header boards available to use SMD-microcontrollers on simple through hole PCBs. Olimex (https://www.olimex.com/) is one, Embest (https://www.olimex.com/) is another.

JDB.
[a good header board will take care of uC supply decoupling, which in turn can help to keep your analog rails clean]
 
Right now it is a toss up between PIC 16F1xxx and ATMega. They both have pretty much the same peripheral options and are available in DIP packages

PIC has a free complete tool chain including debugging that runs on Linux. Banking is a pain at assembly level but for C it is no longer visible. The free C compiler has limited optimisation and you only get the full set of optimisations for the paid version.

ATMega has no banking to worry about but I so far have not been able to find a fully integrated tool-chain for Linux that avoids the command line. ATMega uses gcc so  C optimisation is about as good as it gets. You can run an AVR plug-in for Eclipse under Linux but there is no debugging as far as I can see. The Arduino tool-chain runs under Linux but has no proper debugging.

If the ATMega had a tool-chain as good as the PIC it would win. If the PIC had no banking it would win. If I stick to C then the PIC has it by a nose. If the Arduino tool-chain was more capable it would swing back towards the ATMega.

My favourite device choices at this point are ATmega328PB or PIC 16F1827 The AtMega has more ROM/RAM and a couple of extra pins over the PIC but is more expensive. There's probably an 18F PIC that is near identical to the ATMega in features and cost.

Cheers

Ian
 
ruffrecords said:
My favourite device choices at this point are ATmega328PB[...]
For a new design I would never go for an ATMega; compared to the XMega it's slower, more expensive and more power hungry. The internal peripheral set of the XMega is much more normalized than that of the older devices, too.

(Yes, I know, DIP. One might consider the reasons newer devices tend to not appear in those. Hence: header/breakout board.)

A (recent) tool chain that works with ATMega will work with ATXmega, and vice versa. For linux: a few of my colleagues are reportedly happy with Sublime Text, which seems to integrate well with avr-gcc and avrdude. About eclipse I hear equal amounts of praise and moaning.

JDB.
[not had the opportunity yet to go full native on linux; still running Atmel Studio in a Windows VM.]
 
@JDB

Many thanks for the input. I started with micro-controllers back in the 80s and compared to what was available then, today's devices have a banquet of peripherals and resources. I understand the Xmega improvements but none of them is relevant to the small things I need/want to do. DIP package is however important.

Thanks for the tip on Sublimetext. I will check it out. I agree with your comments on Eclipse!

Cheers

Ian
 
ruffrecords said:
If the ATMega had a tool-chain as good as the PIC it would win. If the PIC had no banking it would win. If I stick to C then the PIC has it by a nose. If the Arduino tool-chain was more capable it would swing back towards the ATMega.
Cheers

Ian

it really depends on ur programming skills... either will do just fine...
 
kambo said:
ruffrecords said:
If the ATMega had a tool-chain as good as the PIC it would win. If the PIC had no banking it would win. If I stick to C then the PIC has it by a nose. If the Arduino tool-chain was more capable it would swing back towards the ATMega.
Cheers

Ian

it really depends on ur programming skills... either will do just fine...

I chose the PIC in the end mainly because of the integrated debugger. I learnt C back in the 80s so I am rusty but capable. Before that I had done loads of assembler.

Cheers

Ian
 
ruffrecords said:
I learnt C back in the 80s so I am rusty but capable. Before that I had done loads of assembler.

Cheers

Ian

unix ?

i am back in 87+ ... our lecturers were from punch card days  ;D ;D ;D
 
kambo said:
ruffrecords said:
I learnt C back in the 80s so I am rusty but capable. Before that I had done loads of assembler.

Cheers

Ian

unix ?

i am back in 87+ ... our lecturers were from punch card days  ;D ;D ;D
When I was a freshman back in the 60's we had to do fortran programming using punch cards (hollerith). The programs would batch run on the college's IBM 360 over night. 

JR
 
ruffrecords said:
Borland Turbo C running on windows 3.1.

Cheers

Ian

haha love Turbo C :)
then bought myself microsoft C and Assembler back in days...
i still have a windows 3.1 or 3.5 windows laptop somewhere in the house, still working :)




 

Latest posts

Back
Top