All About Circuits Forum  

Go Back   All About Circuits Forum > Electronics Forums > The Projects Forum

Notices

The Projects Forum Working on an electronics project and would like some suggestions, help or critiques? If you would like to comment or assist others with their projects, this is the place to do it.

Reply   Post New Thread
 
Thread Tools Display Modes
  #41  
Old 07-31-2012, 05:55 PM
MrChips's Avatar
MrChips MrChips is online now
Super Moderator
 
Join Date: Oct 2009
Posts: 9,078
Blog Entries: 24
Default

Quote:
Originally Posted by GetDeviceInfo View Post
with that being said, let's forget about the past and start with what's a least current.
I support that idea. You can spend the rest of your life reliving the past.
Pick a current platform and go with it. Perhaps get a raspberry pi.
__________________
Most computer problems can be attributed to a simple problem - a loosewire behind the keyboard.

Reply With Quote
  #42  
Old 07-31-2012, 06:03 PM
Kire Kire is offline
Junior Member
 
Join Date: Jul 2012
Posts: 12
Default

Quote:
Originally Posted by MrChips View Post
What you have written makes a lot of sense.

There is nothing wrong with putting together your own system from scratch if it is the knowledge and experience you are seeking.

Any person who wants to be an expert at microcomputer systems should understand how a computer system is put together, how the architecture functions and how machine code and assembly language programs interact with the processor.

The problem is that there is so much to learn in so little available time.

So you have to make your own decision on what you can accept and understand just by reading and have someone else explain it to you versus having to experience it yourself.

As an example, you can be an expert analog designer using integrated circuit op-amps and not having ever built a transistor amplifier.

So the question is: Do you feel compelled to go through the complete route step-by-step or are you willing to accept just an understanding of basic concepts?

Sooner or later you will have to start accepting some things as given and not have to delve into the details. What you have to experience yourself and what you can accept will be up to you.

Putting together a complete microprocessor bus system is a daunting task and prone to frustrations and failures - yet, it can be very educational. On the other hand, you can just accept it and work in assembler on a single chip microcontroller.

For concrete recommendations, I suggest reading for starters:

M68HC05 Family - Understanding Small Microcontrollers (332 pages pdf)
http://www.physics.mcmaster.ca/phys4.../M68HC05TB.pdf

If you feel you must get your hands dirty putting together a system I can provide some guidance, but I warn you that it will be a long slow battle.
I completely understand that I will need to accept many things, and cannot possibly learn everything.

My thought is I will have to pick and chose some battles along the way, but not every battle.

If you would be willing to guide me, I would be extremely appreciative!
Reply With Quote
  #43  
Old 07-31-2012, 07:57 PM
MrChips's Avatar
MrChips MrChips is online now
Super Moderator
 
Join Date: Oct 2009
Posts: 9,078
Blog Entries: 24
Default

To begin, we are faced with a few uphill battles:

1) Choosing a chip to work with. We will assume that all of these chips are now obsolete and you will have difficulty finding off-the-shelf components. The other possibility is to salvage components from old computer boards. Here are some choices
(with examples of where they were used in the past)

6502 (Commodore VIC-20)
6510 (Commodore C64)

6800
6802
6805
6809
68000 (Apple Macintosh)
68008

Z80 (CP/M S100 systems, Tandy TRS-80)

8085
8086
8088 (IBM PC)

2) Finding compilers that run on a PC to produce object code for the target.
This one is not so difficult. Much of the original software is still available on the web.

3) Finding UV-EPROMS and EPROM burners to program the memory chips to get you started. You still need to create some form of primitive loader or BIOS to enable you to download a larger app code into RAM. It is possible that you can do this using more recent FLASH memory chips instead of the UV-EPROM.

4) Locating peripheral chips such a serial communication interface (SCI) and parallel peripheral interface (PPI) chips that you will require. For the moment we will assume that there will be no floppy or hard-drive support.

In terms of finding chips and software support, your best bet would be to create a simplified PC clone using an Intel 8088 chip which would not be my personal first choice. If I had to create such a system for posterity sake it would probably be a 6809 system.

Keep in mind that this is an exercise in futility. Don't expect to be running Windows on this system.
__________________
Most computer problems can be attributed to a simple problem - a loosewire behind the keyboard.

Reply With Quote
  #44  
Old 07-31-2012, 08:08 PM
mkbutan's Avatar
mkbutan mkbutan is offline
Senior Member
 
Join Date: Sep 2008
Location: INDIA Mumbai (Dockyard Road(W) Mazgaon)
Posts: 256
Default

8085 8086 8051 8251
are the family members of the 80xx family
why dont you start from these chips
take any one dev. board (eg. P89v51rd2)
http://www.nex-robotics.com/products...ent-board.html
http://www.keil.com/dd/docs/datashts.../p89v51rd2.pdf
you can have arduino raspberry pi also or any other
http://www.raspberrypi.org/
http://www.arduino.cc/
make one adder program to add two no.(as you r a programmer)u know how to do this.
then compile it.
program it
start from the basic chips then to Pvi (i7)

