Maker Pro
Maker Pro

Help me to make a 8bit to 16bit data forwarder type circuit..

jayadratha

Jan 6, 2012
10
Joined
Jan 6, 2012
Messages
10
Please help me to build it. Thanks in advance.......

In my circuit there will be 8bit input. Now there will be 16bit output. From those 16pin any of 8pin will represent the 8bit input. Suppose:
there has 8 pin input from D0 to D7.
now there has 16pin output from A0 to A15
now A1=D0, A3=D1, A6=D2, A9=D3, A11=D4, A13=D5, A0=D6, A15=D7

This is for just example this will change in run time according to some decision input.

Please help me to build this circuit......:(
 

Raven Luni

Oct 15, 2011
798
Joined
Oct 15, 2011
Messages
798
That sounds more like a software question. Here is some basic pseudo code:

Assuming you have a table T of presets for pin assignments indexed by z,
FOR x = 0 TO 15
A[x] = 0
NEXT x

(z is chosen here somewhere)

FOR x = 0 TO 7
A [T [z] [x]] = D [x]
NEXT x

If you want to deal with A and D as integers instead of individual bits it would be as follows:

A = 0
FOR x = 0 TO 7
A = A + (((D RIGHT_SHIFT x) AND 1) LEFT_SHIFT T[z] [x])
NEXT x
 

jayadratha

Jan 6, 2012
10
Joined
Jan 6, 2012
Messages
10
That sounds more like a software question. Here is some basic pseudo code:

Assuming you have a table T of presets for pin assignments indexed by z,
FOR x = 0 TO 15
A[x] = 0
NEXT x

(z is chosen here somewhere)

FOR x = 0 TO 7
A [T [z] [x]] = D [x]
NEXT x

If you want to deal with A and D as integers instead of individual bits it would be as follows:

A = 0
FOR x = 0 TO 7
A = A + (((D RIGHT_SHIFT x) AND 1) LEFT_SHIFT T[z] [x])
NEXT x
No i want to make hardware to do that...
 

Raven Luni

Oct 15, 2011
798
Joined
Oct 15, 2011
Messages
798
If you want to have arbritrary pin assignments that can change on a signal you'll need a processor of some kind. If you want an easy hardware solution just use a set of jumpers that you can swap about - you don't even need any other components for that :)
 

jayadratha

Jan 6, 2012
10
Joined
Jan 6, 2012
Messages
10
If you want to have arbritrary pin assignments that can change on a signal you'll need a processor of some kind. If you want an easy hardware solution just use a set of jumpers that you can swap about - you don't even need any other components for that :)
But in this case i have to manually change those jumpers. But i dont want it manually. Is it possible???? Is it possible to change those jumpers by any electronic circuit????
 

Laplace

Apr 4, 2010
1,252
Joined
Apr 4, 2010
Messages
1,252
Take a look at the CD4067B 16-channel multiplexer/demultiplexer. The analog switches appear to be unbuffered so the switching is bidirectional with a channel resistance of 125 ohm in the ON state which is capable of switching CMOS-level logic signals. You would need 8 of these IC's, one for each of your 8 input lines. The decoded outputs would need to be wired in parallel to the same output on each of the eight chips. Each 4067 has a 4-bit address input to select which of the 16 switches to activate so you will need to provide a 32-bit address to control the switching with the stipulation that none of the 4-bit segments can be the same as any of the other 4-bit segments. This will let you connect each of your 8 input signals to any 8 of the 16 output lines. Of course this will leave the other 8 of the 16 output lines floating so you will need to decide what if anything to do about that.
 

jayadratha

Jan 6, 2012
10
Joined
Jan 6, 2012
Messages
10
Take a look at the CD4067B 16-channel multiplexer/demultiplexer. The analog switches appear to be unbuffered so the switching is bidirectional with a channel resistance of 125 ohm in the ON state which is capable of switching CMOS-level logic signals. You would need 8 of these IC's, one for each of your 8 input lines. The decoded outputs would need to be wired in parallel to the same output on each of the eight chips. Each 4067 has a 4-bit address input to select which of the 16 switches to activate so you will need to provide a 32-bit address to control the switching with the stipulation that none of the 4-bit segments can be the same as any of the other 4-bit segments. This will let you connect each of your 8 input signals to any 8 of the 16 output lines. Of course this will leave the other 8 of the 16 output lines floating so you will need to decide what if anything to do about that.
I'm getting the 8bit input from 8085 microprocessor so i think i need a digital ic..... isn't?
 

