View Full Version : "interfacing" with a 486
mart_man00
07-07-2003, 02:57 PM
kool, new board. nice.
i tried this at a linux board, myabe programmers would have a better idea about this kind of stuff.
i want try some embedded-like work. there are some kits that are designed to be played with, so you sold it together and program it (in c or assembly), but finding some of the good ones are hard(some sites need alot of orders or are very pricey).
the problem with them is that there old, they should be documented better but people cant answer the questions(it hard to find the right person). so i was thinking of talking a old 486 chip in a play-board.
take a basic stamp(oem complete module), id like to take ones of those and toss a 486 chip in there.
my question is how insane is this?
soldering a zillion wires isnt a problem. not knowing lot of whats going on wont bother me, i have time.
i was told that the 486(sx) has compatibility with the older chips so i wouldnt have to deal with real-mode right away, so im thinking it wont be that bad to work with. might be a good thing to learn with.
can any one see any problems with this? do you know of a board made for this? any advice?
yes, i know i can just get a 486, but thats cheating! im attempting to go old school.
Bubba
07-08-2003, 09:24 AM
Not sure I understand but Intel does have the old 486 documentation on their website. I have the paperback book for the 486 family of processors. What are you trying to do with the 486 - very hard to discern from your post. Sorry.
mart_man00
07-08-2003, 11:56 AM
yeah its kind of long, sorry about that. i was trying to type it up quick to jump in my pool.
remember the old 70s/80s computers? they were basicly just motherboards, id like to fake on of those.
there are some kits for it, so it can be done(there very simple and do very little). but some of the kits are pricey or cant be order(in small numbers).
so id like to fake it with a 486-sx chip. so basicly just a small board that will power on and have some io pins on the side, nothing fancy.
im wondering if theres plans for this, a kit or anything making it impossible/a bad idea.
so far the only bad points ive heard is the zillions of pins with the special socket and protected mode. protect mode needs to be turned on so that not a problem(just like im sure 640kb will be more than enough for a while).
any ideas? advice?
are they normal answer men on strike in here? i thought the new board will give me a answer in mins......
Bubba
07-08-2003, 12:57 PM
New board just means that old board members must learn new board knowledge to answer new board questions.
But, in your case, yes there are a lot of pins to connect on the 486. I have the pinout for the 486SX, DX, DX2, and DX4 processsors. They are available from Intel if you like coma-inducing literature.
I'm not an electronics engineer so I could not begin to tell you how to go about doing this.
mart_man00
07-08-2003, 01:49 PM
what about the software?
since it a 486 i figure ill have no problem with c on it(since it can run linux), but what about assembly? id liek to leanr that one day.
im not sure, but it sounds like all the advanced features have to be "turned on" on this chip.
Bubba
07-08-2003, 01:59 PM
im not sure, but it sounds like all the advanced features have to be "turned on" on this chip.
??
What do you mean? Protected mode perhaps?
You can only code in C on the 486 if the following are true:
1. The chip is on a motherboard
2. The chip is wired correctly to the motherboard via socket or some other device.
3. Motherboard has correct bios on it.
4. Motherboard has storage device connected to it.
5. Running an OS kernel that is compatible with C.
You could write your own kernel to interface with C, but that is a topic better suited for flashdaddee.com - check the assembly board and ask there. As for hardwiring the chip - I'm totally lost and I know nothing about the motherboard circuitry.
mart_man00
07-08-2003, 02:34 PM
um...now im not so sure any more.
as i understand it gcc normally doesnt produce a binary file, so the a.out file does need the os. there is a flag to make (what i have heard called a) a "true binary".
this would be dumber than a graphing calculator!
flashdaddee seems kind of dead, but then again this site isnt that alive either.
Bubba
07-08-2003, 02:41 PM
I'm just really lost as to what you want to do.
If its about assembly language or C, I can help, but again I'm not an engineer at Intel.
mart_man00
07-08-2003, 02:57 PM
I'm just really lost as to what you want to do.
lol, atleast im not the only one! thanks for sticking around and trying.
take a look at a basic stamp (http://www.parallax.com/detail.asp?product_id=27290)
its basicly a complete computer. it has a procssor and built in ram(both kinds). it can run programs, but it has no os.
id like to rip off parallax in a way and have something like that but with a 486 chip.
nmklbjk
07-08-2003, 09:16 PM
hi
i think you are just trying to engineer your own mother board?
and for that, all you really need is a breadboard, (it is used to experiement with circuits, u'll probably need a bigish one) the processor, a 5v/12v/0v/ power supply, and the pinouts of the processor u are using, and the function of each pin. you will end up having a piece of werid and awkward piece, of >>> but it should work, as i did the same thing a while ago, only with a dumber processor.
Take courses at the local college :D
I've done some similar things with the 8088, which is the lite version of the 8086. Now, the 486 has more features, but it essentially is a newer version of the same chip.
IF it's like the 8088, you need a minimum:
* RAM, usually at the beginning of the memory space (address 0x0000)
* ROM in the uppermost memory space.
* Latches to demultiplex the shared bus
The 80x86 has its own chip select units, so you can use the enable lines to directly tie into the /CS on the memory. If I recall, the first instruction will execute something like 16 bytes before the end of memory, so you probably just want to use that region to set up your segment registers and jump somewhere else. I believe all x86 chips can only boot up in real mode; if you need protected, you go into it later.
I've done this with TASM; I've never tried writing programs in C/C++. You need to do other stuff to get the program ROMmable, IIRC the method was compile only to .obj, then use other tools to make it into a .hex and then an ASCII file, and program an EEPROM that way.
You will also need to carefully study the bus timing cycles. The x86 uses a shared address/data bus, so at some points in time, the bus outputs the address, and at others, it's a shared data bus. You thus need to latch the address in (and some control lines) at the right time, and then you also have to make sure at most one device is driving the bus.
Pick up a book, there's way too much info to go into it here. The 486 will also need a board made, and I doubt you can fit all the necessary traces onto an ExpressPCB board, so it will be costly. Soldering discrete wires is not even an option for how many you will have.
You might consider doing what the stamp does, and using the PICMicro MCUs as the core of your system. They're easier to interface, by far.
mart_man00
07-08-2003, 11:12 PM
lol, i guess ill go look for one of those kits. i didnt think it would have to be that bad.
<edit>
what exacly am i looking for here? i dont know what to call this.
about college, its 2 years away for me!
Not really sure; when I took courses we used board the prof. had custom made. It's not that expensive to get ExpressPCB's larger boards; they're I think available in 5 board increments for $250 for each set of 5. Of course, you need to design the board yourself then.
BTW, the book I have on this topic is "Embedded Microprocessor Systems Design: An Introduction Using the 80C188EB" by Kenneth L. Short. It's designed for the 80188, (with some 80186 info as well) not the 80486, but most of the basics are still there. The 80188 isn't so bad to use, really; it only costs maybe $15 to order one, and the -EB model has extra features for embedded systems (which is basically what you're building).
Bubba
07-09-2003, 12:39 PM
I believe all x86 chips can only boot up in real mode; if you need protected, you go into it later.
Very true. And BIOS's look for the startup code in the first sector of the disk and execution starts at 0x7C00. You should probably be familiar with some assembly language if you intend on doing this. Coding in C is a long way off when you are talking about building from scratch like this.
If you are seriously considering doing this, it might be possible that myself and some of my pals at flashdaddee could code you a small BIOS for your chip. We would need a significant amount of information regarding your implementation of the chip. For instance, I believe that interrupt gates are a part of the mobo and not CPU specific. Of course if you are going to execute in P-mode then interrupts are nil. But 8086's all boot in real mode - we could write code for you to place the CPU in protected mode and we could write code to interface with whatever device(s) you wish to attach to this CPU.
Let's say you wanted to activate some servo motor or something for a robot - we would need to know the bit codes and data that the servo motor would need to activate - which would probably require another chip between the CPU and the motor to interpret the codes and act on them.
It can get very involved, but if you are dedicated and want to try this - we can help.
We can also write code for you so that you can get a small OS kernel up and running. I'm not sure if we are good enough to get an actual IBM based C compiler running - like MSVC or Borland. There is a lot involved underneath all the C code. But we could code a kernel for you.
mart_man00
07-09-2003, 12:53 PM
assembly is still over my head.
i figured i could learn some assembly while i was making/assembling th board and doing c. i figure id try some asm, in case i got stuck c could save me.
mini-os would be kool, thats what id love to do with it in a few years. even that can be put off though. i think you got my point when you mentioned the servos, it just for play/learning so i would attach things like that and attempt to make "drivers"
does flashdaddee have a hardware guy? one who either has used a good kit or makes them himself(so i can bug him for schematics).
ill try hanging out there more, last time i was there it seem kind of dead, except for the os part. its kool to look at it....
thanks
Well, I'm personally a hardware guy (I'm technically in biomed engineering but 9/10s of my work is in electrical, specializing in embedded systems design) so I'm more than willing to help out a beginner in the field. Kits, though, would be somewhat expensive for me to make as the cheapest PC boards I can get would be in groups of 3 of $60 apiece. I've been working on and off on making my own PC boards at home, but I'm a bit leery about using the toxic chemicals in my apartment. Might be able to do it on my patio, but my landlords might not like it if they knew what it was I was doing. My lease doesn't exactly forbid me from using toxic chemicals on the premises, but I might not want to push my landlord's patience, especially as I'm a new tenant.
Further, a 486 is a pain because it's a huge footprint -- requires a lot of board space. PICmicro MCUs would be easier to make kits from as they require less space. Of course, if I get my home board manufacturing to work, space would not be much of an issue because copper-clad boards aren't very expensive.
Assembly languages (not necessarily x86 assembly) are needed for almost all embedded systems. PICMicro's assembly language isn't too hard to use. The nice thing with embedded systems is that the code is usually simpler to work with.
mart_man00
07-09-2003, 05:32 PM
well, i wont worry about making a good looking board, ill just have a zillion wires :).
i dont not which way to go.
part of this is to learn assembly, part of it is just because its kool! the kool factor keeps on bugging me, but then again that will keep me going threw this.
i used the basic stamp as a example once, what id like to build is a timex sinclare. remember that one? i only heard about it but it was a kit computer, so its perfect.
do you remember the name of the kit you used in college? 8 bit sound good?
the electrical side of computers isnt as friendly as the software side. i cant come up with enough info, mustly becuase i need to know what im looking up.
Honestly, the cool factor is probably a leading cause of interest in electronics, and I think every serious electronics person DOES find it cool -- it's great to love what you do.
I'm quite adept at the hardware side (I've already got one college degree which focused largely on that area) so feel free to PM or ask me any questions. I've done no small amount of custom hardware creation, so I'm familiar with the process.
As I may have mentioned, I think the kits we used in the classes I took on the 80186 were made by my professor at the time, through the University.
Starting with an 8 bit microcontroller is a good way to go; working up to 16 bit microprocessors has only slightly more complexity, and modern CPUs will be beyond hobby capabilities.
The main issue is that at higher speeds, the underlying physical system is harder to deal with. Even at 33 MHz, how you physically route traces on a board alters the properties of the system. In basic electronics, you assume that a wire has zero resistance and no capacitive coupling to other wires, but neither of those are technically true, and at higher speeds, they can't be neglected. For example, the PCI bus inside your computer actually takes advantage of this; it uses something called reflected wave signalling to decrease the power required.
For a beginner, the PICMicro series of microcontrollers are very nice. You can build a programmer like the El Cheapo for very little money, and the microcontrollers require very little hardware. My own setup for PICMicro MCUs consists of only 7 devices -- a plug for +15V in, a 5V voltage regulator, a ceramic oscillator, three capacitors, and the MCU itself. Plus whatever devices I want to connect it to, of course.
Currently I have it set up to accept commands from a PC's serial port (required one more IC and 4 more capacitors).
PICs are nice, there's lots of info and demo code, the development tools are all free, and a programmer can be built for under $100; in fact often they can be built for under $50. Myke Predko's website (www.myke.com) has info on a home-built El Cheapo programmer which can handle a wide assortment of MCUs. The plans and the software are free.
You will certainly need to know a lot about the electical side before you're really good at this, but it's not as hard as you think. In reality, hardware is often easier than software.
mart_man00
07-09-2003, 06:36 PM
In reality, hardware is often easier than software.
wtf!!!
i think ill to get this (http://www.electronickits.com/kit/complete/prog/ck1701.htm) in a week or so.
Software is also hard to people who don't know it. Learning electronics isn't very difficult, although it may be time consuming.
Haven't used the 68HC05's myself, but they seem like popular chips. Do be warned with that particular programmer, though:
1) That seems only able to program one specific microcontroller (as opposed to a family of microcontrollers) so make sure you have a source to purchase the microcontrollers themselves from
2) That doesn't include the ZIF sockets, which can range in price from $5 to $25 apiece, depending on supplier. I'll see if I can dig up sales receipts, as at one point I found a really good supplier, but you can probably google it too.
confuted
07-09-2003, 09:23 PM
1) this belongs in the "interfacing with a 486" thread.
2) using a breadboard to connect with a 486 processor would not be a good idea, and it wouldn't work. *looks around* I seem to have misplaced my spare 486 processors, but they have a ton of pins - way more than you could handle with a breadbox. Also, you'll blow the processor if you bump the voltage adjustment knob on the breadboard.
vBulletin® v3.7.0, Copyright ©2000-2008, Jelsoft Enterprises Ltd.