Advice on bus drivers
2-Zons wrote 01/09/2019 at 22:19 • 0 pointsWorking on my TTL CPU project https://hackaday.io/project/162659-8-bit-breadboard-cpu . I'm working on wiring up the first block (the XY register). I have 8 x 8 bit bus drivers for the register. I started using 74ACT241's for the first 4. They worked fine but they are impractical because they are organized as 2 x 4 bit buffers, each with their own enable. One of which is active low so they can't be tied together. They also have each set of inputs on opposite sides of the chip which makes wiring very messy.
So when I went to wire up the second set of 4 bus drivers, I used some 74HC245's instead. I also realized that by using the 2 way feature I could use only 4 bus drivers. Problem is as soon as I added these chips to my circuit I started getting weird erratic behavior.
Essentially There is a bus on either side of these drivers. One side are the address or data buses, but on the register side it is also a bus with multiple inputs and outputs connected. Hence the Bus drivers.
Is it a bad idea to tie the bus lines down to ground with say 5K resistors to pull them low when they are floating? I am not sure if there is a problem mixing HC and ACT with LS chips. All the rest of my chips are of the LS variety. I've ordered some LS245's. The only reason I have the HC245's is that they were the cheapest type of 245 from the place I ordered a bunch of different chips from. I tried to order a variety of chips so I could experiment with different designs. but I tried to stick to LS chips. Should I avoid mixing LS with HC and ACT?
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.
On pulling down the bus with a 5k resistor. With LS the practice of old was to Pull-Up the bus with a 22k resistor. The main reason (other than for open-collector outputs and termination/ringing reasons) was to impose a (high) state during tri-state periods. Just makes life easier when monitoring (debuging) of the bus with an oscilloscope. Without the pull-up, monitoring the bus during tri-state was "messy". Better to pull-up than pull-down with LS.
Are you sure? yes | no
I started out with LS (still have heaps) but have migrated to HC. LS are pretty well old stock only nowadays.
Anyway, fanout is how many inputs can be driven by a output. For LS it is about 40 from memory. More if you add pull-up resistors to the bus lines.
HC can power about 1000 HC inputs.
So how many cards are you adding to your bus? If less than 10, I cannot imagine you having bus problems.
If in doubt look up the fanout calculation in your databook.
AlanX
Are you sure? yes | no
This is not mentioned but these figures don't predict the "speed" of the system, which is impacted not only by the number of gate inputs to drive but also the capacitive and inductive characteristics of the assembled system.
This is why I prefer to use multiplexors (there are 4-inputs and 8-inputs chips) so the traces have a reasonable fanout.
This also reduces the chances of doing "something wrong", such as driver contention (when 2 outputs try to write to the bus at the same time)
Are you sure? yes | no
After some reading, I can see that HC is superior, unfortunately I have way more LS components than HC. My next TTL project I will use HC.
I was thinking that's what you meant by fanout. I think the main problems I'm having are the slight incompatibility between HC and LS. If I replace the few HC chips I'm using with LS I think I'll be fine (hopefully).
Are you sure? yes | no
I don't know what you mean by fanout. I have 2 main buses (data and address). They are the system buses so all sub systems are connected to them. I think I'm only going to use the HC chips temporarily. I've got the LS equivalents ordered. They take a while from China.
Are you sure? yes | no
Why do you need bus drivers? Especially for HC logic (fanout is about a 1000!).
Even HC to LS has a fanout of about 20. If your mixing logic families then check the numbers. Its "hard" for LS to drive HC based on the minimum LS high output voltage specification (i.e. 2.7 v), so you may want to add a 3k3 pull up resistor, but that does not really happen in practice.
Just how many chips will be connected to your bus?
Are you sure? yes | no
My comment above should have been a reply to your comment.
Are you sure? yes | no