My Mainboard Design

For discussing the 65xx hardware itself or electronics projects.
User avatar
BigDumbDinosaur
Posts: 9428
Joined: 28 May 2009
Location: Midwestern USA (JB Pritzker’s dystopia)
Contact:

Post by BigDumbDinosaur »

fachat wrote:
I did that and it bit me with a Flash-ROM chip (for programming write accesses), where I didn't qualify /SEL, but did qualify R/-W. Looking into the datasheet revealed that the chip obviously gated R/-W when /SEL became active (low).

André
I could see where R/W might be gated when /SEL is asserted, but if the write phase of R/W is qualified to Ø2 high, how could the flash memory go off the rails by being selected while Ø2 is still low? It doesn't make any sense (to me, atleast).
x86?  We ain't got no x86.  We don't NEED no stinking x86!
User avatar
BigEd
Posts: 11464
Joined: 11 Dec 2008
Location: England
Contact:

Post by BigEd »

BigDumbDinosaur wrote:
The only thing that I qualify with Ø2 in my POC unit is RWB (MPU output). If RWB is high it is used without qualification. If RWB is low, Ø2 must be high before the affected hardware "sees" that a write is in progress. This arrangement reliably functions at 15 MHz on my POC unit.

The theory behind this ...
[...snip...]
Note that 65xx family peripheral silicon like the 65C21, 65C22 and 65C51 are exceptions...
[...snip...]
As I earlier said, qualifying chip selects with Ø2 needlessly limits the maximum usable bus speed.
[...snip...]
Hi BDD
many thanks for putting in the effort to explain your thinking - much appreciated!

Cheers
Ed
fachat
Posts: 1124
Joined: 05 Jul 2005
Location: near Heidelberg, Germany
Contact:

Post by fachat »

BigDumbDinosaur wrote:
fachat wrote:
I did that and it bit me with a Flash-ROM chip (for programming write accesses), where I didn't qualify /SEL, but did qualify R/-W. Looking into the datasheet revealed that the chip obviously gated R/-W when /SEL became active (low).

André
I could see where R/W might be gated when /SEL is asserted, but if the write phase of R/W is qualified to Ø2 high, how could the flash memory go off the rails by being selected while Ø2 is still low? It doesn't make any sense (to me, atleast).
Sorry, I forgot to mention - the chip couldn't be written to :-)

It gated R/-W when /SEL became active, and as /SEL was not qualified with phi2, but R/-W was, it always gated R/-W high, i.e. a read access.

André
Karatorian
Posts: 17
Joined: 13 Mar 2011
Location: Rindge NH USA
Contact:

Post by Karatorian »