(*steve*)

¡sǝpodᴉʇuɐ ǝɥʇ ɹɐǝɥd
Moderator
Jan 21, 2010
25,510
Joined
Jan 21, 2010
Messages
25,510
You can use the analogue switches, but you really need to tell us more about what you're trying to do because my initial thought is that you do it in the 8085 in software as described in Raven Luni's first response to you.
 

jayadratha

Jan 6, 2012
10
Joined
Jan 6, 2012
Messages
10
You can use the analogue switches, but you really need to tell us more about what you're trying to do because my initial thought is that you do it in the 8085 in software as described in Raven Luni's first response to you.

I'm trying to make a IC tester. But the problem is my college said i have to do it with a intel 8085. But the problem is 8085 is a 8bit processor, so all ports are 8bit. Now all the IC's input and output pins are not same. So if i make the circuit static then it is not possible to check all ic. If i use a 16bit processor then it is possible to block lines coming from 8085. So i can separate the outputs and inputs in runtime. Is it possible to do in 8085? If I get such a IC which i said in my thread then it is possible.
 

jayadratha

Jan 6, 2012
10
Joined
Jan 6, 2012
Messages
10
Either use a shift register or put your 16 bits on the address bus :)
Sir i just told several time that i have to use 8085. so it is a 8bit processor and data bus also 8bit. so how can i use it for a 16bit data??? please read my all post thoroughly
 

Raven Luni

Oct 15, 2011
798
Joined
Oct 15, 2011
Messages
798
The address bus is 16 bit (otherwise you would only be able to index 256 bytes of memory)

But if you are intent on using only the data bus, then I suggest using a shift register setup (as I said in the previous reply). A good choice would be a pair of 74HC164 ICs (8 bit shift register but can be paired to make 16). Then you only need 1 of your 8 data bits and you can clock it with the IORQ line.
 
Last edited:

(*steve*)

¡sǝpodᴉʇuɐ ǝɥʇ ɹɐǝɥd
Moderator
Jan 21, 2010
25,510
Joined
Jan 21, 2010
Messages
25,510
The 8085 has a 16 bit address bus and an 8 bit data bus.

The lower 8 bits of the address bus are multiplexed with the data bus.

To interface a memory mapped device to some address range that is aligned to an 8 bit address boundary (essentially xx00) you need to use the upper 8 (or fewer) bits of the address to drive the chip select of the memory when they are in exactly the correct state. The address and data bits are then interfaced as to the remaining address bits and the data bus.

The complexity is that these are multiplexed. If your memory has the same multiplexed structure then you probably just connect them up. Otherwise you may need some combination of latches, tristate bus drivers and/or bi-directional buffers.

edit: the above isn't going to help. I think I just confused your thread with someone else's :(

But the same thing applies -- kinda.

What you need to do is decode the address on the address bus and use that to latch the states of some device to the current data on the data bus.

I would be contemplating using (say) the top 13 bits of address to globally enable, and the bottom three, through a 3 to 8 line decoder to determine which one of 8 sets of outputs you were selecting.

I can't imagine you could do what you want with so few (16) outputs, but that's not my concern.

Presumably you also need inputs... Presumably you also need to set whether each pin is an input or an output? So you need (for each pin) to determine direction (input or output) and if output, the state (high or low), and if input, the read state (high or low). How you map all of that is up to you, but for each pin under test you might need some multiple (perhaps 3) of digital I/O inputs and outputs.
 
Last edited:

jayadratha

Jan 6, 2012
10
Joined
Jan 6, 2012
Messages
10
If you want to have arbritrary pin assignments that can change on a signal you'll need a processor of some kind. If you want an easy hardware solution just use a set of jumpers that you can swap about - you don't even need any other components for that :)

Ya i can do this but in this case user have to connect the pins manually, so it will be a bad side or my project.
 
Top