second part of the story
when c cord is converted in binary (ie.- 0's , 1's)
check with the data sheet of the μ controller what happens when any code/ signal fed in the controller or processor
__________________
"THE LIFE IS VERY SMALL TO LEARN ELECTRONICS"
ε∫εζτ√░ηiζ≈

Last edited by mkbutan; 07-31-2012 at 08:17 PM. Reason: P89v51RD2 Data sheet & Development Board
Reply With Quote
  #45  
Old 08-01-2012, 01:44 AM
Kire Kire is offline
Junior Member
 
Join Date: Jul 2012
Posts: 12
Default

Quote:
Originally Posted by MrChips View Post
To begin, we are faced with a few uphill battles:

1) Choosing a chip to work with. We will assume that all of these chips are now obsolete and you will have difficulty finding off-the-shelf components. The other possibility is to salvage components from old computer boards. Here are some choices
(with examples of where they were used in the past)

6502 (Commodore VIC-20)
6510 (Commodore C64)

6800
6802
6805
6809
68000 (Apple Macintosh)
68008

Z80 (CP/M S100 systems, Tandy TRS-80)

8085
8086
8088 (IBM PC)

2) Finding compilers that run on a PC to produce object code for the target.
This one is not so difficult. Much of the original software is still available on the web.

3) Finding UV-EPROMS and EPROM burners to program the memory chips to get you started. You still need to create some form of primitive loader or BIOS to enable you to download a larger app code into RAM. It is possible that you can do this using more recent FLASH memory chips instead of the UV-EPROM.

4) Locating peripheral chips such a serial communication interface (SCI) and parallel peripheral interface (PPI) chips that you will require. For the moment we will assume that there will be no floppy or hard-drive support.

In terms of finding chips and software support, your best bet would be to create a simplified PC clone using an Intel 8088 chip which would not be my personal first choice. If I had to create such a system for posterity sake it would probably be a 6809 system.

Keep in mind that this is an exercise in futility. Don't expect to be running Windows on this system.
OK, so I looked into some parts.

It seems that by far the most available processor is the motorolla 68000, there are several of them I can buy. How does that sound?

I looked into flash memory chips, and all I can find are the little flash usb or sd cards, I am not quite sure what I am looking for here.

Regarding SCI am I looking for something like an RS232, or an FTDI chip?
Also, I am not finding anything I can purchase for PPI chips, is there another name I should be looking for?

I completely understand that this is all about learning, not about a functional computer.

Thanks!
Reply With Quote
  #46  
Old 08-01-2012, 02:43 AM
MrChips's Avatar
MrChips MrChips is online now
Super Moderator
 
Join Date: Oct 2009
Posts: 9,078
Blog Entries: 24
Default

Quote:
Originally Posted by Kire View Post
It seems that by far the most available processor is the motorolla 68000, there are several of them I can buy.
That comes as a surprise. I would have expected the 8085, 8086, 8088 and Z80 to be more available.

If this is purely for educational purposes, the 68000 (or 68K for short) is an excellent choice. However, if you are just starting out, an introduction on the 6809 would be an easier first step. You can build a simple system with a 6809 first and then move up to a 68000 if you so desire.

See if you can find a 6809. If not, I can let you have mine.

The next set of chips you will need are:

MC6821 - PIA - Peripheral Interface Adapter
MC6850 - ACIA - Asynchronous Serial Interface
MC6845 - CRTC - video controller could also be used for graphics

but there are variants that would be better choices. I will have to dig up the alternative part numbers for you.

There is no problem with the memory chips.

Atmel AT28C64B-15PU is an 8k x 8 EEPROM
HM62256 is 32K x 8 SRAM - which I have lots in stock.

Now all we need is a 6809 assembler and a way to program a 28C64 or similar EPROM.

I will show you how to put together the system.
__________________
Most computer problems can be attributed to a simple problem - a loosewire behind the keyboard.

Reply With Quote
The Following 2 Users Say Thank You to MrChips For This Useful Post:
absf (08-01-2012), mkbutan (08-01-2012)
  #47  
Old 08-01-2012, 03:20 AM
DMahalko DMahalko is offline
Senior Member
 
Join Date: Oct 2008
Posts: 171
Default

Most modern computer systems are abstractions built on abstractions. Arduino and the like may be programmable in C or BASIC or whatever, but that's not what they actually run.

It all ends up being converted to microprocessor opcodes at some point, generally referred to as "assembly language", to accomplish the task inside the microprocessor by shuffling bits around.

Opcodes:
http://en.wikipedia.org/wiki/Opcode

Machine code:
http://en.wikipedia.org/wiki/Machine_code

Assembly language:
http://en.wikipedia.org/wiki/Assembly_language



There's a lot of magic worked into the equation to try to speed things up. The compiler may have "optimizations" built into it by really smart people, where if it sees you are programming to do a certain task, it substitutes a specific known faster method to do that task.

Compiler optimization:
http://en.wikipedia.org/wiki/Compiler_optimization



