I'm not going to try to convince you to do it differently; it's your work, to be presented as you see fit.
W65C02S RDY / BE pins & first build advice
Re: Details on the W65C02S RDY / BE pins needed
GARTHWILSON wrote:
The Primer is logically organized into pages of various topics, each one building upon the previous ones; so I recommend going through them in order. Because of the length, I have spent countless hours trying to make it more concise, finding ways to get all the important stuff through as clearly as I can without any more words than necessary.
I'm not going to try to convince you to do it differently; it's your work, to be presented as you see fit.
- BigDumbDinosaur
- Posts: 9425
- Joined: 28 May 2009
- Location: Midwestern USA (JB Pritzker’s dystopia)
- Contact:
Re: Details on the W65C02S RDY / BE pins needed
Osric wrote:
I'm not going to try to convince you to do it differently; it's your work, to be presented as you see fit.
The primer’s focus is on building a 6502-powered computer, not educating the reader on electronic theory. From my perspective, the primer’s structure is correct for what it is attempting to do.
Sites that focus on general electronic theory, logic families, etc., are a dime a dozen—and vary in quality and thoroughness. Although I hesitate to recommend Wikipedia as a resource, most of the electronics articles therein are reasonably well-written and accurate. I’m sure you’ll find something useful there.
Perhaps you should temporarily halt your computer activities and spend some time studying the basics so you will understand the material present at Garth’s site. The realm of electronics is too vast to be covered by one resource. Even us old guys who have been doing this stuff for decades (I built my first electronic gadget in the 1950s) need to periodically do some reading to clarify things or refresh hazy memories. That I do when I run across something that isn’t making sense to me.
x86? We ain't got no x86. We don't NEED no stinking x86!
Re: Details on the W65C02S RDY / BE pins needed
Another way of looking at it is that there's a lot you don't need to know or understand, so long as you follow usual practice.
An example might be decoupling capacitors: if you just put them in, one per DIP, they will probably save you some struggling. The whole theory of what they are doing for you, why you need that, and how they do it, is not necessary.
On the other hand, if you make up your own theory as to how to do power supply, you're putting yourself onto a detour, a long journey of learning by trial and error.
The main concern I keep coming back to is that a person needs to keep their enthusiasm and interest. Debugging is a necessary part of this hobby, but if you start off with idiosyncratic approaches, there's a risk that you'll build a series of not-working or unreliable machines, and that leads to the risk that you'll give up.
This is one reason why you will see, over and over, the same advice to start simple, to start by building a known-good design, and become your own designer at a slightly later stage.
An example might be decoupling capacitors: if you just put them in, one per DIP, they will probably save you some struggling. The whole theory of what they are doing for you, why you need that, and how they do it, is not necessary.
On the other hand, if you make up your own theory as to how to do power supply, you're putting yourself onto a detour, a long journey of learning by trial and error.
The main concern I keep coming back to is that a person needs to keep their enthusiasm and interest. Debugging is a necessary part of this hobby, but if you start off with idiosyncratic approaches, there's a risk that you'll build a series of not-working or unreliable machines, and that leads to the risk that you'll give up.
This is one reason why you will see, over and over, the same advice to start simple, to start by building a known-good design, and become your own designer at a slightly later stage.
Re: Details on the W65C02S RDY / BE pins needed
BigEd wrote:
The main concern I keep coming back to is that a person needs to keep their enthusiasm and interest. Debugging is a necessary part of this hobby, but if you start off with idiosyncratic approaches, there's a risk that you'll build a series of not-working or unreliable machines, and that leads to the risk that you'll give up.
So I'll try to do a better job of explaining how I prefer to learn things: it's fun to build things in tiny, tiny steps. Each time some baby step doesn't work it may require learning a thing all the way to the bottom, to understand it fully: but not every single thing needs to be learned up front.
Let me try with some examples: I'll start with yours, the need for decoupling capacitors. It's easy enough to discover that using three sizes of decoupling capacitors was standard practice at one time for each DIP and just start throwing on three capacitors at every chip - but this seems like a lot of work to do a thing one doesn't understand. If you build some simple circuits and put an oscilloscope on the pins to see what's going on and measure the difference between having long power leads to the chip vs having a small decoupling capacitor near by, it doesn't take long to measure what a huge difference the decoupling capacitor makes - nor to conclude that a single decoupling capacitor is sufficient. It's much more satisfying to learn it properly.
Still, I was able to build a "working" 6502 computer on breadboards with decoupling capacitors only on the power rails and not one per chip, validating the overall plan of what I'm building without needing to know about or understand about decoupling capacitors before I got started. That, ultimately, is what for me can help sustain my interest and perseverance: the ability to make progress without knowing everything in advance.
When the primer has as a prerequisite knowledge of all the 74-series chips that feels like a steep hill to climb when my actual circuits only need a few logic gates, mainly NAND gates, and perhaps a buffer. Do I really need to know about counters, synchronous counters, BCD decoders, BCD to seven-segment display chips, flip flops, 4 bit adders, shift registers, timers, and 64-bit memories? It seems to me simpler to focus on maybe the basic logic gates and buffers that I might want at first and learn about things like schmitt triggers and shift registers when I need them in my circuit (if ever).
When I say I don't understand AC circuits, it's because I don't understand how electrical force moves through space; I realize that changes in electric potential (voltage) create or collapse magnetic fields, and that moving magnetic fields induce current in neighbouring wires, but not why having a ground plane is sufficient to tame this problem while a twisted pair apparently is not. Learning how this works will wait until I have had a chance to verify that my build does not work at a frequency I care about, which several who know much more than I have assured me is the case; but once faced with a non-working computer at 1Mhz that works perfectly fine at a few khz, I'll have to dig in and understand it.
To attempt to summarize: what will keep me engaged is learning step by step what I need to know to add things to my system. The smaller these steps are the less likely that I will encounter a dead end that can't be understood and debugged. I thought it was pretty good progress to have a debug monitor that will show me the bus activity and disassembly of the running assembly in a week's time, and still feel interested in getting a serial interface going and attaching a keyboard and monitor all of which can be done without scaling the rather steep hill of how electrical force travels through space rather than through wires.
To me, setting aside time to learn everything in advance of building anything doesn't seem at all the right way to stay motivated and get things learned; learning enough to build a 6502 that can run at 20 Mhz seems unnecessary when there is so much fun to be had even at a few kilohertz.
- GARTHWILSON
- Forum Moderator
- Posts: 8773
- Joined: 30 Aug 2002
- Location: Southern California
- Contact:
Re: Details on the W65C02S RDY / BE pins needed
Osric wrote:
When the primer has as a prerequisite knowledge of all the 74-series chips that feels like a steep hill to climb when my actual circuits only need a few logic gates, mainly NAND gates, and perhaps a buffer. Do I really need to know about counters, synchronous counters, BCD decoders, BCD to seven-segment display chips, flip flops, 4 bit adders, shift registers, timers, and 64-bit memories? It seems to me simpler to focus on maybe the basic logic gates and buffers that I might want at first and learn about things like schmitt triggers and shift registers when I need them in my circuit (if ever).
Quote:
Let me try with some examples: I'll start with yours, the need for decoupling capacitors. It's easy enough to discover that using three sizes of decoupling capacitors was standard practice at one time for each DIP and just start throwing on three capacitors at every chip
You might need to slow down a little to catch more of the important details. We wish you success.
http://WilsonMinesCo.com/ lots of 6502 resources
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?
- BigDumbDinosaur
- Posts: 9425
- Joined: 28 May 2009
- Location: Midwestern USA (JB Pritzker’s dystopia)
- Contact:
Re: Details on the W65C02S RDY / BE pins needed
Osric wrote:
BigEd wrote:
The main concern I keep coming back to is that a person needs to keep their enthusiasm and interest. Debugging is a necessary part of this hobby, but if you start off with idiosyncratic approaches, there’s a risk that you’ll build a series of not-working or unreliable machines, and that leads to the risk that you’ll give up.
I’ve been following this topic since your first post and if I may be blunt, I think your approach, so far, is disorganized.
Quote:
It’s easy enough to discover that using three sizes of decoupling capacitors was standard practice at one time for each DIP and just start throwing on three capacitors at every chip...
From which corner of the universe did you get that idea???
Digital electronics constructed from integrated circuits have been around since the 1960s, which coincidentally was when I went through the U.S. Navy electronics curriculum (basically a series of college-level engineering courses). Subsequent to that, I worked on the first-ever computer used in the U.S. Post Office to sort mail. That computer had hundreds of 7400-series ICs that occupied a series of wire-wrapped panels. What it didn’t have was “three [decoupling] capacitors at every chip.”
Quote:
...but this seems like a lot of work to do a thing one doesn’t understand.
While it’s nice to understand the theory behind the use of bypass (decoupling) capacitors, it isn’t a hard-and-fast requirement. What you do need to know is how to correctly use them, which, I should mention, is explained well in Garth’s primer, as well as in many posts around here.
Quote:
If you build some simple circuits and put an oscilloscope on the pins to see what’s going on and measure the difference between having long power leads to the chip vs having a small decoupling capacitor near by, it doesn’t take long to measure what a huge difference the decoupling capacitor makes - nor to conclude that a single decoupling capacitor is sufficient. It’s much more satisfying to learn it properly.
I suppose that is a workable procedure...if you like reinventing the wheel.
We already know about what the lack of a bypass capacitor and long leads can do to compromise device performance (ground bounce, anyone?). Of course, lacking a grounding in theory, there is a possibility of you not correctly understanding what your scope is displaying...or a possibility of you not recognizing that the manner in which you have connected your scope to the circuit undergoing test has altered operating conditions (the classic “I put the scope probe on a chip pin and the computer crashed” scenario), causing the scope to display something that isn’t there.
Quote:
Still, I was able to build a "working" 6502 computer on breadboards with decoupling capacitors only on the power rails and not one per chip, validating the overall plan of what I’m building without needing to know about or understand about decoupling capacitors before I got started.
Uh, you do know there is a difference between “working” and “stable,” right? I’ve seen the difference more times than I can remember.
Quote:
That, ultimately, is what for me can help sustain my interest and perseverance: the ability to make progress without knowing everything in advance.
I will be the first to say that incremental progress can help maintain interest. I will also say that being stubborn about taking the time to at least understand some theory will soon leave you in a blind alley when your latest creation is DOA or grossly unstable. The hardest thing to troubleshoot is a design that has no working examples. I’ve got plenty of experience with that as well, in systems far more complicated than we build around here. In every case, it was an understanding of theory that led to pinpointing the cause of the problem.
Quote:
When the primer has as a prerequisite knowledge of all the 74-series chips that feels like a steep hill to climb when my actual circuits only need a few logic gates, mainly NAND gates, and perhaps a buffer.
What you are saying about the primer requiring that you know about all 74-series devices is untrue. What the primer does say in the “Expectations and nonExpectations” subsection, among other things, is “Intended for newcomers to the 6502...assumes that the reader is acquainted with...common 74-family logic ICs...(mainly the ’00, ’02, ’04, ’74, and maybe ’138 and ’139).” The 74-series encompasses thousands of devices. Off the top of my head, I can describe, at most, 25 or 30 of them. I see six devices mentioned in the primer’s list, from which it is possible to build a functional 6502 contraption (you’ll also need some RAM and ROM...and some I/O would be handy as well—none of that comes from 74-series parts).
Quote:
Do I really need to know about counters, synchronous counters, BCD decoders, BCD to seven-segment display chips, flip flops, 4 bit adders, shift registers, timers, and 64-bit memories?
The answer to that, with the possible exception of flip-flops, is no, and nowhere in the primer does it say you have to use any of those devices. You are manufacturing a controversy by even asking such a question.
Quote:
It seems to me simpler to focus on maybe the basic logic gates and buffers that I might want at first and learn about things like schmitt triggers and shift registers when I need them in my circuit (if ever).
It is simpler, and no one is saying otherwise. Bells and whistles aren’t needed in a basic build, and as Ed noted above, adding them increases the possibility of a DOA unit.
Quote:
When I say I don’t understand AC circuits, it’s because I don’t understand how electrical force moves through space; I realize that changes in electric potential (voltage) create or collapse magnetic fields, and that moving magnetic fields induce current in neighbouring wires, but not why having a ground plane is sufficient to tame this problem while a twisted pair apparently is not.
Not sure how a ground plane got into the discussion, but you should know that none of the home computers of the 1980s had ground planes and just about all of them were built on two-layer boards that were huge compared to what we can build now. In fact, the smaller minis I worked on back then were mostly built on two-layer boards, which would also not have had a ground plane. They all functioned and for the most part, were 100 percent stable.
You only need to understand AC performance as it affects digital circuits. As I said before, digital doesn’t mean crisp 1s and 0s—that’s an ideal, not reality. AC effects are inherent in any DC-powered circuit that rapidly switches states. The speeds at which we operate most of our 6502 gadgets are unlikely to make transmission line effects a concern—unless long, curving wires get into the picture.
Your only AC performance concern would be proper chip bypassing, which has less to do with the circuit being functional and much more to do with the circuit being stable. So, for now, I suggest you merely follow best practices in building your units, even if you don’t understand the theory behind those practices.
Quote:
To me, setting aside time to learn everything in advance of building anything doesn’t seem at all the right way to stay motivated and get things learned; learning enough to build a 6502 that can run at 20 Mhz seems unnecessary when there is so much fun to be had even at a few kilohertz.
Again, no one said you have to take six months off and pore over thick tomes full of electronic theory. What I do recommend is you take a small amount of time as often as possible to read about the fundamentals. In other words, learn from others as you go, rather than perhaps repeating the mistakes others made due to insufficient knowledge. You’ll find the hobby more enjoyable, as well as less expensive, since you won’t be scrapping as much DOA hardware if you fully understand what you are doing.
x86? We ain't got no x86. We don't NEED no stinking x86!
Re: Details on the W65C02S RDY / BE pins needed
Osric wrote:
To attempt to summarize: what will keep me engaged is learning step by step what I need to know to add things to my system. The smaller these steps are the less likely that I will encounter a dead end that can't be understood and debugged. I thought it was pretty good progress to have a debug monitor that will show me the bus activity and disassembly of the running assembly in a week's time, and still feel interested in getting a serial interface going and attaching a keyboard and monitor all of which can be done without scaling the rather steep hill of how electrical force travels through space rather than through wires.
this is good - you know what kinds of things keep you interested. And I agree with the idea that different people approach things in different ways.
Garth's primer is a useful resource and represents a great deal of work. But personally I wouldn't suggest that a person should start by reading it all (still less, studying and retaining it all.) I would note that writing is hard, and teaching is hard, so pretty much every document which aims to help will inevitably be flawed, and yet at the same time still have value.
You will get different kinds of responses and advice here - no-one should take any of it as definitive. It's all input to the learning process, and anyone's comments always reflects their own personal take on what they think is needed at the time.
Please be encouraged!
Re: Details on the W65C02S RDY / BE pins needed
BigDumbDinosaur wrote:
Digital electronics constructed from integrated circuits have been around since the 1960s, which coincidentally was when I went through the U.S. Navy electronics curriculum (basically a series of college-level engineering courses). Subsequent to that, I worked on the first-ever computer used in the U.S. Post Office to sort mail. That computer had hundreds of 7400-series ICs that occupied a series of wire-wrapped panels. What it didn’t have was “three [decoupling] capacitors at every chip.”
Personally, I like his idea of trial and error. I too, am someone who learns very well from re-inventing the wheel (as perceived by some).
BigEd wrote:
Please be encouraged!
Really, that's why we are all here. None of us are going to be the next Bill Gates, by playing with fifty year old based CPU's in reality.
Re: Details on the W65C02S RDY / BE pins needed
GARTHWILSON wrote:
Osric wrote:
... Do I really need to know about counters, synchronous counters, BCD decoders, BCD to seven-segment display chips, flip flops, 4 bit adders, shift registers, timers, and 64-bit memories?
There may also be a mismatch in what we consider to constitute "familiarity". I for one wouldn't consider myself familiar even with these common chips without answering mystery questions like why the pins on the NOR chip are backwards. Surely everyone who has touched this IC has wired it backwards the first time? Why, why, why are the pins backwards? I don't know, it bothers me every time I look at these ICs: but I have not yet needed to know why, and I won't be familiar with these chips until I do. I suppose it is at least a good lesson in always checking the datasheet unless you have the pinout committed to memory.
GARTHWILSON wrote:
Osric wrote:
Let me try with some examples: I'll start with yours, the need for decoupling capacitors. It's easy enough to discover that using three sizes of decoupling capacitors was standard practice at one time for each DIP and just start throwing on three capacitors at every chip
The problem here may be that I said "for each DIP" as that's how it looked to me in his explanation but the underlying point remains that this topic can wait to be understood when it is encountered, rather than considered a prerequisite to start building things.
- BigDumbDinosaur
- Posts: 9425
- Joined: 28 May 2009
- Location: Midwestern USA (JB Pritzker’s dystopia)
- Contact:
Re: Details on the W65C02S RDY / BE pins needed
J64C wrote:
BigDumbDinosaur wrote:
Digital electronics constructed from integrated circuits have been around since the 1960s, which coincidentally was when I went through the U.S. Navy electronics curriculum (basically a series of college-level engineering courses). Subsequent to that, I worked on the first-ever computer used in the U.S. Post Office to sort mail. That computer had hundreds of 7400-series ICs that occupied a series of wire-wrapped panels. What it didn’t have was “three [decoupling] capacitors at every chip.”
True that, but if building with HCMOS devices, you won’t have single-digit glue logic output transitions. Fast edges can be a problem with WDC MPUs, but are tamed if good design and assembly practices are observed.
In any case, even the slower logic families can benefit from proper bypassing.
x86? We ain't got no x86. We don't NEED no stinking x86!
Re: Details on the W65C02S RDY / BE pins needed
BigDumbDinosaur wrote:
Osric wrote:
BigEd wrote:
The main concern I keep coming back to is that a person needs to keep their enthusiasm and interest. Debugging is a necessary part of this hobby, but if you start off with idiosyncratic approaches, there’s a risk that you’ll build a series of not-working or unreliable machines, and that leads to the risk that you’ll give up.
I think this is a very valid concern but I seem to have done a poor job of explaining the approach I’d prefer to follow and why Garth’s primer is not a good match for my approach.
I’ve been following this topic since your first post and if I may be blunt, I think your approach, so far, is disorganized.
1- build a debug monitor board out of an RP2040, using individual GPIOs to monitor Φ2, data bus, address bus, and RWB, with LEDs and pulldowns to show the state of the buses
2- add a static-core 6502 and respond to its reset sequence from the debug monitor to verify that I could single step to the reset vector load and run arbitrary assembled code in the processor
3- add a VIA and use it to control a small 2-line LCD display
4- add EEPROM and RAM to the system (I hesitated to add these together but since their pinouts were identical it didn't seem too big a risk to add two ICs at once)
5- build in-circuit programming of the EEPROM into the debug monitor, with the ability to dump and write sections of the EEPROM without removing it from the system
6- remove the debug monitor's ability to drive the bus in response to the CPU (I don't want the running system to rely on this module in the end)
7- post here about my lack of understanding of the datasheet's requirements for the BE/RDY pins because it wasn't clear to me whether I'd need or want to use RDY to implement the DMA I intend to use for the mono monitor display module
8- internalize and respond to your feedback about building a simpler next step rather than doing the monochrome display next
I hope I'm being open to feedback and would welcome an alternate plan that I could have followed or that I should proceed to follow to be more organized.
BigDumbDinosaur wrote:
Quote:
It’s easy enough to discover that using three sizes of decoupling capacitors was standard practice at one time for each DIP and just start throwing on three capacitors at every chip...
From which corner of the universe did you get that idea???...While it’s nice to understand the theory behind the use of bypass (decoupling) capacitors, it isn’t a hard-and-fast requirement. What you do need to know is how to correctly use them, which, I should mention, is explained well in Garth’s primer, as well as in many posts around here.
Quote:
If you build some simple circuits and put an oscilloscope on the pins to see what’s going on and measure the difference between having long power leads to the chip vs having a small decoupling capacitor near by, it doesn’t take long to measure what a huge difference the decoupling capacitor makes - nor to conclude that a single decoupling capacitor is sufficient. It’s much more satisfying to learn it properly.
I suppose that is a workable procedure...if you like reinventing the wheel.
We already know about what the lack of a bypass capacitor and long leads can do to compromise device performance (ground bounce, anyone?). Of course, lacking a grounding in theory, there is a possibility of you not correctly understanding what your scope is displaying...or a possibility of you not recognizing that the manner in which you have connected your scope to the circuit undergoing test has altered operating conditions (the classic “I put the scope probe on a chip pin and the computer crashed” scenario), causing the scope to display something that isn’t there.
BigDumbDinosaur wrote:
Quote:
Still, I was able to build a "working" 6502 computer on breadboards with decoupling capacitors only on the power rails and not one per chip, validating the overall plan of what I’m building without needing to know about or understand about decoupling capacitors before I got started.
Uh, you do know there is a difference between “working” and “stable,” right? I’ve seen the difference more times than I can remember.
Quote:
That, ultimately, is what for me can help sustain my interest and perseverance: the ability to make progress without knowing everything in advance.
I will be the first to say that incremental progress can help maintain interest. I will also say that being stubborn about taking the time to at least understand some theory will soon leave you in a blind alley when your latest creation is DOA or grossly unstable. The hardest thing to troubleshoot is a design that has no working examples. I’ve got plenty of experience with that as well, in systems far more complicated than we build around here. In every case, it was an understanding of theory that led to pinpointing the cause of the problem.
There is not, to me, a big difference between "working" and "stable"; the quotes around working are meant to denote the fact that it's not really tested/validated to be working, let alone stable for long term operation. I interpret the quotes around "stable" to mean "stable under only particular conditions"; so if you told me you had a "stable" circuit I would assume it might not work at 50C while it works perfectly well between 15C and 30C. If you said you had a working circuit (with no quotes) I would assume it was also stable within the parameters of its components but not take for granted that this was validated; while if you claimed to have a stable circuit (with no quotes) I would assume you're asserting that you've tested the circuit for long term performance at the edges of your specifications (and be surprised by that, as that's expensive and hard to do; but that's what it takes to say a thing is stable).
BigDumbDinosaur wrote:
Quote:
Do I really need to know about counters, synchronous counters, BCD decoders, BCD to seven-segment display chips, flip flops, 4 bit adders, shift registers, timers, and 64-bit memories?
The answer to that, with the possible exception of flip-flops, is no, and nowhere in the primer does it say you have to use any of those devices. You are manufacturing a controversy by even asking such a question.
BigDumbDinosaur wrote:
Not sure how a ground plane got into the discussion, but you should know that none of the home computers of the 1980s had ground planes and just about all of them were built on two-layer boards that were huge compared to what we can build now. In fact, the smaller minis I worked on back then were mostly built on two-layer boards, which would also not have had a ground plane. They all functioned and for the most part, were 100 percent stable.
When I read a sentence like that, I immediately wonder why twisted pair connections can't serve the same purpose as a ground plane for using solderless breadboards to prototype 6502 systems. It shines a light on my lack of knowledge of how this works.
Re: Details on the W65C02S RDY / BE pins needed
BigEd wrote:
Garth's primer is a useful resource and represents a great deal of work. ... Please be encouraged!
Thanks for the encouragement!
Re: Details on the W65C02S RDY / BE pins needed
J64C wrote:
Personally, I like his idea of trial and error. ... Learning, making, and correcting mistakes is what it's all about.
Really, that's why we are all here. None of us are going to be the next Bill Gates, by playing with fifty year old based CPU's in reality.
Really, that's why we are all here. None of us are going to be the next Bill Gates, by playing with fifty year old based CPU's in reality.
For me, this is a retirement project ... back when I went to university I didn't know if I wanted to do computer science or computer engineering. I am very glad I chose computer science, but now that I have the time to go back and play with hardware it's very fun to do so. It's also incredible to me how things which seemed so enormously complicated as a teenager seem so simple now - assembly language, for example - and of course it's fun to play with trivial programs on the bare metal rather than a huge stack of abstractions.
- BigDumbDinosaur
- Posts: 9425
- Joined: 28 May 2009
- Location: Midwestern USA (JB Pritzker’s dystopia)
- Contact:
Re: Details on the W65C02S RDY / BE pins needed
Osric wrote:
BigDumbDinosaur wrote:
Not sure how a ground plane got into the discussion, but you should know that none of the home computers of the 1980s had ground planes and just about all of them were built on two-layer boards that were huge compared to what we can build now. In fact, the smaller minis I worked on back then were mostly built on two-layer boards, which would also not have had a ground plane. They all functioned and for the most part, were 100 percent stable.
When I read a sentence like that, I immediately wonder why twisted pair connections can’t serve the same purpose as a ground plane for using solderless breadboards to prototype 6502 systems. It shines a light on my lack of knowledge of how this works.
Here is where not knowing the theory can lead you astray.
Twisted pairs are used in a circuit that is balanced with respect to ground, i.e., a circuit that is differential, not single-ended. In a differential circuit, there is no direct reference to ground. Instead, each wire’s reference is to its mate. Wires are twisted together in a uniform fashion so that external effects from noise sources affect both wires in the same way. Since the circuit’s operation depends on the difference in voltage between the two wires, not between a wire and ground, noise cancels from the perspective of what is connected to the pair.
The classic example of a differential circuit is the subscriber loop that connects a telephone to a central office. A more recent example is an Ethernet hookup using unshielded, twisted-pair (UTP) cable, such cable being essentially telephone cable, but with more closely-controlled characteristics.
Computer circuits of the type we build in our hobby systems are unbalanced with respect to ground, an arrangement that is called “single-ended.” That is, each wire (if using a breadboard or a wire-wrapped assembly) is referenced to ground, not other wires. Using a twisted pair in a single-ended circuit offers none of the advantages of differential signaling, but may insert unwanted parasitic capacitance that can result in an unstable or DOA system.
I’m not going to go into ground plane theory here—it’s not particularly simple to explain and 6502.org isn’t Wikipedia. Also, plenty has been written about the subject by people much more knowledgeable than me, e.g., Dr. Howard Johnson. I will merely say at the speeds many of us run our 6502 gadgets, lack of a ground plane is not usually a liability. Breadboards, however, may inadvertently suffer from transmission line effects due to the long, curving wires often used. Not understanding this phenomenon has caused more than a little grief to those who build on a breadboard.
As noted, not knowing the theory may lead to frustration when something doesn’t work and you don’t know enough to figure it out. In most activities, learning by doing is often more than acceptable. In electronics, especially high-speed digital electronics, learning by doing will not give you the theoretical grounding that is needed to understand things like the effects of twisted pairs or why a ground plane is a desirable feature in a computer.
x86? We ain't got no x86. We don't NEED no stinking x86!
Re: Details on the W65C02S RDY / BE pins needed
BigDumbDinosaur wrote:
As noted, not knowing the theory may lead to frustration when something doesn’t work and you don’t know enough to figure it out. In most activities, learning by doing is often more than acceptable. In electronics, especially high-speed digital electronics, learning by doing will not give you the theoretical grounding that is needed to understand things like the effects of twisted pairs or why a ground plane is a desirable feature in a computer.
Therefore, based on everyone's feedback, I am expecting that when I test this setup at 1Mhz it will fail. I haven't yet had the time to do it but it seems like a simple test where I fill the RAM with a pattern and then check for its existence then fill with a different pattern ad infinitum will likely show a problem if I run the computer at a high enough clock.
Once I do that and it fails, I'm left with the task of understanding why it fails. It seems that the reason why it fails (?) may be that the sharp rising edges on the long wires of the address and/or data bus may induce currents in the neighbouring wires and cause issues. Assuming that I want to make the breadboard build I have work at these speeds, I'll have to come up with some solution.
You've already told me that softening the edges isn't going to work but in fact will make the problem worse; I don't know why that is, but will have to learn.
Meanwhile, the twisted pair alternative presumably also won't work but the idea is not to twist each signal wire with an adjacent one, but to pair each address and data line with a ground line going to the same destination. If all the signals and grounds are connected chip-to-chip in adjacent runs, I had thought that this would solve the problem. This too apparently will not work - I would have said it "resembles a ground plane" - and again is something I'll need to understand _why_ it won't work.