BB816 Computer YouTube Series
- GARTHWILSON
- Forum Moderator
- Posts: 8773
- Joined: 30 Aug 2002
- Location: Southern California
- Contact:
Re: 65C816 Computer YouTube Series
akohlbecker wrote:
How much should I trust these measurements? Probably not much based on the bandwidth of my oscilloscope and the fact that this is on the breadboard?
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: 9426
- Joined: 28 May 2009
- Location: Midwestern USA (JB Pritzker’s dystopia)
- Contact:
Re: 65C816 Computer YouTube Series
akohlbecker wrote:
...My oscilloscope might not be good enough for this measurement (100MHz bandwidth)...How much should I trust these measurements? Probably not much based on the bandwidth of my oscilloscope and the fact that this is on the breadboard?
You can take my word for it when I say output transition times seen with 74AC logic are well down in the single digit nanosecond range. My 275 MHz scope, when it was healthy, indicated a 74AC04 could switch its outputs from one state to the other at a rate the scope was unable to display—testing being done with a compensated probe and the scope being triggered by the AC04's input signal. 275 MHz is a cycle time of 3.6ns. Given that your scope is 100 MHz, I feel safe in saying you are not seeing what is actually occurring.
The type of series resistor you use on your outputs has an effect over and above its resistance. Some fabrication methods cause the resistor to insert small but potentially troublesome amounts of inductance in series with the load. A 10K resistor might look like 10K at audio frequencies, but might appear to be 10-20 percent higher in the MHz range (incidentally, this is one of the reasons why I keep mentioning that using 10K for pullups is not good). Also, the resistor's leads add inductance, which is one of the reasons chip resistors are used on commercially-produced computer PCB assemblies.
As Garth notes, a breadboard is a dubious environment in which to try to achieve what you want. You can't control the propagation times through the board itself, which will get in the way. As Garth says, you are dealing with quite a bit of inductance with all those wires and such. What is coming out the far end is not what is going in the near end. Adding to the mayhem is the poor power distribution typical of breadboards.
Ultimately, you are going to have to commit to use of a PCB if you want to achieve reliable, high-speed performance.
x86? We ain't got no x86. We don't NEED no stinking x86!
- akohlbecker
- Posts: 282
- Joined: 24 Jul 2021
- Contact:
Re: 65C816 Computer YouTube Series
GARTHWILSON wrote:
akohlbecker wrote:
How much should I trust these measurements? Probably not much based on the bandwidth of my oscilloscope and the fact that this is on the breadboard?
BigDumbDinosaur wrote:
akohlbecker wrote:
...My oscilloscope might not be good enough for this measurement (100MHz bandwidth)...How much should I trust these measurements? Probably not much based on the bandwidth of my oscilloscope and the fact that this is on the breadboard?
You can take my word for it when I say output transition times seen with 74AC logic are well down in the single digit nanosecond range. My 275 MHz scope, when it was healthy, indicated a 74AC04 could switch its outputs from one state to the other at a rate the scope was unable to display—testing being done with a compensated probe and the scope being triggered by the AC04's input signal. 275 MHz is a cycle time of 3.6ns. Given that your scope is 100 MHz, I feel safe in saying you are not seeing what is actually occurring.
The type of series resistor you use on your outputs has an effect over and above its resistance. Some fabrication methods cause the resistor to insert small but potentially troublesome amounts of inductance in series with the load. A 10K resistor might look like 10K at audio frequencies, but might appear to be 10-20 percent higher in the MHz range (incidentally, this is one of the reasons why I keep mentioning that using 10K for pullups is not good). Also, the resistor's leads add inductance, which is one of the reasons chip resistors are used on commercially-produced computer PCB assemblies.
As Garth notes, a breadboard is a dubious environment in which to try to achieve what you want. You can't control the propagation times through the board itself, which will get in the way. As Garth says, you are dealing with quite a bit of inductance with all those wires and such. What is coming out the far end is not what is going in the near end. Adding to the mayhem is the poor power distribution typical of breadboards.
Ultimately, you are going to have to commit to use of a PCB if you want to achieve reliable, high-speed performance.
To be clear, I don't disagree with your statements/experience. I'm trying to find something more scientific I could show the viewers of the series to say ok this is why I'm switching families and why you should too. Unfortunately, literature on this is scarce, and I can't just say because BigDumbDinosaur said so
Re: 65C816 Computer YouTube Series
BigDumbDinosaur wrote:
As Garth notes, a breadboard is a dubious environment in which to try to achieve what you want. [...] Ultimately, you are going to have to commit to use of a PCB if you want to achieve reliable, high-speed performance.
Also, let's not forget wire wrap and point-to-point techniques, both of which can be very effective. For example my KK Computer is wire wrapped, and its clock generation and video sections run reliably at 80 MHz.
Where high-speed performance is concerned, a great deal depends on the builder's attention to detail regarding return paths and supply bypassing, as well as the properties of the chips that are chosen. IMO these factors carry more weight than the wiring method used.
akohlbecker, I see you've posted as I was writing this, but I don't think there's anything I need to add or change.
-- Jeff
In 1988 my 65C02 got six new registers and 44 new full-speed instructions!
https://laughtonelectronics.com/Arcana/ ... mmary.html
https://laughtonelectronics.com/Arcana/ ... mmary.html
Re: 65C816 Computer YouTube Series
I just thought I'd pop in and mention I noticed Episode 12 is out. Still really enjoying them, thanks
And just whilst I'm here a quick question with probably not a quick answer. Pull resistors... What pull resistors are you using on which pins? I seem to need a pull down resistor on both VPA and VDA and a pull up resistor on VPB. I also seem to need a set of pull down resistors on the address pins A0...15 but I'd like to know what values you use. And also if you have any pull resistors on the BA/D pins? Ta muchly!
And just whilst I'm here a quick question with probably not a quick answer. Pull resistors... What pull resistors are you using on which pins? I seem to need a pull down resistor on both VPA and VDA and a pull up resistor on VPB. I also seem to need a set of pull down resistors on the address pins A0...15 but I'd like to know what values you use. And also if you have any pull resistors on the BA/D pins? Ta muchly!
- BigDumbDinosaur
- Posts: 9426
- Joined: 28 May 2009
- Location: Midwestern USA (JB Pritzker’s dystopia)
- Contact:
Re: 65C816 Computer YouTube Series
AndrewP wrote:
I seem to need a pull down resistor on both VPA and VDA and a pull up resistor on VPB. I also seem to need a set of pull down resistors on the address pins A0...15 but I'd like to know what values you use.
You don't need resistors on any of those signals, as they are driven at all times by the 65C816. CMOS inputs almost always require being driven to ground or VCC to avoid bad things that might happen due to noise.
x86? We ain't got no x86. We don't NEED no stinking x86!
- akohlbecker
- Posts: 282
- Joined: 24 Jul 2021
- Contact:
Re: 65C816 Computer YouTube Series
Episode 13 is out!
In this episode, I design the memory map of the CPU, and I simulate a first version of address decoding circuit in Digital. Based on the propagation delays in this circuit, I now have a max frequency! In the next episode, coming end of the week, I'll be adding some ROM.
Right now the address decoding uses an obsolete 74HC4078. I'm working on a design without this chip that will come in a later episode.
As always, let me know if you have any questions
In this episode, I design the memory map of the CPU, and I simulate a first version of address decoding circuit in Digital. Based on the propagation delays in this circuit, I now have a max frequency! In the next episode, coming end of the week, I'll be adding some ROM.
Right now the address decoding uses an obsolete 74HC4078. I'm working on a design without this chip that will come in a later episode.
As always, let me know if you have any questions
- akohlbecker
- Posts: 282
- Joined: 24 Jul 2021
- Contact:
Re: 65C816 Computer YouTube Series
AndrewP wrote:
I just thought I'd pop in and mention I noticed Episode 12 is out. Still really enjoying them, thanks
And just whilst I'm here a quick question with probably not a quick answer. Pull resistors... What pull resistors are you using on which pins? I seem to need a pull down resistor on both VPA and VDA and a pull up resistor on VPB. I also seem to need a set of pull down resistors on the address pins A0...15 but I'd like to know what values you use. And also if you have any pull resistors on the BA/D pins? Ta muchly!
And just whilst I'm here a quick question with probably not a quick answer. Pull resistors... What pull resistors are you using on which pins? I seem to need a pull down resistor on both VPA and VDA and a pull up resistor on VPB. I also seem to need a set of pull down resistors on the address pins A0...15 but I'd like to know what values you use. And also if you have any pull resistors on the BA/D pins? Ta muchly!
I have pull-ups on BE, RDY, IRQB, NMIB, ABORTB. You might not need any of them if you don't plan on using these pins, you can just tie them to VCC. Except for RDY which can be an output, this one you want to pull up with a resistor even if you're not using it. I also have a pull-up on RDY because it can be tri-stated by BE, but you can skip if you don't plan on using BE.
I also have pull-ups on the address pins, only because I plan to use BE to tri-state them. You can most likely leave them out.
Finally, I have pull-downs on the data bus, because it is only driven during half of the clock cycle. You might not need that if you run fast enough due to bus capacitance. If you plan on stopping the clock though, they're useful.
As for values, I personally use 10K for now, but switching to 3.3K has been recommended to me.
Last edited by akohlbecker on Tue Jan 18, 2022 10:09 pm, edited 1 time in total.
- BigDumbDinosaur
- Posts: 9426
- Joined: 28 May 2009
- Location: Midwestern USA (JB Pritzker’s dystopia)
- Contact:
Re: 65C816 Computer YouTube Series
akohlbecker wrote:
In this episode, I design the memory map of the CPU, and I simulate a first version of address decoding circuit in Digital. Based on the propagation delays in this circuit, I now have a max frequency! In the next episode, coming end of the week, I'll be adding some ROM.
Why the big gap in the extended memory map? Glue logic would be less complex (and faster) if extended memory starts right at $010000.
Also, I'd make the I/O window larger. A small I/O window will cost you in cascaded logic and long prop delays.
Quote:
Right now the address decoding uses an obsolete 74HC4078. I'm working on a design without this chip that will come in a later episode.
Take a look at a 74ACT11030, which is much faster. You can use it place of that 74HC30 as well, which is also a slow device. See attached data sheet.
x86? We ain't got no x86. We don't NEED no stinking x86!
- akohlbecker
- Posts: 282
- Joined: 24 Jul 2021
- Contact:
Re: 65C816 Computer YouTube Series
BigDumbDinosaur wrote:
Why the big gap in the extended memory map? Glue logic would be less complex (and faster) if extended memory starts right at $010000.
BigDumbDinosaur wrote:
Also, I'd make the I/O window larger. A small I/O window will cost you in cascaded logic and long prop delays.
BigDumbDinosaur wrote:
Quote:
Right now the address decoding uses an obsolete 74HC4078. I'm working on a design without this chip that will come in a later episode.
- GARTHWILSON
- Forum Moderator
- Posts: 8773
- Joined: 30 Aug 2002
- Location: Southern California
- Contact:
Re: 65C816 Computer YouTube Series
akohlbecker wrote:
Finally, I have pull-downs on the data bus, because it is only driven during half of the clock cycle. You might not need that if you run fast enough due to bus capacitance. If you plan on stopping the clock though, they're useful.
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?
- akohlbecker
- Posts: 282
- Joined: 24 Jul 2021
- Contact:
Re: 65C816 Computer YouTube Series
Good point on making it a weak pull-up, helps power consumption!
Re: 65C816 Computer YouTube Series
akohlbecker wrote:
As for values, I personally use 10K for now, but switching to 3.3K has been recommended to me.
GARTHWILSON wrote:
... even 100K, if everything is CMOS. (If there's non-CMOS though, even 3.3K may not be enough to pull it down. Unconnected TTL input lines pull up
- akohlbecker
- Posts: 282
- Joined: 24 Jul 2021
- Contact:
Re: 65C816 Computer YouTube Series
Episode 14 is out!
In this episode, I connect my EEPROM and program it with a first program (blinking the Emulation LED). I settled on the ACME assembler, for now. It seems like it has most of what I need including support for the CPU. According to the timing diagram of the ROM, my choice of 4MHz was the right one, as the margin is only a few nanoseconds to be in spec.
As always, let me know if you have any questions!
In this episode, I connect my EEPROM and program it with a first program (blinking the Emulation LED). I settled on the ACME assembler, for now. It seems like it has most of what I need including support for the CPU. According to the timing diagram of the ROM, my choice of 4MHz was the right one, as the margin is only a few nanoseconds to be in spec.
As always, let me know if you have any questions!
- akohlbecker
- Posts: 282
- Joined: 24 Jul 2021
- Contact:
Re: 65C816 Computer YouTube Series
Episode 15 is out!
In this episode, I discuss the timing of the SRAM, update the glue logic to generate the write pulse, and install the new 32K RAM. I then write a program to test the memory by writing to and reading from all locations. First time writing a 16 bits program
In this episode, I discuss the timing of the SRAM, update the glue logic to generate the write pulse, and install the new 32K RAM. I then write a program to test the memory by writing to and reading from all locations. First time writing a 16 bits program