The same abstracted magic of operation is true for the modern CPU itself, which may attempt to predictively run possible future branches of the program code on redundant parallel processing units inside the CPU, so the result is already available if your code uses one of those precalculated results.

CPU predictive branching:
http://en.wikipedia.org/wiki/Branch_predictor

This prediction, pipelining, and so forth is handled by programming designed into the CPU itself, referred to as microcode, and is the final abstraction layer below opcodes, before you get down to the very bottom with logic gates and so forth.

Microcode:
http://en.wikipedia.org/wiki/Microcode



But, you can cut through all that magic and optimization, and do direct assembly language opcode programming on just about any modern CPU available, if you really want to do that.

You don't need to grab an antique processor, because in the end they ALL just end up running opcodes on logic gates.



Though please note that what you can do with raw processor opcodes on an i7 is going to be exceptionally limiting in what the CPU can do, since once again you have to design all external I/O methods by hand and your code will not take advantage of any of the compiler "magic" developed over the last 30 years.

There isn't necessarily a requirement to use any BIOS or operating system with a modern Intel processor. You can run directly raw machine code on a ROM with an i7 if you want, though this also means you can't use any of the abstractions provided by a BIOS, OS, etc.

Also assembly language programming is generally not portable across different processor types like abstracted C code, because every CPU model has its own instruction set.



Modern assembly tends to be interrupt-driven, while the older stuff was often event-loop driven.

Modern processors can vary the clock speed or even stop it, to reduce power used, and wait for hardware-triggered interrupt alerts to do some work and then stop again.

Older processors ran the clock at a fixed speed all the time and would simply wait a specific number of cycles for external events to complete, twiddling their fingers all the while as the clock runs.

Event driven programming
http://en.wikipedia.org/wiki/Event-driven_programming

Last edited by DMahalko; 08-01-2012 at 03:31 AM.
Reply With Quote
The Following 2 Users Say Thank You to DMahalko For This Useful Post:
Austin Clark (08-13-2012), mkbutan (08-01-2012)
  #48  
Old 08-01-2012, 03:33 AM
absf absf is offline
Senior Member
 
Join Date: Dec 2010
Location: Sarawak (GMT+8)
Posts: 974
Default

The 6809 is a good choice to start building a computer system. In fact I have a few 68B09 that I took from used telephone boards at my work place. I will make a simple SBC with just a few chips based on this mpu when I have more free time too.

Allen

Last edited by absf; 08-01-2012 at 03:35 AM. Reason: typo
Reply With Quote
  #49  
Old 08-07-2012, 05:52 PM
jgunn jgunn is offline
New Member
 
Join Date: Aug 2012
Posts: 4
Default

Check out the Veronica project on Quinn Dunki's blog. Although she didn't start with a particular destination in mind, she's meandering along a similar path that you're looking to start.

http://quinndunki.com/blondihacks/?p=680

That's a link to the first post about Veronica, a 6502-based computer. On the left you'll see other posts about her building a backplane and the hardware choices she's made, various memory systems projects, getting video output... at the very least, it'll be interesting reading for you.

-Jeff
Reply With Quote
The Following User Says Thank You to jgunn For This Useful Post:
absf (08-08-2012)
  #50  
Old 08-10-2012, 02:38 PM
MrChips's Avatar
MrChips MrChips is online now
Super Moderator
 
Join Date: Oct 2009
Posts: 9,078
Blog Entries: 24
Default

You might want to follow along on the repair trail here.
This is a typical computer system.

http://forum.allaboutcircuits.com/sh...ad.php?t=71808
__________________
Most computer problems can be attributed to a simple problem - a loosewire behind the keyboard.

Reply With Quote
Reply   Post New Thread

Tags
,


Related Site Pages
Section Title
Worksheet Memory devices
Textbook Microprocessor programming : Principles Of Digital Computing
Textbook Microprocessors : Principles Of Digital Computing
Video Lecture Hardware: clock, ┬ÁP, chipset - Microprocessors
Video Lecture Hardware - Memory - Microprocessors
Video Lecture Microprocessor bus Networks - Microprocessors
Video Lecture Microprocessors and Computers - Microprocessors
Textbook Fundamentals of SPICE programming : Using The spice Circuit Simulation Program
Video Lecture Physical System Hierarchy - Electronic Systems
Textbook Networks and busses : Digital Communication


Similar Threads
Thread Thread Starter Forum Replies Last Post
100v injector driver circuit from a 12v system sentein The Projects Forum 4 03-09-2011 03:51 PM
LTI 1st order system Response Time Musab Homework Help 1 10-29-2010 03:52 PM
LED office-desk lighting system kdaffolder The Projects Forum 1 08-04-2009 07:43 AM
Question I didn't get on my exam on controllability of a system... blazedaces Homework Help 3 12-10-2008 01:33 AM
Automotive Control & System Diagnostics Hurdy General Electronics Chat 4 11-01-2006 06:43 PM

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 07:47 AM.


User-posted content, unless source quoted, is licensed under a Creative Commons Public Domain License.
Powered by vBulletin
Copyright ©2000 - 2014, vBulletin Solutions, Inc.