No video

Z80 Computer - Part 11 Operating The Keypad

  Рет қаралды 4,551

Steve Rayner Makes

Steve Rayner Makes

Күн бұрын

In this video, I will show you how I complete the keypad by mounting it on a PCB and fitting it inside a case. To interface the keypad with the trainer board, I will be using another 74HC244 buffer chip. Additionally, I will add a 74HC138 to provide input address decoding, allowing us to distinguish between the onboard tactile switches and the external keypad.
I will walk you through the hardware circuit and the Z80 assembler program that I wrote to make the keypad work. You'll get a detailed understanding of how everything works together to make the project functional.
To conclude, I will demonstrate the keypad in operation, so you can see how all the components work together seamlessly. If you're interested in following along, you can find the schematics on my GitHub page at github.com/sra....

Пікірлер: 32
@synthnerd4539
@synthnerd4539 Жыл бұрын
Me again... just a quick one, AND A doesn't clear the A register, it clears the carry flag - clearing the A register can be done with XOR A. :) Nice work on the keypad, looking forward to the next one!
@SteveRaynerMakes
@SteveRaynerMakes 7 ай бұрын
Thanks. I did wonder why that instruction was there because the A register would already be clear because all the bits have been shifted out of it. I believe this code originated from the Spectrum code which I modified to suit my needs. I need to go back and look at the code, but I'm wondering if the carry flag would also already be clear.
@fredimachadonet
@fredimachadonet 10 ай бұрын
Awesome series Steve! It took some time, but I binged the whole series just now. I'm trying to build a TRS-80 Model 3 clone (my first PC was a Model 3 clone), and your series helped me a lot to understand more about how everything works. Thanks a lot for the content!
@SteveRaynerMakes
@SteveRaynerMakes 7 ай бұрын
Building a TRS-80 clone sounds awesome. I would love to see/hear more about that.
@amcginlay
@amcginlay 9 ай бұрын
It's an amazing series. Well done. Things I've just been aware of my whole life (e.g. the split ROM/RAM configuration) I now feel like I "understand" them now. Looking forward to what comes next.
@no_hyperbole_xone
@no_hyperbole_xone Жыл бұрын
This is amazing, I have all of my parts-- and the Z-80 and prototyping board arrived today... everything you have here, and I am very excited to start this project. Thank always for each video!!!!
@blitmasters
@blitmasters Жыл бұрын
Excellent as always.👌👏 Very interested in the PCB and thank you for the Memory writer which I'm happy to say met with my soldering iron a few days ago. 😀
@SteveRaynerMakes
@SteveRaynerMakes Жыл бұрын
My pleasure. Did you get the EPROM programmer working?
@blitmasters
@blitmasters Жыл бұрын
@@SteveRaynerMakes Mostly there... I just mounted the ZIF socket. Last thing to dig out the memory from the garage. 🙂
@julioGonzalez-gf6ow
@julioGonzalez-gf6ow 11 ай бұрын
Thanks for sharing !
@SteveRaynerMakes
@SteveRaynerMakes 11 ай бұрын
My pleasure!
@jesusmolo
@jesusmolo Жыл бұрын
hello. thank you for sharing your knowledge and experience. i have learned a lot from your videos.
@SteveRaynerMakes
@SteveRaynerMakes Жыл бұрын
you are welcome
@ChandraMCraft
@ChandraMCraft 11 ай бұрын
Nice 👍❤️❤️
@mad_circuits
@mad_circuits Жыл бұрын
I love this series. Keep up the great work! 🎉
@SteveRaynerMakes
@SteveRaynerMakes Жыл бұрын
Thanks
@krzysztofszulim9612
@krzysztofszulim9612 10 ай бұрын
Great video and great knowledge!
@SteveRaynerMakes
@SteveRaynerMakes 7 ай бұрын
thanks
@julianrose3058
@julianrose3058 5 ай бұрын
Hei Steve, I worked my way through your very interesting vid. Thank you. This is the first in your Z80 series I watched. Perhaps because I haven't seen the earlier videos, it took me a time to relate your schematic (first seen around 11:10) with your keypad and its PCB (first seen around 12:30). As I think you point out in the audio someplace, the Row circuit around U22 is from another board, and is only illustrative in this video. I got that clearly once I saw your keypad_map code (around 19:10), but then I'm a programmer... I'm sure your downloadable schematics are sorted, but maybe put a note in this video comments to make the schematic difference more clear? And your software never uses the U21 column-reading circuit which is actually for your hardware 😏 An afternnon well spent getting low level, thx.
@SteveRaynerMakes
@SteveRaynerMakes 5 ай бұрын
Thanks for the feedback. No i think downloadable schematics are most likely out of date. I need to get things organised. I was thinking maybe there should be a downloads page for each episode (where relevant). I'll need to re-watch this video to remind myself what you are referring to. But I'm sure you're right and an explanation note is required.
@SteveRaynerMakes
@SteveRaynerMakes 5 ай бұрын
So, I rewatched this video to remind myself. At this episode there are 2 PCBs in this project. However EasyEDA only allows 1 schematic per PCB. So there is a schematic for the main board that contains all the hardware except the keyswitches, and a separate schematic for the keypad, which just contains the keyswitches. There is a connector between these two PCBs (ribbon cable). On the mainboard you will see connections such as A0, A1 & A2. These translate to R0, R1 & R2 on the keypad board. The U21 buffer is located on the mainboard and is used in conjunction with the software. In the software we set the port number to 1. This relates to the U21 buffer. If we had specified port number 0, it would relate to buffer U22. The U22 buffer is located on the mainboard, and is used in a previous episode. To make this even more confusing, I believe I re-number the U labels in a future episode.
@julianrose3058
@julianrose3058 5 ай бұрын
@@SteveRaynerMakes I see that A8, A9 and A10 relate to R0, R1, R2 through the connector CN1. With the port number set to 1, in the C register initialised in your assembly code line 40, it drives A0 high (A1 and A2 low) at line 45. [Also line 45 the value in B (initialised from keyboard_map in line 43, like $01) drives the selected A8, A9 and A10 to select the Row.] When you set port 1, the U15 74xx138 port Y1 is driven high and port Y0 is driven low. The U21 and U22 74xx244 Enables pins are active low. So Y0 low enables U22, thus you read the Row Data on the Z80 data bus. And Y1 high disables U21, the Column scanner. As Y1 never goes low, U21 is never enabled in this code. This follows in your code, which iterates over the 6-bit Row data, for each Row.
@Philip8888888
@Philip8888888 11 ай бұрын
Hey. It's been a while since you made a video. Hope all is OK with you! :)
@SteveRaynerMakes
@SteveRaynerMakes 11 ай бұрын
All good. Life just gets a bit busy sometimes. Before you know it, several months have gone by. For Part 12 I was experimenting with a different camera and audio setup, but I didn't have much success with it. Ended up losing a lot of the audio, so I can't really use the footage. I also didn't have too much success with my first attempt at VGA graphics, but I'm hoping to put out another video soon that will at least show the little progress that I have made.
@nand3kudasai
@nand3kudasai 8 ай бұрын
question. at 14:00 ish you have sevral resistors for each button or row. when you press more than one button at a time, it looks to me as if you have more than 1 resistors in parallel to ground. iirc resistors in parallel usually add up to less than 1 resistor. does it means it will drive more current? could you just use one resistor to go to ground and share it ? is there a reason you cant share them on pulling up? will it pull all buttons low when you press one ?
@SteveRaynerMakes
@SteveRaynerMakes 8 ай бұрын
It's a valid question, but if you draw it out it becomes obvious. If you only have one resistor and connect all lines to that same resistor then you have tied all the lines together. You switch one and they all switch. You can no longer detect which one was switched. You are correct the more buttons pressed the more current will flow, but the current is so small it's negligible.
@onurolce
@onurolce 3 ай бұрын
I've looked many keypad PCB schematics and nobody used diodes in their design. Just some of them used PU/PD resistors. So can you explain what is the reason you have used diodes ?
@SteveRaynerMakes
@SteveRaynerMakes Ай бұрын
It is to prevent key ghosting. This is when a key appears to be pressed when it is not. It is caused when several keys are pressed at the same time. The diodes prevent the electrical current traveling backwards to another column through a pressed switch.
@onurolce
@onurolce Ай бұрын
@@SteveRaynerMakes thanks for explanation.
@erikbartmann
@erikbartmann Жыл бұрын
Great! Where can I find the complete circuit diagrams? Are they free available?
@SteveRaynerMakes
@SteveRaynerMakes Жыл бұрын
PDF files for the schematics can be found in the github repo. github.com/srayner/z80-trainer
@erikbartmann
@erikbartmann Жыл бұрын
@@SteveRaynerMakes Thanks a lot!
Z80 Computer - Part 12 Thinking about VGA
38:36
Steve Rayner Makes
Рет қаралды 1,3 М.
Z80 Computer - Part 1 The CPU, Clock & Reset
44:25
Steve Rayner Makes
Рет қаралды 31 М.
Joker can't swim!#joker #shorts
00:46
Untitled Joker
Рет қаралды 40 МЛН
Get 10 Mega Boxes OR 60 Starr Drops!!
01:39
Brawl Stars
Рет қаралды 18 МЛН
DIY 8-Bit Z80 Single Board Computer
13:27
Ivan Farafontov
Рет қаралды 65 М.
My modified Ben Eater 6502 Computer PCB!
11:51
The Invent0r
Рет қаралды 39 М.
Zilog Z80 Deep Dive - How does it work?
15:05
NCOT Technology
Рет қаралды 24 М.
Transform an old broken Keyboard to a Macro Keyboard
8:11
NerdCave
Рет қаралды 58 М.
Designing a Card Slot Modular Z80 Computer
14:29
Joshua Coleman Makes
Рет қаралды 43 М.
Home Assistant Control Panel For My Wall
11:19
BorisDigital
Рет қаралды 241 М.
DIY Arduino Mechanical Keyboard - First Prototype
11:57
Dark Art Guitars
Рет қаралды 93 М.
Small Computer Central - Z80 Computer Line Introduction
1:03:07
Lil' Bits
Рет қаралды 10 М.
Joker can't swim!#joker #shorts
00:46
Untitled Joker
Рет қаралды 40 МЛН