8085 SBC needs help

I have wired a simple SBC based on the basic 8085 chip. Using 74LS373 as a latch clocked by ALE, 2716 for program storage, 2x 74LS138 for decoding the /CE for

2716 and the /IOR, /IOW, /MR and /MW signals. I need only 1 bit input and 1 bit output so I used 74LS373 for input and 74LS244 for output. The input is connected to a switch and output conmected to a LED. When the switch is making, the LED will flash at about 1Hz. When the switch is off, the LED goes off. There was no RAM as my program doesnt use subroutines. Actually the program is less than 256 bytes so I tie A8-A10 of the 2716 to ground. Below is the connection of the 2 decoders and the I/O.

74LS138 74LS138 .------. .------. 1 | Y0o----- /ROM CS 1 | Y1|-----/MR A13----|A | /WR----|A | A14--2-|B Y1o----- /RD----|B Y2|-----/MW A15--3-|C | IO/M----|C | | Y2o----- | Y5|-----/IOR VCC--6-| | VCC---6| | +--4-o | +---4| Y6|-----/IOW +--5-o | +---5| | | | | | | | | '------' | '------' | | === === VCC GND GND | .-. | | OUTPUT INPUT | |10K 74LS373 74LS244 '-' .------. .------. | D0-----3|D0 Q0|2----+ D0--18-|Y0 A0|-2---++ | | | | | | | | .-. | | o | /IOW--+ | | | | | | |=| | | | | |470 | | o |

+------+ | | '-' | | | | |\\ | | | | | | +-| >O--11|LE | | | | === |/ | | LED - | | GND -----1|/OE | ^ -> /IOR---1-|/OE | | '------' | '------' === VCC GND

(created by AACircuit v1.28.6 beta 04/19/05

formatting link

And the program I wrote to test the circuit.

.equ sensor, h'00 .equ led, h'00

.org h'0000

start: mvi a,h'ff ;turn off led at start out led mloop: in sensor ;check sensor rar jnc led_on jmp mloop led_on: mvi a,h'00 ;turn on led out led delay1: lxi d,h'ffff dloop1: nop dcx d jnz dloop1 mvi a,h'ff ;turn off led out led delay2: lxi d,h'ffff dloop2: nop dcx d jnz dloop2 jmp mloop .code .end

I was wondering if I didnt fully understand the instructions correctly or the hardware was in problem. On the 74LS138 I used for memory decoding, I was getting pulses on all the output instead of just Y0 output. The IO/M pin was a permanent lo and the /WR signal from

8085 was always high. Do I need extra signals on the enables for the decoders to decode correctly? Any feedback is much appreciated. Thank you.

Allen

Reply to
Allen Bong
Loading thread data ...

.

Y5|-----/IOR

----/IOW

|

=A0 =A0|

=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 VCC

=A0 =A0 =A0 =A0 =A0 =A0 =A0|

=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0.-.

=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0| |

=A0 INPUT =A0 =A0 =A0| |10K

74LS244 =A0 =A0 '-'

-----. =A0 =A0 =A0|

=A0| =A0 =A0 =A0| =A0 =A0 |

| =A0 =A0 =A0| =A0 =A0 o |

=A0 =A0| =A0 =A0 =A0 |=3D|

=A0 =A0 =A0| =A0 =A0 o |

=A0 =A0| =A0 =A0 |

=A0 =A0 =A0| =A0 =A0 |

=A0| =A0 =A0=3D=3D=3D

=A0 =A0 =A0| =A0 =A0GND

-'

I have just spotted a software mistake. The DCX D dosent affect the zero flag when decrements through zero, so my program must have stucked in a loop. SOme correction was made after the DCX D.

dloop1: nop dcx d mov a,d ora e jnz dloop1 [snip] dloop2: nop dcx d mov a,d ora e jnz dloop2 jmp mloop

I have also included a link if you want to take a look at the schematic.

formatting link

Allen

Reply to
Allen Bong

I was using the 8085 in 1984 !!!

You need to find a microcontroller that is up to date. You wont need all these extra chips then ! A PIC or AVR should do the job easily.

Reply to
Marra

On Feb 2, 7:15=A0pm, Marra wrote: > I was using the 8085 in 1984 !!! >

Learning is good and he's making headway with what he has. Don't go raining on his parade. Personally I think what he's doing is better in that he's understanding the interactions to the outside world which is never a bad thing.

Keep at it Allen

GG

Reply to
stratus46

Thanks GG, for the vote of confidence. I know I am not that far to making the circuit work. I just need a little push so I can get my engine started. It is weekend now and I guess everyone is having his good time so help should arrive when everyone is back.

Cheers,

Allen

Reply to
Allen Bong

This chip is similar to 8086? So the reset vector (well not really a vector on intels ) is in high memory? Where is that specified in the code? Hmmm how do you even program 2716, LOL I may have 1 or 2 around here to but mostly 8K and up.

Well had to look up the reset on this chip, at 0? hmm .

As to the hardware .. quick look at the address decode.. it will work in this situation but really it divides the address space into

8 chunks not 16 AND YOU ARE NOT USING the /MR in decoding the /ROM CS, this will affect any output (writes) out of the CPU. I'd connect /MR out of second 138 to one or both /G2 enables ( pin 4 and 5 ) of first 138. To get this particular, 1 rom configuration going you could even do away with the first 138 and use the /WR to control the /OE or /CE of the ROM keeping the other grounded.

Oh, when will I have time to have similar fun with my 80C196.

Cheers.

Reply to
Sambo

..

Y5|-----/IOR

|-----/IOW

=A0|

=A0 =A0 =A0|

=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 VCC

=A0 =A0 =A0 =A0 =A0 =A0 =A0|

=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 .-.

=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 | |

=A0 INPUT =A0 =A0 =A0| |10K

74LS244 =A0 =A0 '-'

.------. =A0 =A0 =A0|

=A0| =A0 =A0 =A0| =A0 =A0 |

=A0 | =A0 =A0 =A0| =A0 =A0 o |

=A0 =A0| =A0 =A0 =A0 |=3D|

=A0 =A0 =A0| =A0 =A0 o |

=A0 =A0| =A0 =A0 |

| =A0 =A0 =A0| =A0 =A0 |

=A0 =A0| =A0 =A0=3D=3D=3D

=A0 =A0 =A0| =A0 =A0GND

---'

r on intels )

