0
\$\begingroup\$

Let's consider an interface between a simple microprocessor and a certain memory. For instance, let's assume that the microprocessor drives the address bus, a read signal, a write signal, and that the data bus is a bidirectional signal, which can be driven by the processor or by the memory depending on if it is doing a reading or a writing.

In that case, it is necessary that after a reading, the memory puts its output on data bus at high impedance, and that after a writing, the processor puts its output on data bus at high impedance. Both operations to avoid conflicts.

But what if for instance we have a data bus for reading (driven by the memory) and a data bus for writing (driven by the processor)? Is it necessary (or anyway better) that the processor puts its output on the databus he drives at high impedance after a writing operation?

\$\endgroup\$
  • \$\begingroup\$ Memory is a dumb device. It can't drive anything, the processor+decoder gives CE, WR, RD signals to control the trsistate buffer of memory chip. \$\endgroup\$ – Marko Buršič Sep 1 at 10:14
  • \$\begingroup\$ Memory is allowed to drive the data bus only if a RD signal is active. \$\endgroup\$ – Uwe Sep 1 at 16:30
1
\$\begingroup\$

You only need to set a bus to high impendance if you have more than one device with drivers for that bus. It doesn't matter if this device is a processor or a memory.

In the case of multiple devices being capable of driving the bus, it is an error if more than one of them do this at the same time. That's why data bus drivers usually go to high impedance after being active.

Many processors are able to put their address bus into high impedance, too. This is necessary for example if you have DMA devices, DMA = direct memory access.

\$\endgroup\$
0
\$\begingroup\$

It's possible to have distinct data buses for read and write operations but as long as you don't employ distinct address buses, too, you could only overwrite the data read that way, as the address would be the same. This is hardly useful.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.