Close
0%
0%

8052AH-BASIC single-board computer

Easy way to upgrade your 80C32/8052AH-BASIC single-board computer into a VHDL based 8052AH-BASIC using a FPGA without a device programmer!

Public Chat
Similar projects worth following
Few decades back there was 80C32/8052AH-BASIC single-board computer. Recently tried to upgrade the firmware for my 8032 with external EPROM based 8 bit SBC with BASIC-52 interpreter. Currently don't have EPROM UV eraser and burner or microcontroller programmer. Found a simple and easy way to upgrade. Upgraded the 8032 based SBC into a 8052 softcore based SBC using VHDL with updated latest firmware BASIC-52 V1.31 even without any device programmer! 8052 controller, 8k ROM and 4k RAM all implemented inside the MAX10 FPGA!

Tested the HDL based 8052AH-BASIC single-board computer with 60MHz clock and 921600 serial baud. Everything is working fine!

8052AH-BASIC single-board computer running at 60MHz clock and 921600 baud!


80C32/8052AH-BASIC single-board computer

Recently upgraded my 8032AH-BASIC Single Board Computer running BASIC-52 V1.1 at 11.0592MHz into a VHDL based 8052 Single Board Computer using MAX10 FPGA. Currently running BASIC-52 V1.31 with 60MHz clock and using serial baud upto 921600!

The above diagram shows a minimum amount of hardware required to support the 80C52-BASIC chip. Small systems can be constructed with only an address latch, 1K byte of external memory, and the appropriate serial port drivers. With the addition of a transistor, a gate, and a few passive components, BASIC-52 can program EPROM/EEPROMs directly. Both standard and fast programming algorithms are supported.

THINGS REQUIRED:

  1. FPGA BOARD
  2. HDL based 8052 softcore
  3. latest BASIC-52 firmware
  4. SDCC or Keil assembler/compiler/IDE
  5. UART TTL-USB board

FPGA BOARD

We can go with small form factor and low cost FPGA boards for easy and affordable implementation.  Tested with MAX1000 board and STEPFPGA-MAX10 board. Both the boards are 8k Logic Elements. 

MAX1000 comes with 10M08SAU169C8G FPGA device

STEPFPGA-MAX10 comes with 10M08SAM153C8G  FPGA device

Both the boards are based on Intel MAX10 FPGA.  Both the boards have inbuilt JTAG configuration support.  There is no external FLASH memory required to store the configuration and user program. We can use SOF for SRAM based configuration and POF for permanent FLASH storage. 

STEPFPGA-MAX10 Overview

  • Intel MAX10 FPGA: 10M02SCM153C8G/10M08SCM153C8G/10M08SAM153C8G
  • On board USB Blaster programming circuit
  • 2-character 7-segment display
  • Two RGB LEDs
  • Four switches
  • Four push buttons
  • Eight user LEDs
  • Power from MicroUSB connector
  • 40 pins DIP connector with 36 User I/Os

The above FPGA board available with 3 different device variants.  The tests were performed using 10M08SAM153C8G. This board is very small and compact size comes in DIP-40 size with 600 mils wide.

STEPFPGA-MAX10 pin map

The system clock oscillator is 12MHz.  We can run the system as it is or through inbuilt PLL.  We can go upto 60MHz clock for C8 speed grade of the MAX10 FPGA

Similarly the serial  output was tested upto 921600 baud rate!

T8052 softcore

There are many free HDL softcore available both in VHDL and Verilog. We will go with T51 core and can be downloaded from here. Apart from the 8052 controller we have to implement 8k ROM required for BASIC-52 and 4k RAM for program and variable storage.

We can load the BASIC-52 into ROM using VHDL file or intel HEX file format. Loading HEX file is much easier than converting the HEX file into VHDL.

BASIC-52 FIRMWARE

The latest available firmware version V1.31.  Both source code and HEX output file are available. We need to include the path of the HEX file in the init_file for the ROM implementation so that the HEX file will be automatically loaded into the 8k ROM. 

We can also have LED blinky project and HEX file for initial testing of the core before loading the BASIC-52 into ROM.

USB to UART TTL Converter 

Any standard converter supporting 3.3V level is sufficient. We will be using Tx, Rx and GND signals.  If we want to power up the SBC from USB to TTL converter board, then we can make use of +5V from the converter board. By using this we eliminate additional cable.

BOOK REFERENCE

The Microcontroller Idea Book: Circuits, Programs, & Applications featuring the 8052-BASIC Microcontroller by Jan Axelson. Now available as a free PDF.

CONCLUSION

Tested the 8052 BASIC-52 SBC with 60MHz clock and serial baud of 921600. Works without any issues.

The same concept can be extended to other family of processors or controllers.

  • 1 × USB to TTL Adapter
  • 1 × Micro-USB cable
  • 1 × Breadboard
  • 5 × Flexible Breadboard Jumper Wires
  • 1 × STEP-MAX10 BOARD

  • 1
    USB to TTL

    USB to TTL <-> SBC connection

    GND <-> GND

    +5V<-> VBUS

    TDX <-> RXD

    RXD <-> TXD

  • 2
    JTAG configuration - SOF file

    During JTAG configuration Micro-USB cable should be connected to FPGA board connector as shown above.  You can see all the eight LEDs are turned ON after successful configuration using SOF 

  • 3
    In-System Memory Content Editor - PROG (8k ROM)

    We can easily verify the ROM content after successful configuration of FPGA using In-System Memory Content Editor 

View all 10 instructions

Enjoy this project?

Share

Discussions

Steve L wrote 01/17/2023 at 20:41 point

This was a very good version of BASIC (I had an 8032/UVEPROM version that I wire-wrapped maybe 35 years ago).

  Are you sure? yes | no

Art G. Granzeier III wrote 01/16/2023 at 18:11 point

This looks like a pretty cool project. I've always had an interest in the BASIC-52, and one of these days I will build one.

Where did you get the STEP-MAX10 board? It looks like it would fit in for several projects, but every place I looked, it was out of stock.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates