Introduction: INTEL 8051 As Arduino UNO?

About: A perfect example of nobody is perfect.

I made this really amazing PCB for INTEL 8051 microcontroller in the form factor of an Arduino UNO. See how to build your own one.

Supplies

Components Required:

  • 80S52 microcontroller (8051)
  • 40 PIN IC Socket
  • 0603 LEDs
  • 1K and 10K resistor
  • 10uf, 100nf, 33pf capacitors
  • 12MHz crystal oscillator
  • USB type C
  • Pin Headers
  • AMS1117 5V Regulator
  • 12V Jack
  • Reset Switch

Step 1: Story Begins From 1980s

Hello Guys, Once again I have made a microcontroller Development board but this time we are using INTEL 8051. Yeah! I know it is pretty old and it is the first microcontroller I had started with. It was the 1st microcontroller of INTEL, released back in 1980, and the computer era started from there. This is very popular and even nowadays there are few applications like calculators, Automotive applications which are running on it. In the 1980's there was no concept of flash ROM and even at that time this MCU came with Harvard architecture in which code and data memory are separated from each other.

But nowadays as microelectronics grow some custom solutions are available which are utilizing the same die of microcontroller as a brain but with added peripherals like onboard flash, Extra RAM, 2 cores on a die, higher crystal compatible circuitry, onboard programming control and which may give this higher performance. INTEL is not manufacturing this microcontroller now, but there are some 3rd parties which are making custom solutions as per specified applications. The original microcontroller is rarely available in the market, because the production was stopped many years ago.

This project is sponsored by NextPCB, NextPCB is really very good in PCB manufacturing in competitive pricing delivering worldwide. First 5 pcs of assembly are free and the shipping fee is also very less. You can give a try to NextPCB at the end of this article and find the section of PCB review to find out the quality. You can sign-up now using this link to get the first 5 pcs assembly boards free.

Step 2: 8051 Features:

Original 8051 Features:

  • 40 pins DIP (dual inline package),
  • 4KB of ROM storage
  • 128 bytes of RAM storage
  • 2 16-bit timers
  • Low-power Idle and Power-down Modes
  • It consists of four parallel 8-bit ports (32 Programmable I/O Lines)
  • An on-chip crystal oscillator having crystal frequency of 12 MHz

80s52 Custom 8051 microcontroller:

  • 8KB of In-System Programmable (ISP) Flash Memory
  • 4.0V to 5.5V Operating Range
  • Fully Static Operation: 0 Hz to 33 MHz
  • 256 x 8-bit Internal RAM
  • 32 Programmable I/O Lines
  • 3 16-bit Timer/Counters
  • Eight Interrupt Sources
  • Full Duplex UART Serial Channel
  • Low-power Idle and Power-down Modes
  • Interrupt Recovery from Power-down Mode
  • Watchdog Timer
  • Dual Data Pointer

As you might see, the performance of a microcontroller depends on architecture, clock rates and Design logic. 80s52 has higher performance and better features than Original microcontroller with 8KB onboard Flash as program memory. Here is the link to the full datasheet, explore the datasheet for operation related knowledge.

Step 3: Development Board:

We need an activation circuit to program this microcontroller, which contains a reset circuit, programming headers, crystal oscillator and some loading capacitors. That is known as minimal system required for a microcontroller, still there are some issues remain which has to be resolved like power supply, headers for I/O and programming pins. So, I designed a development board rather than making a minimal system. Which allows to directly connect the peripheral on I/O ports of the microcontroller. I took inspiration from Arduino UNO and designed a PCB with all the controls on it, the programming headers are placed on one header, and all the 4 ports have dual headers. I also designed the power section with some capacitor, Dc jack and linear voltage regulator on the same board.

Step 4: Circuit Diagram:

8051 required a pull up resistor on reset pin which is used to perform all the operation and this pin never kept floating, and a tactile switch is added to pull down the reset pin to Reset the overall microcontroller and to resume the operation from beginning. I am using a 12MHz capacitor with 33pF loading capacitors as mentioned in the datasheet, the loading capacitor is used to tune the crystal frequency precisely over the PCB impedance. In the power section I am using a linear voltage regulator AMS1117 5V @1A which supplies 5V to the whole microcontroller and headers. Some coupling capacitors are added with it, to remove any transient produced in the power supply (basically smoothen out the DC voltage noise).

There are two power supply sources, 1st 12v barrel jack and 2nd the type C USB. Both will allow the power input, USB interface is just used as a power supply source here not for programming. Two onboard status LEDs are there one for the power supply and second to test the blink program for 1st time programming testing, The blink LED is connected to port 2 pin 7. Two extra headers are there, one for controlling the operations(U7) and another one to program the microcontroller (H2). Controlling sections have control on switching of ROM(external/internal), Data and address bus multiplexing control and control on program status. Programming headers are utilizing the SPI interface to connect with the microcontroller.

Step 5: PCB Design:

As I have mentioned before, I have taken inspiration from Arduino Uno. And designed the PCB according to that. Here I want to give one more hint that Arduino has built in 10 Bit ADC 6 channels that’s why it has separated Digital and Analog pins. But in case of 8051, there is no onboard or inbuilt ADC for analog operations, but we can connect an ADC or DAC on the digital pin by interfacing the external available ADC/DAC modules or ICs.

So, I enlarged the dimension a little and placed all the 4 ports accordingly. The pin configuration is mentioned on the PCB itself for the I/O. I placed the microcontroller in the middle with the clock circuit as near as possible to the microcontroller. Then I placed the power section on the one side of the microcontroller with a coupling capacitor near to the DC input and linear voltage regulators. For better DC power supply design coupling capacitors of different values can be placed to eliminate the HF(high frequency) noise. Download all the required files from here, Gerber, BOM, CPL and schematics.

Step 6: Assembly Instructions:

The PCB has SMT and DIP through components, I always recommend to first complete the placement and soldering of SMD components. Because assembling the SMT components by hand is really a very difficult task and needs a lot of space to be placed precisely. Only a person with better soldering skills can assemble the SMT components with a hand soldering method. By the way there is one more way to do it professionally, NextPCB is providing SMT assembly and PCBA assembly service worldwide, and the cool thing is that the first 5PCS of PCB assembly is free. You can explore the free assembly process from here. Sign-up now using this link to get free assembly on your PCB boards.

I also have seen the PCB under my Andonstar microscope which has 1000x zoom capability and I found that the silk screen is thick and accurate, and the solder mask quality is the same as other manufacturers. Assembly and manufacturing time is also very less, And most importantly the prices are very competitive with many applied offers.

Step 7: First Power On:

To first power on by giving supply to the microcontroller some steps are mandatory to perform, take a multimeter in continuity mode and check the continuity of ports, power rails and capacitors. If there is any short in the power supply then the microcontroller may fail. Usually 3rd party microcontrollers are cheap and do not have a protection circuit. Then check the 5V output from the power supply without plugging the microcontroller. If everything is OK, plug the microcontroller in and upload the first blink sketch. On the first time plug, if everything is fine, the onboard led will glow and which is indication of power supply working.

I will make another tutorial on how to upload a program in 8051. There are many programming, simulation and hex file burning softwares available. I will let you know the best one. Keil is the best programming software which is compatible with a lot of embedded boards, so I will use that one to make the Hex file and then upload via UART in the memory of 8051 with 3rd party HEX burning software.

Step 8: Troubleshooting:

If there is any problem in soldering the best solution is to go with SMT assembly services provided by NextPCB. If there is any short in the power supply check all the joints first then check for the capacitors, there may be two reasons for power supply failure. Either any component is misbehaving or there may be an actual soldering joint. Secondly if there is not 5V available for the microcontroller, check the connection of the power supply jack, USB and then check the Linear voltage regulator. There may be lower voltage than 5v on input or the regulator might be not working/damaged.

Anything Goes Contest

Participated in the
Anything Goes Contest