I can't order from any place that ships via post, since our Post has gone AWOL for a year now.
It seems surprisingly hard to find a socketed dev board, anything interesting I have found (Silicon Labs for example) has soldered SMD variants and are very expensive (> 125 euros).
Is there a programmer that supports all 8051 variants? Or a board with an onboard programmer that's closer to 50 euros?
Thank you. This is something like what I wanted, but unfortunately with their programmer it's close to 100 euros.
And according to Mikroe it only supports ST 8051s, I'm not sure if that is a problem or not.
Is there a programmer that supports all 8051 variants?
….
My question is: why do you need a devboard at all for DIP packages. It's very easy to make your own. You need power, clock, maybe memory and io. Easy.
There are many different variants of the 8051 processor family.
Do you want to use something specific?
I can't order from any place that ships via post, since our Post has gone AWOL for a year now.
It seems surprisingly hard to find a socketed dev board, anything interesting I have found (Silicon Labs for example) has soldered SMD variants and are very expensive (> 125 euros).
You can buy low cost modules with mounted parts, with pin headers, that give you access to smarter, more modern parts :QuoteIs there a programmer that supports all 8051 variants? Or a board with an onboard programmer that's closer to 50 euros?There is no 'all 8051 variants' as they vary in how they program serially.
See above SiLabs which have onboard Debug, with programmer ~ $40.
If you do not need 40 pins, Nuvoton have a range of 8051 boards, with debug included ~$25.
https://direct.nuvoton.com/en/nutiny-n76s003at
The STC parts have bootloaders, ( USB or UART ) so you can 'get going' for low budgets. Debug is a great time saver tho
Thank you. This is something like what I wanted, but unfortunately with their programmer it's close to 100 euros.
And according to Mikroe it only supports ST 8051s, I'm not sure if that is a problem or not.
If you choose a bootloader Atmel AT89xx, you do not need the SPI programmer.
eg AT89LP51RD2/RC2/RB2 series,
IIRC you just need a 1K pulldown push button on PSEN, to enable the ROM serial bootloader.
> I'm gonna over all you wrote. I don't understand all of it yet. I'll do some searches based on your recommendations.
What many of us on this forum call an "8051" might be different to what you call an "8051". The use case and form of 8051's has evolved quite a bit over time.
Are you thinking of something that looks like the original MCS-51?
I like playing with 8051s made by STC because my toolchain for them is cheap and simple:
Compiler: SDCC (free and open source, but you can use anything else that generates a hex file)
Programmer software: stcgal (cross platform, free, open source)
Programmer hardware: $3 generic USB UART serial converter. If you don't have one then you can use an Arduino.
You don't even need a clock source, they have that on-chip. Just power, a 100n capacitor on power, serial RX, serial TX and you're good to go.
Its worth noting that the obsolete AVR AT90S8515 is pin (but not code) compatible with classic 40 pin DIP '8051' MCUs apart from the polarity of RESET, active high on 8051, active low on AVR.
This means you can use an Atmel STK500 AVR programmer/development board with the 8051 in socket 'SCKT3000D3', but need some extra circuitry to invert the reset signal (which can be built on a small protoboard connected to its 'ISP6PIN' header to pick up power, ground and /RESET, which you should run through a 74LVC1G04 inverter to generate RESET to inject at the SPROG3 header next to it. You *must* remove the RESET jumper.)
Unless you've got a legacy COM port, you'll need a USB to DE9(m) serial adaptor to control the STK500 and communicate with the target 8051. The command line STK500.exe utility (bundled with Atmel Studio 4) can be used to control the STK500 to set target VCC and clock frequency (or plug in a crystal). Settings are persistent.
The board has all ports broken out to ten pin headers with target VCC and ground, eight buffered active low LEDs and eight active low switches, also on headers.
Obviously it can only be used to program 8051 MCUs with a built-in serial bootloader.
The Atmel STK500 can still be bought new, and can also be found on EBAY. Unfortunately prices are a bit on the high side for a nearly twenty year old development system, so unless you also need the capability to program 'classic' AVRs, it may not be the best choice for 8051 work.
Is there a programmer that supports all 8051 variants?
This is impossible. Forget it. Reason: The common denominator is the old Intel 8051/8052 from 1980. These are mask rom parts. There ware romless parts called 8031/8032. Flash was not available at that time. There were UV EPROM variants 8751/8752, which were very expensive.
Over the years the descentants diverged. When Flash storage came each vendor made his own programming interface, so you need a different interface for each vendor.
In commercial appliccations you simply don't use DIP any more. The process of putting a through hole component onto a PCB is 5-10 times higher than with SMD parts. Unless you have simple single-sided FR2 PCBs it is no longer economically viable.
My question is: why do you need a devboard at all for DIP packages. It's very easy to make your own. You need power, clock, maybe memory and io. Easy.
….
My question is: why do you need a devboard at all for DIP packages. It's very easy to make your own. You need power, clock, maybe memory and io. Easy.The board I linked to in #4 is sub $3, it hardly makes sense to make your own.
Starting with a known working board saves a shipload of time.
I’d suggest the Op buy a couple of ‘modern’ low cost modules, so they have a good reference as they learn.
I was playing in resent two years with 8051 MCUs and have collected some information, which, I hope, will be useful to you. I am considering only modern 8051 MCUs, which are 1T cycle per instruction.
First of all about boards and programmers. Board from MIKROE is the only "official" socketed board for 8051, since DIP/PLCC packages are almost phased out. Maybe it is worth to design your own board.
Also, you can try Aliexpress, there are some socketed boards for DIP40 8051 MCUs. Programmer from MIKROE supports AT89LP parts from Atmel, but NOT ALL OF THEM. Be careful!!! For myself made a simple SPI programmer.
There are quite a lot choices if you want a cheap DIP-40 development board
https://www.aliexpress.us/w/wholesale-avr-51-development-board.html
https://www.aliexpress.us/w/wholesale-stc89c52-development-board.html
For STC variants, STC89, STC90, STC11(1T), STC12(1T) are classic 8051 DIP pinout so any development board support STC89 should work. To program them you only need a USB2TTL dongle.
Maybe it's time to have a closer look at your basic requirements.
Why 8051? The architecture is thoroughly obsolete. It has also never been a "good" architecture. It has some nasty quircks that make it uncomfortable to do use it for ASM (school courses etc) and while SDCC has come a long way, it still is no GCC.
Why DIP? (And must it be native DIP?)
There are a lot of uC families out there, and although nearly anything is SMT these days, there are quite a lot of cheap development boards in the DIP form factor. These are compatible with breadboards which makes it easy to add some leds, buttons, or other things such as items form the "45 sensor kit". It is also quite easy to design your own PCB (I highly recommend KiCad) and PCB's are cheap to order these days.
I still have some breakout DIP DS89C4x0 boards with integrated USB-UART bridge...
https://www.eevblog.com/forum/buysellwanted/fs-(eu)-ds89c450-breakout-board/
There is internal bootloader, but with loosing some pheriperal resources there is possibility of breakpoint debugging...
https://www.analog.com/en/app-notes/using-the-keil-microvision-debugger-with-the-ds89c4x0.html
If you choose a bootloader Atmel AT89xx, you do not need the SPI programmer.
eg AT89LP51RD2/RC2/RB2 series,
IIRC you just need a 1K pulldown push button on PSEN, to enable the ROM serial bootloader.
Thank you. I'm still totally lost here, how do you program the device?
I don't like C which was one of the reasons I was thinking of an 8-bit MCU.
Unable to buy from Aliexpress, ebay etc. until we have a post office again
Yes, I understand it is probably simple to make one. But I don't know what's involved in program/debug for a minimal board.
I thought a factory dev board would have all the extras that would help me get started.
Some of the SiLabs boards are on Mouser, I'll check again for these. Unable to find a source inside the EU that stocks Nuvoton.
Unable to find a source inside the EU that stocks Nuvoton.
I need the least painful entry, since I don't have experience with MCUs. I have written a lot of software, but on much bigger boxes. I guess making a programmer is beyond me for a while.
I am not qualified to try to design a PCB, I am getting back into electronics after many years of being away from it, and I am having to relearn almost from the beginning.
If you choose a bootloader Atmel AT89xx, you do not need the SPI programmer.
eg AT89LP51RD2/RC2/RB2 series,
IIRC you just need a 1K pulldown push button on PSEN, to enable the ROM serial bootloader.
Thank you. I'm still totally lost here, how do you program the device?
The modern 8051 parts with inbuilt bootloaders, can be flash-programmed over a serial port, so any USB-UART TTL will work. Some modules I linked include the USB-UART HW.
Usually, some pin is pulled low at RESET exit, to enable the BOOT process.
It sounds like you would really benefit from a pre-made devboard so that you don't have to assemble or solder anything. Note that Aliexpress sellers do sometimes offer couriers like DHL for their products (just unfortunately a bit expensive).
If your goal is to write in assembly then the 8-bit AVR series of microcontrollers is probably a nicer option:
The AVR instruction set is a lot more sane than the 8051 instruction set (for a start you don't have 3 types of memory address, only 1)
Pre-made popular boards are very easy to get (buy an Arduino Mega or an Arduino Uno)
These boards have the programmer built in (just plug a USB cable into the board)
The flashing software is free and easy to get (avrdude can be used directly or it's built into the Arduino IDE & atmel studio IDE)
There is a lot of support on the web for beginners[/li][/list]
If you choose a bootloader Atmel AT89xx, you do not need the SPI programmer.
eg AT89LP51RD2/RC2/RB2 series,
IIRC you just need a 1K pulldown push button on PSEN, to enable the ROM serial bootloader.
The modern 8051 parts with inbuilt bootloaders, can be flash-programmed over a serial port, so any USB-UART TTL will work. Some modules I linked include the USB-UART HW.
Usually, some pin is pulled low at RESET exit, to enable the BOOT process.
If you need DIP40 the AT89LP51RD2 etc can program using Microchips FLIP
https://www.microchip.com/en-us/development-tool/flip
The Silabs EFM8BB52 series parts are newer, with better ADC and DAC and more MHz than the Atmel parts, but EFM8 do not come in DIP. SO16 is the 'largest pitch' part.
I don't like C which was one of the reasons I was thinking of an 8-bit MCU.
What language do you want to use ?
Unable to buy from Aliexpress, ebay etc. until we have a post office again
AliExpress have DHL / Fedex shipping options, they are not the default.
For parts with BOOT loaders included, you can get minimal flash-program working with a USB-UART.
Getting DEBUG is more complex, and usually needs the factory debug bridge. They use a custom 2 wire link.
Some of the SiLabs boards are on Mouser, I'll check again for these. Unable to find a source inside the EU that stocks Nuvoton.If you are ok with 3V MCUs, the EFM8BB1LCK is lower cost on Mouser.
The EFM8BB52 has wider supply 1.8~5.5V and has a DAC
Unable to find a source inside the EU that stocks Nuvoton.Digikey stock Nuvoton and I think the Nuvoton stores use a courier company for their $20 shipping.
I need the least painful entry, since I don't have experience with MCUs. I have written a lot of software, but on much bigger boxes. I guess making a programmer is beyond me for a while.
The least painful is to get the vendors modules, as they are known to work and include good DEBUG support, so you can single step, break and register view the target MCU.
Silabs tool chains are all free, and include good debug support.
For coding in assembly: you will probably have to use your assembler (avr-gcc) and programmer (avrdude) on the command line, I don't think a nice graphical IDE for AVR assembly exists.
I thought assembly would still be the main language in use for 8 bit MCUs. Iy's my preference in general, although assemblers vary a lot and many of them are not very good.
Thanks, this is good news. The Silabs boards looked very good, is it worth dropping 120 euros on one of their 8051 boards? Are they worth it over the 20 euro "Arduino" boards mentioned upthread?
For me it's critical that the vendor has a free toolchain or at least something other than gnu is available for assemble/link/debug.
Part of the problem when you're new is you don't know enough to ask the right questions. So I really appreciate the links, comments, clarifications etc. from everybody who helped.
For those boards that have predrilled solder tabs for the expansion pins, how do I know what kind of header sockets/pins I should buy to solder on the board. I don't want to solder directly to the board since at this stage I have no idea what I'm doing with MCUs and will be better off being to swap wires around. For example on this board:
I was wondering if the Arduino boards were crippled in some way and had to use only C and Arduino libraries.