I think so, Most Intel micro-processors reset to address h'0000. The

8051 that I used a few times also reset to zero. I have plenty of 2716 pulled out of sockets from OKI teletypes when these machines became out of date 10 years ago. Each teletype (we called teleprinter here) has 2x 8085, 2x 8755 and 4-5 8155 on board plus some other 82xx chips.
o

s will

)

ith the

other

Well, the /MR was connected to the /OE of the 2716 and the address decoder /ROM CS is connected to the /CE. I used address decoder in case I want to add static RAM later if the I want to expand the circuit. The other decoder idea was stolen from Steve Walz's 7442 and I though it was not a bad idea so I adapted it.

The complete circuit is at

formatting link

398953933/

In the schematic I used 2764 instead of 2716 as my circuit CAD doesn't support 2716 at all. The minimum eprom is 2764 as you've expected.

Was the 80C196 similar to 80C186 which was designed as a controller? It was used in our telephone automatic line testers in the exchange. Looks quite complicated!

Guess you would be playing with it when yor're retired. LOL.

Thanks for your response, I'll modifiy my circuit as you suggested and see if it works. BTW the address latch from the 8085 was a 74F373. Will that have any efftect on my circuit?

Reply to
Allen Bong

will

the

other

Oh yes I thought of that later, after I sent it.

formatting link

It's not all that close and I don't like it's banking crap but when I rescued it from some hard drives 5-8 years ago it's

64K address space with ADC looked great.

Well it sounds like you have it right. Maybe you could try first just blinking the led, or replace the led with small cap. I didn't find any good page describing the chip, so besides finding out it resets to 0 and has other vectors at the bottom I didn't find out much else. I'd try to make sure all possible interrupts are disabled and besides the initial JMP start_prog put the rest of the program little higher, above the 'vectors'. Saying all that, it is still possible it's the timing but I don't think I can give it a good look tonight. Cheers, Sam.

Reply to
Sambo

will

the

other

Oh yes I thought of that later, after I sent it.

formatting link

It's not all that close, it needs to be KC version and I don't like it's banking crap but when I rescued it from some hard drives 5-8 years ago it's

64K address space with ADC looked great. Microchip has something comparable by now, but the price per transistor compared to to the current CPUs with hundrets of millions of transistors...not to mention the banking because they are trying to save on few extra bus paths, sheesh.

Well it sounds like you have it right. Maybe you could try first just blinking the led, or replace the led with small cap. I didn't find any good page describing the chip, so besides finding out it resets to 0 and has other vectors at the bottom I didn't find out much else. I'd try to make sure all possible interrupts are disabled and besides the initial JMP start_prog put the rest of the program little higher, above the 'vectors'. Saying all that, it is still possible it's the timing but I don't think I can give it a good look tonight. Another thing, are you sure that particular chip does not have some aditional features, it used to be nightmare trying to pick a 6800 micro, and trying to reuse unknown one....

Cheers, Sam.

Reply to
Sambo

formatting link

Oh now I can see it and read it.

Reply to
Sambo

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.