Microprocessor/Microcontroller educational kit

XCore Project reviews, ideas, videos and proposals.
User avatar
octal
XCore Addict
Posts: 228
Joined: Thu Jan 27, 2011 3:30 pm
Location: Argenteuil - France

Microprocessor/Microcontroller educational kit

Post by octal »

Version: 0.01
Status: Just an idea
License: BSD

The idea in this project is to make an educational dev board for teaching 8051 programming.

Existing dev boards and educational boards for 8051 all use a little program named MONITOR. The monitor program is loaded at top of main rom, and when the 8051 boot, the monitor program is executed and propose a friendly menu-driven monitor which allows users to download their programs to RAM and run them, which is much faster and easier than reprogramming an Eprom or EEprom.

The main problem with a monitor is that user has to take care when assembling his program to not overwrite the monitor, and stepping in a program is not possible unless the developer inserts some kind of calls to special debug functions. Some monitors take control of one of the timers and use it to stop execution each certain number of ms, and give user the possibility to interact with actually executing program.
The aim of this project is to propose another kind of dev board for 8051. An XMOS device will be used to control entirely the system BUS, and even the 8051 will be clocked from the the XMOS.

When the system starts, the XMOS will start, connects to PC/MAC, and give the possibility to load an assembled program to an external RAM (the RAM that will be used by the 8051 for code and data). Using the XMOS, all interactivity will be possible. At any time, user can ask the xmos to start the 8051 (by sending clock signal), to stop it each certain number of clock cycles (which give an absolute control over execution cycle of instructions), the XMOS can also give at any time the content of the memory to let user inspect actual memory state, actual var states, .... with all this control, the XMOS can also use it's ability to check some conditions to be ready on its pins to let user program special breakpoints on loading some special instructions or data values from the ram and thus stop (freeze) the 8051 processor to let user take decision or dump memory to check it. All kind of things will become possible.

The XMOS device can also handle an onboard GUI, by providing for example some 7 Seg digits to show actual data/adress lines value, it can handle user input by managing a PC key directly or by managing some buttons to let user do on the fly patch of assembly instructions or memory content, it can also be used to dump content and state of all the board to PC/MAC side application.

The XMOS in this case will solve the problem of having to ORG (move origin) the code to avoid overwriting the old style monitor program.
For this board, an XS1 chip is entirely sufficient, provided that it has enough pins to handle the 64KB ram needed for a 8051 and all other onboard GUI.
This board can also be modified to handle any kind of other processors having an external bus, like 6809, 6502, 8085, Z80, ...


User avatar
Vaati
Active Member
Posts: 39
Joined: Sat Dec 25, 2010 7:09 pm

Post by Vaati »

This is pretty cool -- 4 stars here.

I feel like there's something missing though.... Might be the fact that these parts aren't widely available and the ones that I myself have on hand are MROMs (mask ROMs, if you didn't know) and are thus unable to be changed at all.

My question is, could you add reading functionality for mask ROM/the other chips you listed above? I would be very interested in the contents of my mask ROM chip, as its from my NES.

What if you tried emulating the desired chip as best as possible? Maybe add another L1 to do the emulating, and have another do the PC communication.

Great project idea though. The things some of these XCore people come up with...