Looking for improvement ideas for the project

Discussion in 'The Projects Forum' started by Eugeny, Jan 28, 2013.

  1. Eugeny

    Thread Starter New Member

    Jan 28, 2013
    My project is related to the hands-on education/fun for electronics and computing, and actually is a DIY 8-bit computer (upgraded using modern technologies). It, of course, contains processor, memory, storage and other stuff. I am adding FPGA board to it, built several devices like multimedia and advanced storage...

    I am looking for fresh ideas what you would advise as "must have" and "want to have" as a functionality to the platform - in terms of educating the electronics and having fun with electronics and its application.

    Thank you!
  2. WBahn


    Mar 31, 2012
    Be sure to include some real world I/O. A bank of 8 or 16 digital input and outputs that are bit addressable (at least via bit-banging in the CPU). So that users can get up and going quickly, include some LEDs and slide and pushbutton switches so that they can write a program that does something they can interact with immediately without having to wire anything up first.

    You might want to look at simple interfaces that will allow this thing to talk to a real computer and transfer information back and forth.

    You might include a simple, say even just 8-bit, ADC and DAC.

    A lot of it will depend on the price point you are trying to hit.
  3. Eugeny

    Thread Starter New Member

    Jan 28, 2013
    Thank you very much for comments!

    For this purpose I designed the platform itself (its name is GR8BIT) with open architecture having unified expansion bus (with the same connector as ISA so that developers can use ISA breadboards), and external devices like video/audio, storage and even memory work through this bus. Interface is very similar to CPU signalling, so any new device will be at the hand's length from the CPU.

    I built it into the addon board based on FPGA. Three buttons and LEDs sharing three lines (so that programmer can select which functionality he wants) - by software (configuration) or soldering SMD jumper. I fully agree LEDs are extremely useful for development and troubleshooting. Without LEDs I would not be able to make successful developments - so far there's audio (including audio controller called SCC), LAN (based on WIZnet) and Micro-SD.

    My colleague did it :) his device presents images of the disks to the system through USB. Plus - the addon board I was talking above can access hosts on the network.

    Already have several of them - one in parallel port, 8 bits, and five on the FPGA card (6-bit width each) - stereo audio and RDB video. ADC... good idea actually, but how it can be used? Digitize sound? Or just generic port to connect, let's say, analog temperature sensor?

    Fully agree. I see there're more and more platforms released targeting low cost (assuming small size/maximal integration/single core), I decided to go another way - minimal integration and thus ATX-size, but that is really inspiring those who loves not only software, but also hardware which looks complex until you start assembling and studying it! That's why it is different.
  4. atferrari

    AAC Fanatic!

    Jan 6, 2004
    Hola rakesh,

    Do you deliver abroad?
  5. takao21203

    AAC Fanatic!

    Apr 28, 2012
    Classical 8bit computers in my opinion are no longer appreciate.

    For instance you draw lines on a small LCD, and you can draw let say 500 small lines each second using an 8bit CPU.

    A STM32 board can draw maybe 30000 lines each second.

    You should always make calculations (Excel etc.) how many lines you get for each dollar, or how many cents each line costs.

    FPGA is way overdoing thing for a 8bit CPU.

    Or do you want to use a software core at higher frequency? Powerful FPGAs are not exactly cheap.

    If you want to build a computer with 8bit CPU, do away with everything.

    The EPROM, the parallel USART, the PAL/GAL stuff, the 74xx logic gates, and the memory banks.

    Use a large PIC, and one memory chip only.

    Or a CPLD and only a smaller PIC for I/O. PICs offer much more value for USART and USB, and they even have their own memory + computing capability.

    Use the PIC as bootloader from an EEPROM or serial FLASH (for instance).

    Make Excel sheets and see what gives you the lowest cost for each line drawn per second.

    If you keep board cost low, you also have lower inventory cost, more people can buy your PCB it's a lower risk.

    Investing into powerless silicon is not the right thing, even if you want a real-world authentic 8bit CPU.

    Think a CPLD is small but still very complex. It could be used to translate I/O, to buffer, to replace several latches and logic ICs. A CPLD for instance can translate a serial stream into a parallel bus.

    An FPGA can host a complete software CPU core!

    If you want max. lines per dollar, look at PIC32 or STM32 ready made boards or the Raspberry PI.

    Considering that, lower the cost per line as much as possible or it is just a waste of resources.

    Or consider a complete software emulation on a STM32, PIC32 or Raspberry PI.

    You can for instance emulate a 7 MHz Amiga (68000) on a Pentium with 500 MHz and it is many times faster and even includes the custom chips.

    So 170 MHz (STM32), 80 MHz (PIC32) or 700 MHz (PI) give you certain emulation capabilities especially for a 8bit CPU.
  6. JMac3108

    Active Member

    Aug 16, 2010
    Maybe include a UART and RS-232 transceiver so that you can communicate with an external computer with a serial port.

    In many contexts the the serial port is a thing of the past. But in the embedded microcontroller world its still alive and well. I always include a serial port in my micro-controller designs so that I can communicate with an external PC for debugging and testing purpses. You can use a simple terminal emulator program like Hyperterm or RealTerm on the PC side. If you have a PC without a serial port, a $10 USB-to-RS232 dongle will do the trick.

    Also, a serial port is often a good solution for communication between seperate boards inside a system.