RetroBrew Computers Forum
Discussion forum for the RetroBrew Computers community.

Home » RBC Forums » General Discussion » Bus Buffers/Z80 Electrical Characteristic Questions
icon5.gif  Bus Buffers/Z80 Electrical Characteristic Questions [message #6662] Mon, 14 October 2019 16:26 Go to next message
protocall7 is currently offline  protocall7
Messages: 20
Registered: October 2019
Junior Member
Hi All,

I have been recently working on a new Z80 computer design, and have gone back and forth on whether or not to use bus buffering several times now. My design currently uses a pair of 74LS244's to buffer the address bus, and a single 74LS245 to buffer the data bus. From looking at application notes, it certainly appears that the Z80 can provide enough current on it's I/O to interface with at least a peripheral or two, however my design incorporates a few expansion ports so I wanted to provide some protection to the Z80. This leads me to a couple of questions:

* I have been looking through the Z80 technical notes and datasheets, and I am not finding how much current the I/O pins can handle anywhere -- Does anyone happen to know?
* When using the 74LS245 bus transceivers, should I use one on either side of the bus (e.g. another transceiver on-board the expansion cards), or can it be used just in front of the CPU?
* Does anyone have feedback on the choice of 244's/245's as bus buffers? Is there a better choice here?

Thanks in advance!!

proto
Re: Bus Buffers/Z80 Electrical Characteristic Questions [message #6665 is a reply to message #6662] Tue, 15 October 2019 02:20 Go to previous messageGo to next message
just4fun is currently offline  just4fun
Messages: 273
Registered: May 2017
Location: Dark side of the Moon
Senior Member
Hi, about the datasheet, here you can find all the info for both the NMOS and CMOS versions, including DC specs you are looking for...

[Updated on: Tue, 15 October 2019 02:23]

Report message to a moderator

Re: Bus Buffers/Z80 Electrical Characteristic Questions [message #6671 is a reply to message #6662] Tue, 15 October 2019 07:37 Go to previous messageGo to next message
jcoffman is currently offline  jcoffman
Messages: 332
Registered: October 2015
Senior Member
For bus buffers you cannot beat the 74LS244 and 74LS245. As receivers, they incorporate hysteresis on their inputs, important on a (possibly) noise-prone bus. But beware: the 74HC, 74HCT, 74ALS, 74F, 74S, 74AS logic families do NOT have these Schmitt trigger inputs.

If you have looked at schematics of the ECB SBC's and ECB peripherals, the CPU cards have 74LS drivers/receivers on the data lines, and the peripheral cards similarly have 74LS receivers/drivers on the data lines, and often, 74LS244 receivers on address lines. On some of the boards, the address line receivers are 74LS682/688 parts, the 74LS versions also having Schmitt trigger inputs.

The Retrobrew ECB bus, although not terminated, appears to be a particularly quiet, i.e., noise-free, bus.

--John
Re: Bus Buffers/Z80 Electrical Characteristic Questions [message #6674 is a reply to message #6665] Tue, 15 October 2019 10:41 Go to previous messageGo to next message
protocall7 is currently offline  protocall7
Messages: 20
Registered: October 2019
Junior Member
just4fun wrote on Tue, 15 October 2019 02:20
Hi, about the datasheet, here you can find all the info for both the NMOS and CMOS versions, including DC specs you are looking for...
Hi just4fun -- I feel like I'm missing something in the spec sheet you linked. I've been looking through the D.C. Characteristics and Absolute Maximum Ratings sections hoping to find Iin, but the only current ratings I'm seeing are the Icc currents for active/standby, as well as the input/tri-state leakage currents.

Am I just skimming over it and not seeing it, or perhaps did Zilog name the input current rating something I'm just not recognizing?

It does seem from jcoffman's comment that I might be on the right track with my design, regardless.

[Updated on: Tue, 15 October 2019 10:41]

Report message to a moderator

Re: Bus Buffers/Z80 Electrical Characteristic Questions [message #6676 is a reply to message #6674] Tue, 15 October 2019 12:35 Go to previous messageGo to next message
lowen is currently offline  lowen
Messages: 226
Registered: August 2016
Location: Western NC USA
Senior Member
Not sure where Steve got his info, but Steve Ciarcia's book "Build your own Z80 computer" states, on page 98, that the Z80 can drive one regular TTL load. See https:// books.google.com/books?id=mVQnFgWzX0AC&pg=PA98&lpg=P A98&dq=Z80+fanout&source=bl&ots=_ZJYZbY1g1&s ig=ACfU3U0N1QuwDGUW55UtTltuCGdle72GwA&hl=en&sa=X& ;ved=2ahUKEwjgucbU_57lAhXCV98KHUszAGwQ6AEwAnoECAgQAQ#v=onepa ge&q=Z80%20fanout&f=false

--
Bughlt: Sckmud
Shut her down Scotty, she's sucking mud again!
Re: Bus Buffers/Z80 Electrical Characteristic Questions [message #8464 is a reply to message #6676] Wed, 14 April 2021 10:55 Go to previous messageGo to next message
lynchaj is currently offline  lynchaj
Messages: 1079
Registered: June 2016
Senior Member
Hi
Facing a similar design issue on the Z80 multi board computer, I opted for a fully buffered Z80 processor board. 74ls244s for address bus and MREQ IORQ RD and WR. 74ls245 for data bus. 74ls367 for inputs like CLK, BUSRQ, RESET, INT, NMI, and WAIT. The remaining four outputs caused me the most grief but went with a 74ls07 OC buffer with weak pull ups for HALT, BUSACK, M1, and RFSH. The theory being if there is another transmitter on the bus at least they won't get in the way.

Not sure that the last four are right but I haven't found anything else and the data sheet is silent on sharing those signals. Going OC buffer seemed like a good idea although I would have preferred to use a 74ls244 had been able to find a way to share and coexist on a common bus. Such as how to tri-state those output signals?
Re: Bus Buffers/Z80 Electrical Characteristic Questions [message #8465 is a reply to message #6676] Wed, 14 April 2021 11:21 Go to previous messageGo to next message
lynchaj is currently offline  lynchaj
Messages: 1079
Registered: June 2016
Senior Member
lowen wrote on Tue, 15 October 2019 15:35
Not sure where Steve got his info, but Steve Ciarcia's book "Build your own Z80 computer" states, on page 98, that the Z80 can drive one regular TTL load. See https:// books.google.com/books?id=mVQnFgWzX0AC&pg=PA98&lpg=P A98&dq=Z80+fanout&source=bl&ots=_ZJYZbY1g1&s ig=ACfU3U0N1QuwDGUW55UtTltuCGdle72GwA&hl=en&sa=X& ;amp ;ved=2ahUKEwjgucbU_57lAhXCV98KHUszAGwQ6AEwAnoECAgQAQ#v=onepa ge&q=Z80%20fanout&f=false
I think this means use buffering on Z80 designs unless you have a very small number of loads on the Z80 CPU lines. 74ls are less loading than 74 TTL and some of the other families are low load too like HCT and ALS. However, buffering is a good idea on-board and a necessity if going off-board. I've seen designs where people connect the Z80 directly to a backplane and I wonder how long those CPUs will last under that kind of electrical strain. Probably won't work too well either.
Re: Bus Buffers/Z80 Electrical Characteristic Questions [message #8466 is a reply to message #8465] Wed, 14 April 2021 12:27 Go to previous messageGo to next message
wsm is currently offline  wsm
Messages: 226
Registered: February 2017
Location: AB, Canada
Senior Member
Perhaps I'm missing something obvious or just displaying a lack of knowledge. The Z80 NMOS CPU specs it's min/max output voltages at Iol/Ioh = 2.0 mA / -250 uA while the CMOS CPU is at 2.0 mA / -1.6 mA. 74LS chips are about 0.1 mA on inputs while HC/ LV etc. are about 0.01 mA or less.

Excluding things like trace capacitance, it would appear to me that the NMOS Z80 has a fan-out of 2 LS chips while the CMOS Z80 has a fan-out of about 16 LS. Both have at least 10 times that fan-out to CMOS chips.

Am I missing something here?
Re: Bus Buffers/Z80 Electrical Characteristic Questions [message #8467 is a reply to message #8466] Wed, 14 April 2021 12:54 Go to previous messageGo to next message
lynchaj is currently offline  lynchaj
Messages: 1079
Registered: June 2016
Senior Member
I think Ciarcia does a pretty good job laying out his argument in his book complete with examples but you should view it in the context of the times in which it was written. Almost certainly it was late 1970's early 1980's and was describing the NMOS Z80. I think the CMOS version came out later. Especially look at his example components like 2708 EPROMs, 74xx logic chips, 74367 buffers, etc. Those are all pure TTL devices and consume a lot of current compared to 74ls or especially CMOS versions. Think early, first iteration S-100 designs (aka space heaters). I think he was right in the context of when and where he was making the statement. Probably hasn't aged all that well but still a good design guide; use buffering for a lot of connections on-board and absolutely when going off-board. Small number of connections on-board are OK but only to a point.
Re: Bus Buffers/Z80 Electrical Characteristic Questions [message #8468 is a reply to message #8467] Wed, 14 April 2021 14:15 Go to previous messageGo to next message
wsm is currently offline  wsm
Messages: 226
Registered: February 2017
Location: AB, Canada
Senior Member
Been there and done that in the 70's with an S100 system I built which used 8T96 & 8T97 buffers. However this is 45 years later and there are a LOT more options for devices. Given the current price of NMOS Z80's, faster CMOS versions are available for less cost, use a lot less power, have a higher output drive and have no lower limit on frequency. Just my $.02 and preference for CMOS.

As to period correct documentation, I still refer occassionally to Don Lancaster`s CMOS Cookbook which came out in `77. I`ll also admit to having grey hair Smile

My question was mostly rhetorical on your design but serious about my possible misunderstannding of output drive capabilites. I am aware that increased fanout will result in higher capacitance and slower rise and fall times.
Re: Bus Buffers/Z80 Electrical Characteristic Questions [message #8469 is a reply to message #8468] Wed, 14 April 2021 17:45 Go to previous messageGo to next message
lynchaj is currently offline  lynchaj
Messages: 1079
Registered: June 2016
Senior Member
Yeah, I don't think anyone can dispute the CMOS parts are much more modern and more capable than their older counterparts. CMOS Z80 beats NMOS Z80 in most respects. I also recall when CMOS parts came out they were super sensitive to ESD and required special handling or they got silently damaged and/or destroyed. I don't think that is as big an issue as it used to be. I like the 74ls parts the best as they are a good compromise of features. However some of the newer parts are just amazing in how little power they use and heat they produce. Just amazing.

I have an old homebrew S-100 system in my basement with a bunch of old low density boards. Practically a full rack of boards and when it runs it feels almost like a toaster there is so much heat rising off of it. Haven't booted that machine in quite a while because it practically dims the lights when it starts. Also it came with a UV eraser inside the chassis which was just bizarre. I removed the bulb for safe keeping.

[Updated on: Wed, 14 April 2021 17:49]

Report message to a moderator

Re: Bus Buffers/Z80 Electrical Characteristic Questions [message #8470 is a reply to message #8469] Thu, 15 April 2021 05:20 Go to previous messageGo to next message
lynchaj is currently offline  lynchaj
Messages: 1079
Registered: June 2016
Senior Member
One thing I do not understand is why there doesn't seem to be, or at least I've not been able to find, a reference design for a fully buffered Z80. The datasheet gives some direction and some hints but it is pretty open to interpretation as to how to implement. I've done many searches for "fully buffered Z80" and various partial references will turn up but nothing really useful. I was expecting there would be a standard implementation of a fully buffered Z80 but apparently not. I find that rather strange since of all the wildly varying environments Z80s turn up in that at least some of them would need a fully buffered design. Maybe that's left as an exercise for the student?
Re: Bus Buffers/Z80 Electrical Characteristic Questions [message #8471 is a reply to message #8470] Thu, 15 April 2021 06:54 Go to previous messageGo to next message
wsm is currently offline  wsm
Messages: 226
Registered: February 2017
Location: AB, Canada
Senior Member
I was never very impressed with Zilog's documentation ... most of the required information is there but in a jumbled way. For the Z180 I still primarily use the Hitachi HD64180 manual which is MUCH better and Zilog finally used it as the basis of their updated manuals. One handy feature of the Z180 manual is a very clear table of every pin's state during RESET, BUSACK and SLEEP.

Unless you're using DRAM, interfacing the Z80 is pretty basic so perhaps I'm missing the point of your question. Are you planning on a multiprocessor configuration? The HALT*, BUSACK*, M1* and RFSH* signals reflect states of the bus master and if using an MP with shared peripherals then there's already going to be extra signals for each processor from the arbiter. On a single processor system you can just buffer them onto the bus in case peripherals want to use them. The M1* timing is used for I/O versus interrupt acknowledge so it should have the same timing delay as IORQ* ... using OC will add very significant rise time delays.

One thing to watch out for is that the clock input Vihc is specified as Vcc-0.6V whereas all other pins are Vih minimum of 2.2V. On the Z180, RESET*, EXTAL and NMI* all require the higher Vih. In my opinion, the CLK signal is tightly tied to the processor speed and thus should be on the processor board and possibly distributed out to the bus rather than as a bus input. As to the question of a buffered reference design, I think that goes back to my previous point about fanouts and every design is going to have unique requirements.
Re: Bus Buffers/Z80 Electrical Characteristic Questions [message #8472 is a reply to message #8471] Thu, 15 April 2021 07:18 Go to previous messageGo to next message
lynchaj is currently offline  lynchaj
Messages: 1079
Registered: June 2016
Senior Member
Not really planning for a multi-processor bus but would like to implement in such a way as to not preclude that possibility. It would be simple to just run HALT, BUSACK, M1, and RFSH through a 74ls244 or other buffer but on what conditions are they tri-stated? I could never find an answer in the datasheet so that essentially means only a single processor (or processor like device) on the bus with control of those signals. Using OC is sort of a compromise so that you can have multiple transmitters with the ability to pull those signals to low without bus contention. Not perfect but lacking an alternative.

Regarding the clock, my next revision of the processor board is going to have the option for an on-board oscillator or to use the clock signal on the bus. For the low speed (4 MHz or so) it should be OK on the bus while I work out the other design issues of going with a fully modular design. What forced this issue is over time the RTC circuit and CPU clock circuit kind of merged together in an unexpected way. It wasn't like that for the original SBC V1 design but evolved over time. So now its an issue by breaking into modules whereas before everything was integrated together in an SBC and it didn't matter.

The Z80 MBC is sort of an experiment since this issue of modularity has been nagging at the back of my mind since practically the start of the original SBC. Once those design decisions were in place it basically locked them in and it is difficult to make changes without completely breaking backward compatibility. I am hoping to use a different approach with Z80 MBC to allow for more flexibility. For instance, it would be nice to include a CTC or dual serial without a total redesign or the overhead of a full blown ECB backplane, etc. It is possible that the outcome of the experiment is that converting the SBC into a modular design is not feasible. In that case at least it answered my question.

That's why this question of Z80 bus buffers is so important and I am surprised it hasn't been more rigorously hashed out (as best I can find). The question forms the basis as to what constitutes a modular Z80 design. One of my goals is to have as few features on the processor board as possible. That's kind of budged a bit over the implementation as the current processor board now has a reset circuit and a wait state generator. The next iteration will include a local oscillator option as well. Still trying to keep that necessary feature set as small as possible so everything else can be a plug in (and thus changeable) module.

[Updated on: Thu, 15 April 2021 07:44]

Report message to a moderator

Re: Bus Buffers/Z80 Electrical Characteristic Questions [message #8473 is a reply to message #8472] Thu, 15 April 2021 08:26 Go to previous message
wsm is currently offline  wsm
Messages: 226
Registered: February 2017
Location: AB, Canada
Senior Member
Perhaps your answer to tri-states for HALT, BUSACK, M1 and RFSH can indirectly be answered by looking at the Z180 which is better documented. All four of these signals are ALWAYS outputs with no tri-state. If you're trying to go the multiprocessor route you'll need an arbiter that determines which processor has control of the main bus. So the solution is pretty simple ... those four signals have their own tri-states controlled by the bus master select signal which also has an onboard pullup or pulldown for single processor use.

I've come full circle on the bus question as it eventually leads to all sorts of future issues such as interrupt and busreq daisy chaining. I've gone to single boards with what I perceive as all the required features and possibly with a limited expansion for an I/O bus, I2C or SPI. One of the main costs used to be PCBs but they're now cheap and easy to change with CAD. And yes I've also gone to the extreme with the NYOZ system allowing expansion boards with up to 16 slave Z180's at 33MHz plus all sorts of memory and I/O options. The BIOS became a real pain allowing for all the possible options.
Previous Topic: old designs: USB2FDC
Next Topic: Z80 SPI fast SD


Current Time: Mon May 20 13:39:24 PDT 2024

Total time taken to generate the page: 0.00750 seconds