
MTK51 8051 Microcontroller Trainer Kit - rbanffy
http://www.kswichit.com/mtk51/index.html
======
synack
I've had a lot of fun messing with SiLabs EFM8 series chips recently. They've
taken an 8051-compatible core and added a bunch of the peripherals you'd
expect to find on a modern ARM SoC; SPI, I2C, USB, CAN, Watchdog, and the
PWM/PCA module has a lot of interesting options for generating different
waveforms.

SiLabs provide a free license for Keil 8051, which is based on an absurdly old
DOS assembler called A51.EXE (The Mac/Linux version runs under Wine behind the
scenes).

The SDCC toolchain supports 8051 fairly well, using code ported from the
ASxxxxx project that dates back to the PDP-11 days! [http://shop-
pdp.net/ashtml/asmlnk.htm](http://shop-pdp.net/ashtml/asmlnk.htm)

There was an attempt to add 8051 support to binutils and gdb in 2001, but the
patches were never merged. If somebody's looking for a project to get their
hands dirty... This would be a good one.
[https://sourceware.org/ml/binutils/2001-12/msg00489.html](https://sourceware.org/ml/binutils/2001-12/msg00489.html)
[https://sourceware.org/ml/binutils/2001-12/msg00488.html](https://sourceware.org/ml/binutils/2001-12/msg00488.html)

I really like the 8051 ISA, it's simple enough to wrap your head around and
the modern variants are competitive on price and power efficiency with things
like the PIC and AVR.

That said, with ARM Cortex-M0 chips costing only a few cents more and having
active support in every toolchain, it's hard to argue for 8-bit solutions
beyond nostalgia or sunk cost. Still, they're fun chips.

~~~
kosma
There's one thing about EFM8 that you simply cannot beat: price. We're using
them in several product lines and aside from some minor errata, our experience
has been very good. When it comes to doing simple real-time control (PWM and
the like), you just can't beat a $.40 MCU... not to mention the smallest
20-pin version is just 3x3mm.

------
userbinator
From the name, I thought it would be a MediaTek product...

The 8051 is a very unusual architecture by contemporary standards, but is
found in a surprisingly large amount of products and by some statistics,
outsells ARM by a wide margin.

~~~
pkaye
The 8051 was originally developed by Intel but there were many second sources.
It has a Harvard architecture so separate code and data memory space and
furthermore an external memory space. Also can do single bit operations which
is useful for controlling IO pins. Although an 8-bit processor, the compilers
(like Keil which is now owned by ARM) are quite good. Not a days if I was
wanting a low end micro-controller I would go with an ARM Cortex-M as the
32-bit CPU just makes programming a lot easier. I recall the days I spent
micro optimizing a 32-bit multiply or divide on an older 8-bit CPU.

~~~
vardump
> Although an 8-bit processor, the compilers (like Keil which is now owned by
> ARM) are quite good.

Quite good? Keil's compiler is horrible. It produces large (2x too big) slow
(2-4x too slow) binaries.

~~~
kbeckmann
Which compiler would you recommend using instead?

~~~
vardump
I don't think there's a competent 8051 C compiler.

------
iuguy
If the MTK51 seems a little full-on, I'm currently in the last week of a fully
backed Kickstarter[1] based on the ATTiny85. Just got our final 1.0 test
boards today and start shipping next month.

Documentation and tutorials are at
[https://docs.hidiot.com/](https://docs.hidiot.com/) if anyone's interested.

[1] - [https://www.kickstarter.com/projects/2072712581/the-
hidiot-c...](https://www.kickstarter.com/projects/2072712581/the-hidiot-card-
sized-electronics-learning-for-eve)

------
dlevine
Wow. This brings back quite a few memories. A number of years ago (15 to be
exact), I spent a good portion of my final semester senior year at MIT in a
lab (6.115) programming the 8051 in assembler and wiring interesting things up
to my nerd kit. Taught me a lot about how computers work at a low level and
interact with other devices (I remember using an oscilloscope to watch bytes
coming in from a MIDI device that I had wired up to it).

Going to the course website, it looks like they still use the 8051, and the
same professor is teaching the course.

~~~
Tanegashima
I also learned assembly with the 8051.

My project was a floppy disk drive, a floppy disk drive that had an LCD, which
totally makes sense...

------
66o
I had lot's of fun with the simpliest one of TI's launchpads[1]. Sample code
is written in a way that doesn't hide implementation details like Arduinos do.
It really improved my understanding of uC.

[1]: [http://www.ti.com/lsds/ti/tools-
software/launchpads/overview...](http://www.ti.com/lsds/ti/tools-
software/launchpads/overview/overview.page)

Edit: I should have added I meant MSP430 series as now I see they have arm
based boards as well

------
DominoTree
This guy has several other similar microcontroller/microprocessor training
kits available as well - [http://www.kswichit.com](http://www.kswichit.com)

Neat stuff!

------
agumonkey
heh feels like a generic HP48 to me.. I'd love to have this.