GARTHWILSON wrote:
OE\ or W\ need to be low when Φ2 is high, not low.
Somehow I managed to get the phase of Φ2 backwards. Thanks for pointing that out. I'll have to go through the rest of the circuit and see if I've made the same mistake elsewhere.
Quote:
Yes, I forgot some call Φ0 "Φ2 in". On the DIP, it's pin 37.
Yep, that's the one.
Quote:
On the Φ2 qualification, try to do it later in the glue logic, so there aren't so many gate delays between Φ2 and the device you're enabling. Also, instead of bring Φ2 into everything, bring it in only for things that need it.
I've warmed up to this way of doing it. As I mentioned before, late qualification allows for more flexibility in selection of IO devices. The initial attraction of early qualification had to do with the FRAM stuff, but I'm thinking I need to redesign all of that anyway.
Quote:
3 to 5mA would be plenty visible, and if the IC could pull it up to 4V at 5mA, then (4-1.7)V/5mA=460 ohms, and 470 is a standard value so that would work fine-- if the RST IC can pull up that much current ok.
I'll have to look into the driving power in the datasheet. Thanks.
Quote:
Your ideas will keep evolving, even improving, even after you've started building, meaning you will tend to always be dissatisfied with last week's ideas that you're busy building today. They also tend to become so complex that you'll never live long enough to finish it and get anything at all going.
I'm fully aware of how that goes. I've got so many ideas bouncing around already that it's a little crazy. The other night I started a list of "IO ideas" and just kept coming up with more and more.
Quote:
Been there, done that. What I've found works better, for more reasons than the newcomer would dream of, is to do a basic design that can be expanded later, but to plan on many of the features you add later to be interfaced through the I/O ICs like the 6522 instead of directly on the bus.
Despite my focus on the CPU bus at this stage, I don't actually intend to hang most of my IO directly on the bus. However, one needs a way to put the IO ICs on the bus in the first place. Therefore, you have two choices, either you have to put them on the mainboard, or you have to export the main bus. At this point the latter seems more attractive, primarily due to it's flexibility.
Quote:
Also, plan to take advantage of the synchronous-serial ICs. There are thousands of them on the market, in SPI, I²C, Microwire, other 2- and 3-wire interfaces, even dumb shift registers like the 74xx165 and '595.
Oh, I am. It seems like all the interesting new chips are serial these days. Besides onboard stuff, it seems all the external interfaces (USB, SATA, PCIe), are moving to serial as well. Even CPU interconnects have gone serial in some architectures. It seems memory and UARTs are the only parallel devices left.
Quote:
The 74xx164 and '595 can be connected directly to the 6522's synchronous-serial port. But even without those, you can bit-bang these interfaces very easily-- far faster and more easily than trying to bit-bang an RS-232 port.
Well, personally, I've got no interest in RS-232. (The computer I use on a regular basis doesn't have an RS-232 port.) However, I get your point about ease of interfacing.
Quote:
You can even get a floating-point coprocessor with a serial interface for Pete's sake.
I know, I've though about adding one at some point. However, I'm not quite sure what I'd do with floating point. I'd probably be more interested in one with integer multiply and divide.
Quote:
Look into our 65SIB also, a very flexible, multi-purpose, multi-protocol, serial interface bus.
I've seen the 65SIB specs and I'm pretty impressed. I'm planning on putting 65SIB on an IO board.
@loop: lda (src),y — sta (dst),y — iny — bne @loop — inc src+1 — inc dst+1 — dex — bne @loop
User avatar
GARTHWILSON
Forum Moderator
Posts: 8775
Joined: 30 Aug 2002
Location: Southern California
Contact:

Post by GARTHWILSON »

Quote:
Despite my focus on the CPU bus at this stage, I don't actually intend to hang most of my IO directly on the bus. However, one needs a way to put the IO ICs on the bus in the first place. Therefore, you have two choices, either you have to put them on the mainboard, or you have to export the main bus. At this point the latter seems more attractive, primarily due to its flexibility.
I haven't done things like SATA, but my workbench computer exists for workbench I/O, not human I/O, and everything goes through three 65c22 VIAs and it also has three 65c51 ACIAs which get very little use. These are all on the main board. The keypad, LCD, RTC, beeper, printer interface, Abort key (less drastic than RST), oscilloscope raster-graphics interface, and I²C port all go through the first VIA. The A/D and D/A converters with audio ports and sockets for amplifier and anti-alias filter modules, 65SIB port, PC keyboard port, frequency/event counter + external-instrument control, Dalas 1-Wire interface, SS22 port, serial port to large external RAM & ROM, MIDI, 440MHz wireless link, tape modem (whose use has been replaced with modern serial EEPROMs), and RS-232 all go through the other two VIAs and the three ACIAs that are on the main board measuring 4.5x6.5", and there are plenty of bits left over for general use in projects. It does have a board-edge connector plus a mezzanine board, but the processor's own busses don't go to these. If I want to add USB or so many other things, they are available in SPI or other interfaces that can go through ports I already have. Using 4MHz parts, it runs ok to just over 7MHz, so I back it off to 5MHz for some margin. The Φ2 signal is pretty ugly on the oscilloscope, so that is undoubtedly one of the limiting factors. I wish I had built it up on a perfboard with at least one plane to use as a ground plane. Without that, running the buses off the board would further reduce the maximum frequency. Having planes on both sides, to use the top plane for +5V, would have been even better.

Edit: I have a series of articles on building your own 6502 computer now at http://wilsonminesco.com/6502primer/index.html.
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?
Post Reply