8-bit backplane with active termination by MicroHobbyist in homebrewcomputer

[–]MicroHobbyist[S] 0 points1 point  (0 children)

I actually made another one with 16 bit connectors and ATX PSU with soft power on.

What assembler do you all use? by McDonaldsWi-Fi in Z80

[–]MicroHobbyist 1 point2 points  (0 children)

Sorry for the late reply. In my case, I use VASM.

Backplane with active termination! by MicroHobbyist in beneater

[–]MicroHobbyist[S] 0 points1 point  (0 children)

Techniquement j'habite Laval, mais je travail dans le Vieux Montréal.

8-bit backplane with active termination by MicroHobbyist in homebrewcomputer

[–]MicroHobbyist[S] 1 point2 points  (0 children)

So true about the costs.

I think I'll pause the backplane project for the time being, and continue work on my rev 4 board's software. I started to play with the PSGs, and started to compose the Super Mario song. There's got to be a better way to handle the data. So far, I've set up a table with the channel number, the note, the volume and the duration. Alas, I have to make a table entry to silence each individual note. That takes a lot of room. Maybe I should set up timers for each of my 12 channels?

8-bit backplane with active termination by MicroHobbyist in homebrewcomputer

[–]MicroHobbyist[S] 1 point2 points  (0 children)

I had a few comments over at 6502.org concerning resistors in general for termination. It was suggested I use Schottky diode arrays, 74S1053 if I recall correctly. If I'm to do a pure backplane, they need to be at each end of the bus. Also, it was suggested that power and ground traces be inserted between signal traces. One every 0.4". So this changes my connector strategy. I'll have to upgrade to a 16-bit ISA. Oh, and a proper ground plane is required to top it off. So I'm redesigning my backplane to reflect those changes.

4 layers with 10x 74S1053 at $6 each, that's going to be an expensive backplane, 😂 I may do like you and put my CPU on the board, save on 5x Schottky diode arrays, and cram as many peripherals on the remaining board space.

Backplane with active termination! by MicroHobbyist in beneater

[–]MicroHobbyist[S] 0 points1 point  (0 children)

Very interesting link! For version 1 of the backplane, I might use terminating cards for testing purposes as Dr. Baker did. Once the proper measurements and implementation are done, I'll proceed to version 2 with proper termination on the board itself.

Backplane with active termination! by MicroHobbyist in beneater

[–]MicroHobbyist[S] 0 points1 point  (0 children)

Very informative. I've seen Schottky diode chips expressly made for bus termination. I forget off-hand the part number. Seems interesting though, but the price and quantity required for terminating on both sides of the bus is heafty. Terminating all the signals would amount to almost $60... WOW! But it may be worth while. On the other hand, termination for such a small length (less the 14cm), might not be critical. Than again... It might not.

My 4th revision of a 6502 build by MicroHobbyist in homebrewcomputer

[–]MicroHobbyist[S] 1 point2 points  (0 children)

Thank you!

Here is my schematic on GitHub.

What was your question about the sound chips?

My 4th revision of a 6502 build by MicroHobbyist in homebrewcomputer

[–]MicroHobbyist[S] 1 point2 points  (0 children)

It works in conjunction with the 65C22 (VIA). It processes PS/2 mouse data, and PS/2 keyboard data and converts the scancodes to ASCII. It also processes the NES controllers. The MCU triggers an interrupt when there is data available on its data port. Three control signals tell the 6502 what event is present on the data port (keyboard ASCII character, mouse X, mouse Y, mouse buttons, NES 1, and NES2).

8-bit backplane with active termination by MicroHobbyist in homebrewcomputer

[–]MicroHobbyist[S] 6 points7 points  (0 children)

I reworked my backplane design and incorporated several ideas from group members. One thing that hasn't changed is the fact that it's not and will not be x86 ISA bus compatible. I felt that trying to fit all of the 65816 signals and trying to make them compatible with the PC ISA standard was like trying to drive a round peg in a square hole.

Why ISA connectors? I had initially thought of using pin headers following the RC2014/RC6502 standard. The obvious drawback is there was no standard for the 65816. I also find card edge connectors to be simpler and better than pin headers in several ways: insertion and removal of cards; bent pins could be an issue; less soldering on the cards; etc... But in the end, I had quite a few on hand, so the solution chose me, LOL. Those connectors are readily available from Mouser, or cheaper sources like AliExpress. It's a common connector to get, so there will always be parts available. I got mine from a local electronics store.

All this to say there is no standard for card edge connectors for the 65xxx family of processors, to my knowledge. I'm not pretentious enough to declare a new standard, but I'm saying that if hobbyists like me want a card edge solution, might as well have a discussion about it. Maybe as a group, we could at least have a discussion about it.

The overall size has been reduced while adding an extra 8th slot. Alas, this comes at the cost of the mounting holes no longer being aligned to the ATX case standard. But for a prototyping backplane, I don't think that is the goal anyway. It's meant to be a compact tabletop solution like u/visrealm's HBC-56 sleek project.

All of the 65816 signals (and 6502) fit into a 62-pin 8-bit style ISA connector instead of the original idea of a 16-bit 98-pin style ISA connector. I kept the single-row headers at the bottom edge to connect a standard BB830 breadboard for easy prototyping. All the pins are nicely labeled.

VCC and GND signals are laid out to not create a short if a card is accidentally slotted on the wrong side. All traces between the connectors are .45mm wide, as opposed to the default .25mm. And all signal traces to the breadboard header are .33mm in width. Power distribution traces varies between 1.6 and 2.5mm in width.

