How To Design A 8-Bit Z80 Computer Pt 1

  Рет қаралды 24,889

Retro-Depot

Retro-Depot

Күн бұрын

Пікірлер: 55
@SpringDivers
@SpringDivers 5 жыл бұрын
The Bob Ross of micro computer design. Very enjoyable. Thanks much.
@RetroDepot
@RetroDepot 5 жыл бұрын
Thanks! But hopefully I'm better looking than Bob Ross...
@edabean007
@edabean007 3 жыл бұрын
this just made me pull out my breadboard and some salvaged z80 cpus. thanks for inspiration for a fun afternoon :D
@jimtekkit
@jimtekkit 2 жыл бұрын
Thanks for doing this! I was planning a build with my I/O consolidated into an ATmega32A (or similar) but wasn't 100% sure how the interface to it would work. Most projects use ATmega microcontrollers as the main system chip.
@konturgestalter
@konturgestalter 3 жыл бұрын
Excellent videos! Please more of that!!
@fredimachadonet
@fredimachadonet 4 жыл бұрын
Pretty nice! Thanks for this video.
@johansilvacueva9705
@johansilvacueva9705 4 жыл бұрын
Gracias, Saludos desde Peru. Tank Y, Greatings from Peru
@TSteffi
@TSteffi Жыл бұрын
One addition to the question of pullup resistors on the z80 data lines: In Interrupt mode 2, when the CPU reads the vector from the device, D0 *must* be 0. Having a pullup there might cause problems.
@ingmarm8858
@ingmarm8858 5 жыл бұрын
G'day, your schematic design style is certainly unique with regards to the use of the bus structure for everything, not one I'd personally use in this form or recommend but when it comes down to it of course as long as it works for you it's cool :-)
@RetroDepot
@RetroDepot 5 жыл бұрын
Ingmar, I know it's unconventional. I've only seen a few others who have used this type of bus structure. I like it because it compartmentalizes the schematic. It helps to break things apart. But realistically, the bus lines are not needed, since I could just name each line individually. It's what works for me, you certainly don't have to copy it.
@ingmarm8858
@ingmarm8858 5 жыл бұрын
@@RetroDepot it's all about what works for an individual or in my case what works for my engineering group where I don't think it would translate well to a large design. I can certainly see your point though.
@RetroDepot
@RetroDepot 5 жыл бұрын
It's not a very academic way of doing it. But I don't work on large designs much. Although I do help debug aviation electronics from time to time. And the format those schematics come in is just too damn complicated. You almost have to have a manual with nothing but net names and all of their points. I went through a 25 page schematic working on a Nav system once, and that was the biggest pain in the ass. Thats one reason I simplified my format.
@MatsEngstrom
@MatsEngstrom 5 жыл бұрын
Heavily usage of buses is not that uncommon. But I've never seen VCC/GND being in the buses as well - that's definitely a new for me. And personally I'd probably would have separated it into three separate buses for Address, Data and Control respectively.
@youreale
@youreale 5 жыл бұрын
Very informative, thanks!
@RetroDepot
@RetroDepot 5 жыл бұрын
Thanks! I hope it helps you.
@SteveJones172pilot
@SteveJones172pilot 3 жыл бұрын
I've never seen anyone use the BUS feature of Eagle like this.. This is really cool and lets the diagram be very understandable.. Thanks!
@RetroDepot
@RetroDepot 3 жыл бұрын
You seem to be the exception to the rule. Most people found it to be rather distasteful, lol. But I do find it helps to separate things out. I've since moved away from it to simply using nets and labeling them.
@SteveJones172pilot
@SteveJones172pilot 3 жыл бұрын
@@RetroDepot Thats interesting.. yeah, I thought it made the diagram very clean looking, and it was easy to tell on each chip where each signal was from the labels vs. tracing a bunch of lines.. I guess that's why theres multiple ways to do things though.. not everyone will like the same things!
@patkeller2617
@patkeller2617 3 жыл бұрын
As an electronic designer for over 40 years, using busses on schematics cuts down on the single signal "ratnest" that we used to do. What is historically done is that a buss just contains 1 type of signal, in the case of this design, you would usually have a data bus, an address bus and a control bus, and "maybe" a misc. bus. These busses would only be run to the associated area of a give chip, i.e. the data bus would only go to the schematic parts that had data signals. Same for the other busses. Do some Googling for some old computers and you can see this done. The original Radio Shack TRS-80 Technical manual is online. This document as a block diagram that uses this type of display. The actual schematic is real old school signal per line. This document does have some interesting information on how the CPU works and also information on other I/O and memory device management.
@iccaros
@iccaros 5 жыл бұрын
a little late, but why not a 2x4 latch for memory select? you built one with two other chips.. not that it really matters but it makes it cleaner on the board..
@user-vq5rx5ym6b
@user-vq5rx5ym6b 5 ай бұрын
Muito legal!!😃 Obrigado pelo conteúdo! Vou montar um computador com z80 pra mim também!!🖤
@novachip_tecnologia
@novachip_tecnologia 5 жыл бұрын
Aweome project! Can you add a option to boot from serial in the next episode?
@RetroDepot
@RetroDepot 5 жыл бұрын
Leonardo, I will be doing a video similar to that. But it will not be the next episode. The next episode with consist of cleaning up the schematic and settling on a design. The following with be prototyping. Then PCB design. And then likely software. That is the general flow I have in mind for this series.
@VitaliyGura
@VitaliyGura 4 жыл бұрын
U dont need to replace parts after making any changes to footprint or symbol. Just hit library-> update all
@nonchip
@nonchip 4 жыл бұрын
25:00 what you're doing is a *basic way.* the *easiest way* would've been to just use a 1-to-2 decoder. something like the 74LVC1G19 (that one's literally the same logic as you built, but in a nice easy package). MEMRQ->enable, A15->input, A->MEMLO, B->MEMHI, done.
@stupossibleify
@stupossibleify 3 жыл бұрын
Just realised there's a free edition of Eagle. Play time!
@NANO-SERWIS.MAREK-DASZKE
@NANO-SERWIS.MAREK-DASZKE 4 жыл бұрын
Why not use Z80 Dart or Z80 Sio ?
@tommyvanpelt2408
@tommyvanpelt2408 5 жыл бұрын
I pretty much do the same as you but I use a square pad for pin 1 so that if I decide to not silkscreen that part, it is easily identifiable.
@RetroDepot
@RetroDepot 5 жыл бұрын
Thats perfectly acceptable. I do not do a lot of etching these days. But that is something I used to do when I did.
@tommyvanpelt2408
@tommyvanpelt2408 5 жыл бұрын
@@RetroDepot Thanks...I'm building this along with you because I've never used an AT-Mega. I've built z80 computers; one was a tribute to an H89 my father built and I now have and the other was a copy of the TS1000. The H89, I used a 555 timer built from scratch to control the z80 and the Sinclair I used a crystal. You're very easy to understand and offer good explanations of what you are doing and why so I really appreciate that. I've done some additions to what you have so far in the way of a power supply with a 7805 regulator and some capacitors to keep it noise free. I may use this project as a teaching tool for my students so again, Thank you!
@RetroDepot
@RetroDepot 5 жыл бұрын
Tommy VanPelt I would hold off on soldering for now. I have made some changes that I’ll be showing in Ep 2. It will be posted this Friday. Ep 3 will consist of prototyping. And maybe some testing depending on how much time I have. I’m trying to get these videos done a week in advance so that I have time to shoot/edit the following video. Thank you for the compliment. Most people find my SE Oklahoma accent difficult to understand. It’s definitely a different dialect. But I’m glad you find it easy to understand me. And I hope your students can learn something from this.
@joefish6091
@joefish6091 2 жыл бұрын
The SCCS Interface magazines from the 70s is a good start (and a great read). they were ground zero. google. Emulation on a PC is a good practical beggining. then there are 10-15 USD SBC pcbs out there, an easy off the shelf method for quick results.
@lozD83
@lozD83 3 жыл бұрын
Yeah, I imagine it'd take quite a while to design an 8-bit computer if you're starting from pretty much only knowing how to calculate resistance. Cool vid, btw
@RetroDepot
@RetroDepot 3 жыл бұрын
Thanks, buddy. Glad you enjoyed it.
@stupossibleify
@stupossibleify 3 жыл бұрын
Digital electronics seems a lot simpler to understand/use than analogue
@MrGigi-dz9cv
@MrGigi-dz9cv 3 жыл бұрын
I am watching this, since i am intterested in the computers. Then i want to repair, an old z80 computer.
@gorillaau
@gorillaau 3 жыл бұрын
The TRS-80 manuals had full circuit schematics. They might be worth chasing up for your interest.
@arturpaivadeseixas1359
@arturpaivadeseixas1359 5 жыл бұрын
Under memory-hitachi there's a generic 62256P memory. I dont know why is under memory-hitachi but its there ;) Also the 74HC parts are under 74xx-eu. Dont know why but 74xx-us only has 74LS.
@RetroDepot
@RetroDepot 5 жыл бұрын
Thanks, Artur. Like I said in the video, half the fun is finding the right devices.
@petelee1391
@petelee1391 2 жыл бұрын
There is no part 3....
@Lucretia9000
@Lucretia9000 3 жыл бұрын
From a usability perspective, eagle looks like a nightmare to use.
@RetroDepot
@RetroDepot 3 жыл бұрын
It’s actually very intuitive. Much more so than KiCad.
@gorillaau
@gorillaau 3 жыл бұрын
All of these CAD tools take a bit to get your head around. KiCAD has it's UI quirks.
@UpcycleElectronics
@UpcycleElectronics 5 жыл бұрын
I don't mean to be discouraging at all, but I agree with Ingmar M's comment on your use of busses. There are a lot of similarities between how you and I picked up electronics from scratch. I have no formal training. I just have a ton of time to goof around due to becoming disabled in 2014. By no means do you need to change what works for you, and please don't let any criticism influence your decision to create content. From my perspective, the only time I've seen a schematic use busses and labels kinda like this is on an enormous server PCB schematic that had a couple hundred pages. Robert Fedevel went over that one recently in a 3 part upload (so far) about PCB design practices. I highly recommend looking him up on YT (his channel is his name). Almost all of his content is intended for Altium. Personally, I came across some of his uploads but didn't really value them because I thought of them as Altium specific. When I'm given a choice of OSHW/FOSS'y projects I always choose the open option. So by default I've learned KiCAD. I'm especially glad I took the time to learn it now, as the more recent KiCAD 5 release is awesome, and since Autodesk bought Eagle I would have dropped Eagle anyways as I hate the idea of subscription software tools. Open software is forever. No one will ever be able to take that away and it will only improve over time the more people use it. [stepping off soapbox] sry...Anyways.. The tips and tricks that Robert Fedevel shares on his channel really helped me to improve my schematics and layouts. There are also a few uploads from Dave over on the EEVBlog channel where he did timelapse videos of some projects showing how he does schematics and layouts. I saved several of these uploads on a 'PCB Design' playlist on my account (there is one playlist on Fabrication and another for Design). It's all links to other people's stuff and I'm not monetized so I don't care about self promotion. My playlists are intended as a form of personal notes and bookmarks, but I made them public bc these kinds of moderated and indexed references could be helpful for others. The way your using busses here would require me to use software and a 'highlight net' feature to effectively trace the connections. That is a necessity when it comes to enormous schematics but this type of design doesn't flow and I find it very unintuitive. Personally I don't use busses unless it's a really rare circumstance where I have sequential pins with a bus specific function that are routed one to one across multiple devices. If I can clearly route a trace I always try to, and I avoid using labeled nets in favor of dedicated tags("global nets" are dedicated tags as they are called in KiCAD). This creates a physical object on the page that is a bit easier to see and correlate across the page. When my schematic is complete I go back and add the simple "label nets" to any connections that do not have a "global label" on them already so that they are named on the PCB layout side, but I don't use them to make connections. My personal goal is to create schematics that are as easy as possible for others to follow using just the pdf output without the need to use my/other software, or read my notes or description. That's just my goal for these kinds of things. I'm super slow and inefficient though, so I could never ask others to do like I do. I'm simply (overly) openly sharing my perspective and experience because I appreciate when people have shown me things like this more directly. I actually followed Julian Ilett's "blink a Z80" upload yesterday and got one counting in binary on a breadboard for the first time. Now I'm building a little 8 button analogue-ish programmer setup and looking for different ways to latch and buffer it to create up to 16 bits in latching registers along with buffers to display the values on LEDs. I'd even like to have a 7 segment display to show the HEX values of the buttons and registers. Do you have any suggestions on what devices to use? I have some 74LS273's (8 bit D Flip Flop registers) that I salvaged from old equipment, but they are limited to 200uA on the output, so a buffer for LEDs is mandatory. I imagine this is going to be the case with most TTL registers and is probably needed anyway because 200uA (max) on a breadboard and wiring setup doesn't seem very reliable. I have a bunch of CD4050's (non-inverting buffer) anyways. That just adds complexity to what should be a simple prototype. I found a reference to DM9368's on stack exchange. Those are 4 digit binary input/hexadecimal output 7 segment display driver ICs. They aren't dirt cheap but can be had for around $1.50 each in 10× quantity from eBay/AliEx. I've thought about using 74HC245s for registers as those have a tristate system but parts on hand > ordering more. Any suggestions for building such a manual device for testing old MPUs? I'm also doing a 555 oscillator, 5 volt regulator, and using a buffer stage to generate a crystal oscillator circuit for an all around MPU tester board, along with extra pull up/down resistors on headers, and some extra switches, LEDs etc. Is there anything else you wish you had on hand while playing with old 8/16 bit MPUs? -Jake
@RetroDepot
@RetroDepot 5 жыл бұрын
Wow, that is a lot to respond to. So I'll try to do my best. If I miss something, let me know. First, I know it's unconventional. I've only seen a few others who have used this type of bus structure. I like it because it compartmentalizes the schematic. It helps to break things apart. But realistically, the bus lines are not needed, since I could just name each line individually. It's what works for me, you certainly don't have to copy it. But this issue of not being able to determine which line goes where is a moot point, since I clearly label each line. This is for my own personally reference. So that I can know exactly what line I'm looking at. That said, I don't need to look up a net list to know what line it is, as it is clearly labeled. Thats just my preference. It's easy to read... As for the alternative channels, I am aware of them. I follow Dave, and a member of his forum. But I do not interact much there. I have my own projects, own website, and chat to manage. But I do regularly watch his channel. As for Robert, I have seen a few of his videos, but I do not follow him. Not really an Altium guy, although I do wish I could find an old copy of the software used for creating PLD schematics and translating them into the JEDEC files. It would be much easier than writing complex algorithms in CUPL or OpalJR. Concerning the z80 build, your goal is very similar to my first z80 computer. I'll link those videos below. But it was a software driven system that used 74HC374s to latch the data, and my own PLD based Binary to Hex decoder that translates those values for 7-Segment displays. I used the GAL16v8, but I also have a Dual Display version that will take the 8 bits and break them out to 2 separate 7-Segement displays. But requires an oscillator to display both, as the displays are gated. If you're looking for something like that, I can provide those: see my webstore. A write-up on that is available here: www.instructables.com/id/Dual-BCD-to-Hex-7-Segment-Driver/ Z80 Video #1: kzfaq.info/get/bejne/prt9YL2SkrrVoo0.html Z80 Video #2: kzfaq.info/get/bejne/qZd0o8aCrcWaaJs.html Z80 Video #3: kzfaq.info/get/bejne/hKqJg6mGtbC6lac.html
@ingmarm8858
@ingmarm8858 5 жыл бұрын
Oh I'm not at all against busses, I'm just used to more of a seperation of data, address, control busses and supply rails not being included at all. 😁
@UpcycleElectronics
@UpcycleElectronics 5 жыл бұрын
@@RetroDepot Hey sorry if I talk too much. I don't get out very often except for physical therapy or doctors. I'd seen the videos for your first board. Honestly you've got a really cool little project going. I am just barely getting started looking into old 8 bit processors and hardware. I may pick up a board from you one of these days. This is still a casual side project that I've been playing with on my down time when I'm not physically up for working on a large photoresist board etch. I've been working on the OSHW AVR Transistor Tester project for a little more than a year and have a large (150mm × 150mm) developer board design finalized based on version 2 of the project documentation (ATmega644/1284). I have a TQFP44 version etched, ready to liquid tin, drill, and populate and the DIP40 version is ready to etch as of 2 days ago. That's my big project like your G80 and it is my main conduit for learning, although I haven't done my own website or anything. Heck, I still haven't even migrated off of github yet after 'the acquisition.' I totally understand if you don't have an interest in pursuing schematics and stuff. Don't take it personal or anything. I mean no disrespect or harm. I want to play with this z80 stuff further but will be easing into it slowly. I've also got a book I'm halfway through on the PIC16F171x/XC8, and am working my way through ANSI C as well. Even without a day job I seem to need more hours in my day than 24. As far as the proto board design I was referring too earlier, I'm just working on a way to input a single code into the Z80 data inputs manually on a breadboard. I don't think the Z80 can do the whole single step clock thing like the 68k. I'm actually building something similar to a device I saw in an upload about single stepping the 68k because I have that on another breadboard too. I figured I'd build something and try it out with the Z80 because of the example I saw from Julian Ilett's blinky z80 upload. He just placed a z80 on a breadboard with a 555 for the clock and set up the data lines on the z80 for a NOP code. He put LEDs on the output and the z80 counted on them in binary. That was pretty cool for just a Z80 and 555 and an easy way to verify the Z80s I got for $0.34 each are functional. The things that hold me back from going into the z80 in depth as you've demonstrated are my inability to program a PLD (although your certainly making them available at a very fair price on your website), and my lack of familiarity with all of the peripheral hardware IC's I need or could use. I haven't seen the DART for cheap yet from any of my usual sub-$1 AliEx sellers. I order from Arrow and Mouser too, but not super often. I also don't entirely understand the difference between things like the Z0840006/Z0840008/Z0840020/Z8400A part number variations and how/why that relates to the peripheral chips like the Z0842004/Z0842006/Z0842010 and all the others like SDIO PIO etc. I think some of these are related to bus speeds but I'm not sure. I even had trouble finding what the suffix at the end of the z80 cpu part number means. I've seen "-PEC" "-PSC" and others but have no clue what the significance is and didn't notice an explanation in the z80 pdf manual. Then there is the question of chips from other manufacturers like the 8255. I don't understand the broad scope of options, and that holds me back from deciding what direction to go. I think your using the AVR to bypass some of the old chips like the ROM, but I'm not sure exactly which ones in detail. I usually wind up fiddling around with this kind of stuff for ages before deciding on what direction I want to take. If you want to promote your board and get more people involved, these are the kinds of questions others without prior z80 expertise may be experiencing as well. No one has done an upload with an abstract, top down explanation of Z80 options that explains how most of the options fit together when building a project like this. Putting together summary info like this is certainly not for everyone. It can be a pain. That's what I'm actually doing with the AVR TT dev board. I'm building something that is compatible with all ~50 project options people had posted on 4 different forums in 4 different languages since the project started in 2012. I've been doing this more on than off since around August of '17....crazy...(don't do this!) Lol Anyways....That's just my $0.02 thus far on the whole z80 thing as a total noob blindly pushing through. -Jake
@RetroDepot
@RetroDepot 5 жыл бұрын
@@UpcycleElectronics I don't take offense to it. And I hope you learn a few things in this series. It will be very beneficial to understanding how the z80 works. As for single stepping, the z80 has no minimum clock speed. It can be completely stopped. And there are plenty of circuits for single stepping. It is outside the scope of this series, so I will not go into great detail. As for taking manual control of the bus, that is easy. It's the same principal that we are using here to allow the AVR to take control of the z80's bus. The big difference is you would usually use an octal-buffer to interface to the bus (such as the 74LS245). There are plenty of designs out there. But the number one thing I would do if you're interested in this is to read the datasheet of the z80 to understand it's architecture. If you do that, you'll have a good understanding of how the the CPU works, and what the individual pins do. Once you do that you'll begin to understand how you might need to work your schematic to interface to the CPU. As for part numbers, that might be an OK video. My only concern on doing something like that is that it is information that is already abundantly available in datasheets. But explanation of individual ICs might be an ok video....I'll have to put some thought into it.
@elektron2kim666
@elektron2kim666 2 жыл бұрын
I don't understand this "reinventing the wheel" when you all could make a better one for something like $2.
@sommmathechamp5801
@sommmathechamp5801 5 жыл бұрын
Why 2 rams?
@RetroDepot
@RetroDepot 5 жыл бұрын
Because it is what I had on hand. You could just as easily use a single 64k SRAM or larger.
@martin.pokorny
@martin.pokorny 5 жыл бұрын
haha, good question and good answer
@arf20
@arf20 5 жыл бұрын
a microcontroller? that's not a real z80 computer!! with a hex keyboard with latches and counters you can easily mount a direct ram writer, with the z80 hold in high state for writing
@gorillaau
@gorillaau 3 жыл бұрын
Hex keypad?? That's not a real computer unless you bootstrap by toggling the address and data lines.
How To Design A 8-Bit Z80 Computer Pt 2
50:40
Retro-Depot
Рет қаралды 9 М.
Build an 8-bit retro computer powered by a Z80 ! [Zeal 8-bit]
13:47
Zeal 8-bit Computer
Рет қаралды 92 М.
ПРОВЕРИЛ АРБУЗЫ #shorts
00:34
Паша Осадчий
Рет қаралды 7 МЛН
Gym belt !! 😂😂  @kauermtt
00:10
Tibo InShape
Рет қаралды 17 МЛН
Double Stacked Pizza @Lionfield @ChefRush
00:33
albert_cancook
Рет қаралды 102 МЛН
MISS CIRCLE STUDENTS BULLY ME!
00:12
Andreas Eskander
Рет қаралды 18 МЛН
Understanding the Z80 Memory Map
14:12
Kenneth Finnegan
Рет қаралды 30 М.
DIY 8-Bit Z80 Single Board Computer
13:27
Ivan Farafontov
Рет қаралды 65 М.
Water powered timers hidden in public restrooms
13:12
Steve Mould
Рет қаралды 293 М.
6 Horribly Common PCB Design Mistakes
10:40
Predictable Designs
Рет қаралды 184 М.
Building a Z80-Computer Part 1 : Getting Started
21:41
Captain Solder
Рет қаралды 9 М.
Pony80 - Z80 CPU Architecture - My Z80 homebrew computer!
26:37
A new ZX Spectrum is coming (time to learn Z80 machine code!)
29:47
Z80 Computer - Part 1 The CPU, Clock & Reset
44:25
Steve Rayner Makes
Рет қаралды 30 М.
Rate This Smartphone Cooler Set-up ⭐
0:10
Shakeuptech
Рет қаралды 6 МЛН
НЕ БЕРУ APPLE VISION PRO!
0:37
ТЕСЛЕР
Рет қаралды 373 М.
Todos os modelos de smartphone
0:20
Spider Slack
Рет қаралды 63 МЛН
НОВЫЕ ФЕЙК iPHONE 🤯 #iphone
0:37
ALSER kz
Рет қаралды 334 М.