Bill
Zero glue logic 6502 SBC?
Re: Zero glue logic 6502 SBC?
plasmo wrote:
On paper W27C512 is 45nS access, so no, not on paper. In practice, it is faster than spec and furthermore its chip select and output enable are grounded, so the access is from valid addresses to valid data out. W65C02 addresses are valid significantly earlier than the rising edge of clock, so I’m able to run successfully. My guess is it can run close to 20mhz.
Bill
Bill
Re: Zero glue logic 6502 SBC?
It should work fine. There may be slight loss in max operating frequency, but simplicity itself can improve speed by reducing load capacitance.
Bill
Edit, in rev0, it only has W65C51 so I like ROM to be paged out to accommodate additional I/O expansion. Rev1’s W65C22 is a more capable I/O device, so having ROM present in top 16K is a reasonable design option.
Bill
Edit, in rev0, it only has W65C51 so I like ROM to be paged out to accommodate additional I/O expansion. Rev1’s W65C22 is a more capable I/O device, so having ROM present in top 16K is a reasonable design option.
Re: Zero glue logic 6502 SBC?
I have built 2nd ZG6502 rev1 board. It performed the same as the first board; run OK at 16mhz, but failed at 18.4Mhz. So the nominal operating frequency of ZG6502 rev1 will now be 14.7mhz. The bitbang serial port is still 115200 bps.
RAM can be as fast as 10nS, I think the speed limiting component is the 45nS W27C512. It maybe interesting to boot from W27C512 at 14.7Mhz, after the program is running in the fast RAM, then increase the clock until failure. One way to change clock while running is using a DS1086 oscillator that can be controlled via I2C. So I’ve added an I2C function such that VIA portB D[5] is I2C SDA; and portB D[6] is I2C SCL. I tested out the I2C function by driving an 128x64 OLED I2C display. It can display an ASCII table successfully, so I think the I2C interface is working correctly. Now I’ll try driving a DS1086 raising its own clock until it crashes…
Bill
RAM can be as fast as 10nS, I think the speed limiting component is the 45nS W27C512. It maybe interesting to boot from W27C512 at 14.7Mhz, after the program is running in the fast RAM, then increase the clock until failure. One way to change clock while running is using a DS1086 oscillator that can be controlled via I2C. So I’ve added an I2C function such that VIA portB D[5] is I2C SDA; and portB D[6] is I2C SCL. I tested out the I2C function by driving an 128x64 OLED I2C display. It can display an ASCII table successfully, so I think the I2C interface is working correctly. Now I’ll try driving a DS1086 raising its own clock until it crashes…
Bill
Re: Zero glue logic 6502 SBC?
I’ve prototyped a DS1086 oscillator in DIP14 package so it can plug into the oscillator socket of ZG6502. The I2C signals are connected to a 4-pin header on the DIP14 prototype so I can drive them with W65C22. Before plugging in the DS1086 prototype into ZG6502 oscillator socket, I first programmed it to run 14.7mhz. Then it is plugged into ZG6502 oscillator socket and verified it will run correctly. Then the I2C signals are patched to W65C22.
I wrote a test software running in RAM that steps DS1086 frequency from 15.3mhz, 16.6Mhz, 17.9mhz, 19.2Mhz, 20.5mhz, 21.7mhz, 23mhz, 24.3mhz, 25.6Mhz, 26.9mhz, 28.1mhz, 29.4Mhz, and 30.7mhz. They all worked! These frequency steps require W65C22 to bit bang I2C signals, so as long as the frequencies are stepping up, W65C22 is working at that particular frequency. This is a pretty good indication that ZG6502 rev1 is good to 30.7mhz as long as the program is running in fast RAM.
To further prove proper operation at 30.7mhz, the test program returns to the monitor which originally communicates at 115200bps with 14.7mhz clock. Now the clock is 30.7mhz, the serial port is within 3% error of 230400bps so it can communicate at 230400bps just fine. I can now load a memory diagnostic and watch the memory test runs twice as fast. Total power consumption is 89mA at 5.1V at 30.7mhz. Power consumption is 59mA at 14.7mhz. Cool!
The take away is W65C22 can pair with W65C02 and overclocked recklessly!
Bill
I wrote a test software running in RAM that steps DS1086 frequency from 15.3mhz, 16.6Mhz, 17.9mhz, 19.2Mhz, 20.5mhz, 21.7mhz, 23mhz, 24.3mhz, 25.6Mhz, 26.9mhz, 28.1mhz, 29.4Mhz, and 30.7mhz. They all worked! These frequency steps require W65C22 to bit bang I2C signals, so as long as the frequencies are stepping up, W65C22 is working at that particular frequency. This is a pretty good indication that ZG6502 rev1 is good to 30.7mhz as long as the program is running in fast RAM.
To further prove proper operation at 30.7mhz, the test program returns to the monitor which originally communicates at 115200bps with 14.7mhz clock. Now the clock is 30.7mhz, the serial port is within 3% error of 230400bps so it can communicate at 230400bps just fine. I can now load a memory diagnostic and watch the memory test runs twice as fast. Total power consumption is 89mA at 5.1V at 30.7mhz. Power consumption is 59mA at 14.7mhz. Cool!
The take away is W65C22 can pair with W65C02 and overclocked recklessly!
Bill
Re: Zero glue logic 6502 SBC?
Amazing, and very impressive!
Re: Zero glue logic 6502 SBC?
plasmo wrote:
The take away is W65C22 can pair with W65C02 and overclocked recklessly!
Bill
Bill
Neil
Re: Zero glue logic 6502 SBC?
I’m not done with overclock testing since it hasn’t failed yet. The RAM I’m using is 25nS part which is really too slow for 30+mhz operation. I need to swap in a 10nS RAM. I’m actually surprised that dynamically changing clock worked, all that worries about fractional clock phase or glitches in clock output do not appear to a problem, then again I need to run the tests repeatedly to be sure. Changing clock is a different way of working with slow peripherals; maybe there are applications for this approach. Alternatively I can use a 22V10 as a fast bootstrap ROM, add a CF interface such that 22V10 ROM loads and runs programs from CF disk.
Bill
Bill
- BigDumbDinosaur
- Posts: 9425
- Joined: 28 May 2009
- Location: Midwestern USA (JB Pritzker’s dystopia)
- Contact:
Re: Zero glue logic 6502 SBC?
plasmo wrote:
The take away is W65C22 can pair with W65C02 and overclocked recklessly!
x86? We ain't got no x86. We don't NEED no stinking x86!
Re: Zero glue logic 6502 SBC?
That was my thought regarding W65C51N6TPG-14; I thought it is .6u thus capable of much higher clock, at least to 14mhz, but I could hardly get it run faster than 7.37mhz. W65C22 turns out to be more like W65C02. It is also a more powerful peripheral, so much the better.
Bill
Bill
- BigDumbDinosaur
- Posts: 9425
- Joined: 28 May 2009
- Location: Midwestern USA (JB Pritzker’s dystopia)
- Contact:
Re: Zero glue logic 6502 SBC?
plasmo wrote:
That was my thought regarding W65C51N6TPG-14; I thought it is .6u thus capable of much higher clock, at least to 14mhz, but I could hardly get it run faster than 7.37mhz.
To which clock are you referring? Ø2 or the 1.8432 MHz bit rate clock?
Quote:
W65C22 turns out to be more like W65C02. It is also a more powerful peripheral, so much the better.
If you need a UART, there are much better choices than the 65C51. That thing is as obsolete as a Conestoga wagon.
x86? We ain't got no x86. We don't NEED no stinking x86!
Re: Zero glue logic 6502 SBC?
plasmo wrote:
I’m not done with overclock testing since it hasn’t failed yet. The RAM I’m using is 25nS part which is really too slow for 30+mhz operation. I need to swap in a 10nS RAM. I’m actually surprised that dynamically changing clock worked, all that worries about fractional clock phase or glitches in clock output do not appear to a problem, then again I need to run the tests repeatedly to be sure. Changing clock is a different way of working with slow peripherals; maybe there are applications for this approach. Alternatively I can use a 22V10 as a fast bootstrap ROM, add a CF interface such that 22V10 ROM loads and runs programs from CF disk.
Bill
Bill
It is interesting to see that the 65C22 does work at those speeds, and I wonder whether there's an existing test suite that can be used to more thoroughly validate all the functionality. I know that with the 65C02 it can sometimes appear to be stable though fail something like the Dormann tests. It would be hard to properly validate that for a 65C22 though because some of the validation would need to be done by external hardware.
It would be good to kick the tyres a bit more though on things like the shift register and externally-triggered interrupts to make sure those things are also OK. Shift register I/O at >30MHz would be great for a lot of things, e.g. faster reads from SD cards if the card can also keep up.
Quote:
That was my thought regarding W65C51N6TPG-14; I thought it is .6u thus capable of much higher clock, at least to 14mhz, but I could hardly get it run faster than 7.37mhz. W65C22 turns out to be more like W65C02. It is also a more powerful peripheral, so much the better.
Last edited by gfoot on Thu Nov 06, 2025 8:59 pm, edited 1 time in total.
- BigDumbDinosaur
- Posts: 9425
- Joined: 28 May 2009
- Location: Midwestern USA (JB Pritzker’s dystopia)
- Contact:
Re: Zero glue logic 6502 SBC?
gfoot wrote:
I wonder whether the 65C02N also works at these clock speeds, perhaps there is a difference in the process for "N" devices that means they don't scale as well.
You mean the 65C22N?
x86? We ain't got no x86. We don't NEED no stinking x86!
Re: Zero glue logic 6502 SBC?
BigDumbDinosaur wrote:
gfoot wrote:
I wonder whether the 65C02N also works at these clock speeds, perhaps there is a difference in the process for "N" devices that means they don't scale as well.
You mean the 65C22N?
Re: Zero glue logic 6502 SBC?
I replaced the 25nS RAM with 10 nS RAM. The max frequency where ZG6502 is able to pass memory diagnostic at 5V and room temperature is around 32.3mhz. Considering this is a 2-layer board with DIP components and no attention to minimizing traces (done with an autorouter), this is roughly the result I’d expect with just W65C02. W65C22 may operate at higher frequency, but W65C02 is likely maxed out. Maybe 2-3 more megahertz is possible with better board layout and optimal component selection, but I’m satisfied that low 30Mhz operation can be achieved with average pair of W65C02 and W65C22 running in fast RAM.
Bill
Bill
Re: Zero glue logic 6502 SBC?
32.3-MHz (TCYC = ~30.96 nS)? That's incredible, Bill. Way to go...