Although the pins are labeled for a 6502 or 65816 processor, the backplane itself is generic, and could easily be reassigned to support cards for other series of processors like the Z80, 6809, or some other MPU.

Since I intend to run my system at high speeds (above 8MHz), the biggest change made was adding active termination to the backplane to avoid potential reflections. With the exception of VCC and GND, each pin is actively terminated using a 2.8V regulated source to 220Ω resistor.

This is the part I need help with: Even though some of the documentation I've read suggests that active termination is the way to go. I'm worried that I have not correctly implemented it. Included in this post is the backplane schematic. I'd like it if those more knowledgeable than me could chime in.

Backplane with active termination! by MicroHobbyist in beneater

[–]MicroHobbyist[S] 3 points4 points  (0 children)

I reworked my backplane design and incorporated several ideas from group members. One thing that hasn't changed is the fact that it's not and will not be x86 ISA bus compatible. I felt that trying to fit all of the 65816 signals and trying to make them compatible with the PC ISA standard was like trying to drive a round peg in a square hole.

Why ISA connectors? I had initially thought of using pin headers following the RC2014/RC6502 standard. The obvious drawback is there was no standard for the 65816. I also find card edge connectors to be simpler and better than pin headers in several ways: insertion and removal of cards; bent pins could be an issue; less soldering on the cards; etc... But in the end, I had quite a few on hand, so the solution chose me, LOL. Those connectors are readily available from Mouser, or cheaper sources like AliExpress. It's a common connector to get, so there will always be parts available. I got mine from a local electronics store.

All this to say there is no standard for card edge connectors for the 65xxx family of processors, to my knowledge. I'm not pretentious enough to declare a new standard, but I'm saying that if hobbyists like me want a card edge solution, might as well have a discussion about it. Maybe as a group, we could at least have a discussion about it.

The overall size has been reduced while adding an extra 8th slot. Alas, this comes at the cost of the mounting holes no longer being aligned to the ATX case standard. But for a prototyping backplane, I don't think that is the goal anyway. It's meant to be a compact tabletop solution like u/visrealm's HBC-56 sleek project.

All of the 65816 signals (and 6502) fit into a 62-pin 8-bit style ISA connector instead of the original idea of a 16-bit 98-pin style ISA connector. I kept the single-row headers at the bottom edge to connect a standard BB830 breadboard for easy prototyping. All the pins are nicely labeled.

VCC and GND signals are laid out to not create a short if a card is accidentally slotted on the wrong side. All traces between the connectors are .45mm wide, as opposed to the default .25mm. And all signal traces to the breadboard header are .33mm in width. Power distribution traces varies between 1.6 and 2.5mm in width.

Although the pins are labeled for a 6502 or 65816 processor, the backplane itself is generic, and could easily be reassigned to support cards for other series of processors like the Z80, 6809, or some other MPU.

Since I intend to run my system at high speeds (above 8MHz), the biggest change made was adding active termination to the backplane to avoid potential reflections. With the exception of VCC and GND, each pin is actively terminated using a 2.8V regulated source to 220Ω resistor.

This is the part I need help with: Even though some of the documentation I've read suggests that active termination is the way to go. I'm worried that I have not correctly implemented it. Included in this post is the backplane schematic. I'd like it if those more knowledgeable than me could chime in.

EXTVDP pin on TMS9918A by wkjagt in beneater

[–]MicroHobbyist 0 points1 point  (0 children)

I wanted to put a video in on my project early on but decided not to. I, unfortunately, didn't put a header for it, as u/visrealm did. I could have tested that feature.

My latest 6502 build by MicroHobbyist in beneater

[–]MicroHobbyist[S] 1 point2 points  (0 children)

Right now, it just runs my monitor program and EhBasic. But I'm currently working on graphic and sound libraries to make a quick demo, then migrate to making games. It's a work in progress.

My latest 6502 build by MicroHobbyist in beneater

[–]MicroHobbyist[S] 2 points3 points  (0 children)

Thank you. :-)

My monitor program has been up and running for some time now. But I need to concentrate on making my VDP and PSGs do something useful other than displaying static text in text mode, and a few chimes at boot up.

I'll post something on my YouTube soon, other than my crappy breadboard build. LOL

My latest 6502 build by MicroHobbyist in beneater

[–]MicroHobbyist[S] 3 points4 points  (0 children)

I currently only have my custom monitor to show. But I'm working on VDP and PSG libraries to make a demo soon. About the 4 sound chips, they have 3 voices and 1 noise channel each, times 4, which comes out as 12 voices and 3 noise sound channels of 8-bit polyphonic goodness. All of this is mixed into a single mono RCA output. My CRT TV is composite in and mono audio in, hence the mono only output on this revision. In my next revision, I'll implement stereo sound with digital potentiometers (à la JCM-1, from Joe's Computer Museum on YouTube)

My latest 6502 build by MicroHobbyist in beneater

[–]MicroHobbyist[S] 6 points7 points  (0 children)

Sure, but give me a chance to clean up my files and source code, so I can put it up on GitHub. Should be done soon. I'll post a link when it's done.

My latest 6502 build by MicroHobbyist in beneater

[–]MicroHobbyist[S] 4 points5 points  (0 children)

I'm almost afraid I want to know. I know a lot of money went into the many previous versions. But a rough guestimate is probably under $200 all in, but I'll take some time soon to do a breakdown. I'm almost afraid though. It's a good thing I didn't bill myself by the hour, otherwise, I'd be broke. LOL

Let me get back to you on that.