6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Fri May 10, 2024 9:29 pm

All times are UTC




Post new topic Reply to topic  [ 22 posts ]  Go to page 1, 2  Next
Author Message
PostPosted: Mon Dec 12, 2022 7:48 pm 
Offline

Joined: Mon Oct 03, 2022 9:44 pm
Posts: 26
warning: LOTS OF TEXT AND IMAGES AHEAD!

This is my prototype 6502 8-Bit Computer. The first of many to come! My project is called the 8x2 Captain, a 8-Bit Computer with 2, 8-bit CPUs for more efficient and stable performance. However, I have a long way to go before I can even create a concept schematic for such a device! The Prototype I've designed is called the 8x1 Trooper because it only has 1 CPU.

Before I go on and describe this Prototype Motherboard and it's features, I want to talk about my inspirations for starting this project. After watching YouTubers like 8-Bit Guy, Adrian's Digital Basement and Ben Eater. I had this feeling that I was missing out on amazing Retro Technology! like I have nostalgia for something I've never experienced before. And it's that feeling that drove me to do some amounts of research on the 6502 CPU and some of the hardware on 8-Bit computers and general!

The schematic I've created is based on Several sources, all of which I'll link below:

The specs and hardware features of the 8x1 Trooper goes as follows:
    SPECS:
    CPU: W65c02S
    VIA: W65C22S
    EPROM: Windbond W27c512 64K x 8
    SRAM (x2): 62256LP-70 32K x 8

    VDP: TMS9918A
    VRAM (DRAM) (x8): Mostek MK4116N-2 16,384 x 1-Bit (16K x 1)

    Serial UART: MAX3100
    Serial Driver and Receiver: MAX3223

    HARDWARE FEATURES:
    Address Decoder that allows the use for 64K of memory
    Components: 74HC688 + 74HC00

    VDP Select Logic
    Components: 74HC238 + 74HC00

    Video read/ Write Timing and Logic
    Components: 74LS74 + 74HC165 + 74HC00

    Overall System Specs:
    CPU: W65c02S
    ROM: 64K
    RAM: 64K
    VDP: TMS9918A
    VRAM: 16K

    Power Supply
    ABLEGRID 12 Volt Power Supply - 2.5 Amp Standard (12V 2.5A DC)

That's the list with all of the ICs on the board, I'll leave an image of the schematics below!

I made the schematics and PCB designs in EasyEDA. Here are the PCB trace widths below:

    +12v: 1.060 mm (Current: 2.5A)
    +5v: 0.781 mm (Current: 2A)
    -5v: 0.781mm (Current: 2A)
    everything else: 0.300 mm (Current: 1A)

Now, here are some questions I have regarding my schematics and PCB designs!

  1. On several places on the PCB, CPU to Logic IC connections are borrowed by the pins on the 3 CPU memory chips. For an example, Pin A8 is connected to U7 (74HC688) and the Memory Chips. U7's trace connection to A8 is borrowed from the A8 Pin on the ROM chip. Is that a good way to connect some of the logic chips to the CPU? or is the current going to be higher for the Memory Chips and lower for the Logic ICs like U7?
  2. Do the traces connecting to and from the Crystal Oscillators need to be thicker?
  3. U13 (MAX3223) uses 5 Capacitors to convert the 3.3v serial voltage to 5v for TTL and CMOS circuits. Do the traces to these Caps need to be thicker as well?
  4. According to a comment on my previous Post, I can use a 6522 VIA to interface with a MAX3100 (U11) UART. While I was reading and looking through the Datasheet for the MAX3100, I saw a Typical Operating Circuit (Page 23) and a Quick Brown Fox Generator (page 17) that shows that the MAX3100 needs a 4-Bit bus to work. However, Pin 6 SHDN, the Hardware-Shutdown Input is in none of the schematics or similar diagrams in the datasheet, leaving me confused whether or not to tie it to Port A on the VIA just like the other pins (1 through 4). According to Page 5, when Pin 6 is pulled low, It turns off the Crystal to lower the voltage current. Is it alright to tie Pin 6 (SHDN) to PA4 from the VIA?
  5. The voltage Regulator I'm using to convert 12v to 5v is the classic 7805! However, It's voltage current output is 1.5A... I feel like that's barely enough for a 6502 Computer like this. Is that enough current for my system, if not is there another voltage regulator IC i should use that use that has higher current output than 1.5A?
  6. Since I can't find any 64k SRAM chips, I decided to use 2 HM62256 32K SRAM chips and just connect them together. However, I'm doubting if that'll add the memory size of both chips tp 32K for some reason. I've seen other 8-Bit computers from the 1970's and 1980's multiple SRAM chips before, but they where probably not connected to the 6502 CPU like this. Will connecting 2 SRAM chips like this increase the 32K of one SRAM chip 64K by adding another SRAM chip? Both SRAM chips have the same exact connections.
  7. The 6522 VIA on my System Board has a 20 Pin Female Header, So I can connect jumper wires to a breadboard to interact and experiment with Hardware I'd like to add to the next Prototype System Board. But PA0, 1, 2, 3 and 4 are connected to the UART that's used for the Serial Port. Is it okay to use those pins on Port A for something else as long as they aren't being programmed for the serial UART, or should I just use the pins for Port B for experimenting?
  8. There are these small TFT LCD screens that are used for Microcontroller projects, Cameras and other electronic products. Can the TMS9918A to output it's video Output to a TFT LCD module? Can I made an external device that has a TFT LCD screen and some sort of composite video decoder to display graphics from the VDP? The reason why ask this is because testing the graphics will be easier if I use those TFT screens.
  9. near the top left of the board, Between VR1, VR2 and VDC1 there is a Via (An element of a PCB that allows a Trace to go from the top layer, to the bottom layer of a PCB) that allows the top 3 VRAM chips to have connectivity to GND. Is this Via bad for a PCB like this? On a similar note, There is a Via on a +5V line right under the CPU that connects to the RDY pin, Is that bad for the +5V supply traces?

My PCB designs and schematics are attached to this post blow!

That's it for my Post here! I'm sorry if there is a Lot to read, I just want to make sure I didn't many any mistakes and I needed some questions I have answered. Any help, Information and Advice will be thanked and appreciated in Advanced!


Attachments:
File comment: 3D View Angled Serial Port
Screenshot (79).png
Screenshot (79).png [ 71.07 KiB | Viewed 927 times ]
File comment: 3D View Angled Video Port
Screenshot (78).png
Screenshot (78).png [ 67.01 KiB | Viewed 927 times ]
File comment: 3D View Top
Screenshot (76).png
Screenshot (76).png [ 130.4 KiB | Viewed 927 times ]
File comment: PCB Bottom Layer
BottomLayer.png
BottomLayer.png [ 130.55 KiB | Viewed 927 times ]
File comment: PCB top layer
TopLayer.png
TopLayer.png [ 131.87 KiB | Viewed 927 times ]
File comment: Schematics for the 8x1 trooper
Schematic_8x1 Trooper Prototype_2022-12-10.png
Schematic_8x1 Trooper Prototype_2022-12-10.png [ 633.58 KiB | Viewed 927 times ]
Top
 Profile  
Reply with quote  
PostPosted: Mon Dec 12, 2022 10:03 pm 
Offline
User avatar

Joined: Thu May 28, 2009 9:46 pm
Posts: 8178
Location: Midwestern USA
I recommend you do not mix logic families. You should avoid use of 74LS logic in new designs and definitely be cautious about driving the inputs of CMOS logic with the outputs of TTL logic. For speeds up to 8 to 10 MHz, 74HC will work fine. Beyond that, 74AC, 74AHC, or similar will be a better choice.

Also, please read this on Garth’s website, especially in regard to posting schematics.

_________________
x86?  We ain't got no x86.  We don't NEED no stinking x86!


Top
 Profile  
Reply with quote  
PostPosted: Tue Dec 13, 2022 1:38 am 
Offline
User avatar

Joined: Tue Mar 05, 2013 4:31 am
Posts: 1373
A few points:

First, as you are asking about wiring a pair of 32KB static RAM chips in parallel and not understanding what the result is (32KB vs 64KB) tends to highlight that you don't quite understand how this works.

Second, while I've not looked at the various links you reference for design influence, combining parts of other disparate designs without a detailed knowledge of how everything should work, generally results in nothing working as expected.

Third, as this is an obvious first build, my advice would be to scale a first project to a much smaller and less complicated circuit and less complicated parts to use.

I think you need to take a more detailed look at your memory map. You should also list the memory map, showing where you address the static RAM, the ROM and the various I/O devices, as an example:

RAM could start from $0000 and go up to $7FFF, which is 32KB.
ROM could start from $8000 and go up to $FFFF, which is also 32KB.

Now you need to pick an address for your I/O window, which will take addresses away from either RAM or ROM. Also note you can only access 64KB of total addressing... which includes all RAM, ROM and I/O devices.

An I/O window could be from $FE00 - $FEFF, which is 256 bytes. Then you need to further decode the 256 bytes I/O window to provide chip selects for the 6522 and the video controller. Also, is the goal to have direct access of the video memory from the 6502?

Also realize that the 6502 requires a 16-bit address vector at $FFFC/$FFFD after reset which tells the CPU where to start executing code.... which in your system (and most others) will be in ROM.

_________________
Regards, KM
https://github.com/floobydust


Top
 Profile  
Reply with quote  
PostPosted: Tue Dec 13, 2022 2:52 am 
Offline
User avatar

Joined: Fri Aug 30, 2002 1:09 am
Posts: 8433
Location: Southern California
I see floobydust posted while I was writing.  It's good advice.

Don't worry about the current and your trace widths.  They're all quite adequate for the currents involved.

PC Building Yoshi wrote:
U13 (MAX3223) uses 5 Capacitors to convert the 3.3v serial voltage to 5v for TTL and CMOS circuits.

The capacitors are for the charge pump to get the higher ±voltages for RS-232 (TIA-232-F) which specifies that the output voltages be in the range of ±5V to ±15V.  ±5V just barely meets the requirements.  Logic 0 is +5V to +15V.  Logic 1 is -5V to -15V.  -5V to +5V is the transition area.  Line drivers can handle indefinite shorts to each other or to ground without damage.  The voltages appear backwards; but it's because the line drivers and receivers invert the signal.  At the receiving end, line receivers change the voltage back to the logic levels the UART needs.  A line receiver is supposed to be able to handle ±25V.

Quote:
According to a comment on my previous Post, I can use a 6522 VIA to interface with a MAX3100 (U11) UART. While I was reading and looking through the Datasheet for the MAX3100, I saw a Typical Operating Circuit (Page 23) and a Quick Brown Fox Generator (page 17) that shows that the MAX3100 needs a 4-Bit bus to work.

It's just SPI, and SPI devices need clock, MOSI (master-out, slave-in data), MISO (master-in, slave-out data), and a chip select for each device.  The first three can be bused to all the SPI devices, but the select line is individual to each one.

Quote:
However, Pin 6 SHDN, the Hardware-Shutdown Input is [...]

Since you have the power supply and aren't depending on batteries and trying to get long life out of them, I'd say just leave it enabled full-time, with SHDN\ pulled high.  This regards your next question too, about whether the 7805 will be enough.  The 1.5A will definitely be more than enough; but (12V-5V)*1A is 7W of power dissipation, so you'd need a substantial heat sink.  In reality, I'm sure your creation won't take anywhere near that much current, assuming you're using CMOS parts.  The crystal oscillator cans by themselves will probably take way, way more current than the UART does.  I don't know about those 4116 RAMs.  I can't think of any good reason to use the 4116 unless the TMS9918A needs it.  Otherwise, a wild guess is that the whole thing would take something like 100mA.

Quote:
Since I can't find any 64k SRAM chips, I decided to use 2 HM62256 32K SRAM chips and just [...]

SRAMs jump in ratios of 4's: 2KB, 8KB, 32KB, 128KB, 512KB.  I think you'd be better off with the 128KB and just not using half of it.  If you use two 32KB ones, you'll need separate selects, otherwise the second one will be totally redundant and not do you any good.

Quote:
The 6522 VIA on my System Board has a 20-pin Female Header, So I can connect jumper wires to a breadboard to interact and experiment with Hardware I'd like to add to the next Prototype System Board. But PA0, 1, 2, 3 and 4 are connected to the UART that's used for the Serial Port. Is it okay to use those pins on Port A for something else as long as they aren't being programmed for the serial UART, or should I just use the pins for Port B for experimenting?

Definitely put at least a ground connection there, if not also VDD!  As it says in the primer, you have to remember that a major, major function of these is to be the signals' return-current path for the ICs to talk to each other, and you want at least the ground line(s) to be as close to the signal lines as practicable.

Next, a convenient way to make connections between boards is with IDCs (insulation-displacement connectors, the kind you mash onto ribbon cable), and they come in standard sizes of 10, 14, 16, 20, 26, 34, 40, and 50 positions, in two rows, not one.  The IDCs go on the ribbon cable, and those are female.  The pins go on the PCB.  Remember to leave enough room off the ends of the pin headers on the PCB for the part of the IDCs that has to be beyond the contacts on each end to hold the whole thing together and optionally hold a strain reliever on.

Next, yes, you can do a lot of multiplexing of port bits, but be careful not to have any SPI devices selected when activity on the other lines could confuse them or cause contention (meaning more than one output at a time trying to force a logic state onto a line, and they fight each other if they don't agree).

About the TFT LCD:  I was forgetting this when I made my comments about power-supply current.  Any display that puts out its own light of any kind may hog more power than everything else combined.  You'll want to check on that for power budgeting.  There are different kinds of interfaces for LCDs.  I can't take the time now to look up the TMS9918A to see what kind of output it produces.  Unless it's something like QVGA, I kind of doubt it can feed any of the available LCDs.  You might find LCDs that do what you want directly though, without anything like the TMS9918A; ie, you just feed them digital data and they figure out the dots and have their own video memory, limited scrolling functions, take care of the strobing, etc..

Quote:
near the top left of the board, Between VR1, VR2 and VDC1 there is a Via (An element of a PCB that allows a Trace to go from the top layer, to the bottom layer of a PCB) that allows the top 3 VRAM chips to have connectivity to GND. Is this Via bad for a PCB like this?

You don't really have ground plane; so regardless of vias, just make sure all the ground connections are made, and that the ground return path for the various signals runs as close to those signals as practicable.  Remember that even with a plane, the return current does not take the shortest possible path.  Instead, mutual inductance makes the return current go directly under the signal trace, taking the shape of the trace.

Quote:
On a similar note, There is a Via on a +5V line right under the CPU that connects to the RDY pin, Is that bad for the +5V supply traces?

The only potential problem with that is that if you later decide to connect a signal to the RDY input, you'll have to cut its connection to the +5V.  If there's any chance you'll want to do that (which I doubt there is, in this case), you'll want to put a 3.3K resistor in the connection to +5V.

_________________
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?


Top
 Profile  
Reply with quote  
PostPosted: Tue Dec 13, 2022 9:44 am 
Offline
User avatar

Joined: Thu Dec 11, 2008 1:28 pm
Posts: 10800
Location: England
I'm going to join in on the chorus of advising to slow down and simplify.

Your first build, of a trusted design, may well not work. You'll be learning how to debug, on something which is simple and is trusted.

Your first build, of your own design, probably will not work. You'll be learning how to debug, on a design which might not even be right in the first place.

Adapting a comment I made elsewhere:
BigEd wrote:
I don't know if this will help: building a computer from chips isn't like LEGO, it's more like building a model plane out of balsa wood and paper. You want that plane to fly, not just to look like a plane.

Two things might be connected, but they might not be connected well enough. Each component might not be quite as it needs to be. So, the Ben Eater project, great though it is for explanation and accessibility, shouldn't be thought of as a matter of assembling things together - there's more craft to it than that. Some people will be lucky, and have complete and immediate success. Actually, they will miss out on some learning opportunities. Others will find, as we see here, that there's some debugging to be done. It might be the components, or the assembly, or the surrounding equipment such as the power supply. It might even be the external temperature, if that's extreme.

So, ideally, you approach this not as a matter of putting together a kit, but as a first experience in a hobby of retro electronics. I hope you do, and you stick with it.


Top
 Profile  
Reply with quote  
PostPosted: Tue Dec 13, 2022 12:29 pm 
Offline
User avatar

Joined: Tue Oct 25, 2016 8:56 pm
Posts: 360
I want to echo other's sentiments, that this seems like a complex design for your first build, particularly the video circuitry. Far be it from me to try to dissuade your enthusiasm, but you'd probably be better off getting the "computer" part working and talking over serial before worrying about video outputs.

I haven't had a chance to do a thorough inspection of your schematic, but a couple of things that immediately jumped out on a glance:

1. You've got the MAX3100 (UART)'s s IRQ output and the W65C22S (VIA)'s IRQ output tied together. Normally you can tie IRQ pins together on devices where the IRQ pin is "open-drain", as it is on the MAX3100. However the W65C22S's IRQ output is totem-pole and therefore you cannot do that in this case. As it is, what will happen is when the MAX3100 wants to indicate an interrupt whilst the VIA is not, you'll create a short between power and ground through the VIA to the MAX3100. This is not good. Best case the interrupt won't work, worst case you'll cook some chips! Additionally, you need a pull-up on the IRQ line for open-drain pins, because open-drain outputs only pull low: When they're inactive you need a pull-up otherwise it'll just float.

The classic solution here would be to put a pull-up (3.3K ohm would be a reasonable value) on the UART's IRQ output, and then run the VIA and the UART's IRQ signals separately into an AND gate, the output of which is now your IRQ input to your CPU.

Another solution that doesn't involving adding another gate, would be to cascade the UART's IRQ into the CB2 or CA2 inputs on the VIA, as these can be configured as interrupt inputs. Then when the UART triggers its IRQ, that cascades into the VIA triggering the VIA to interrupt too. Obviously you'll have to check the VIA's IFR register to see which device triggered the interrupt, but you'd have to do that anyway with the other configuration.

2. 7805 is absolutely fine for your power regulator, but as others have mentioned it is extremely inefficient and, at higher currents, will dissipate a lot of heat. You probably won't get to the point where it matters, but if you did you'd need a big heatsink and, again, its very inefficient so if you're on e.g. battery power, you're wasting a lot of your charge. Switching regulators are much better, but harder to implement, however RECOM make drop-in 7805-replacement switching regulator modules, which I've used before and highly recommend for hobbyist use.

_________________
Want to design a PCB for your project? I strongly recommend KiCad. Its free, its multiplatform, and its easy to learn!
Also, I maintain KiCad libraries of Retro Computing and Arduino components you might find useful.


Top
 Profile  
Reply with quote  
PostPosted: Tue Dec 13, 2022 3:43 pm 
Offline

Joined: Mon Oct 03, 2022 9:44 pm
Posts: 26
floobydust wrote:
A few points:

First, as you are asking about wiring a pair of 32KB static RAM chips in parallel and not understanding what the result is (32KB vs 64KB) tends to highlight that you don't quite understand how this works.

Second, while I've not looked at the various links you reference for design influence, combining parts of other disparate designs without a detailed knowledge of how everything should work, generally results in nothing working as expected.

Third, as this is an obvious first build, my advice would be to scale a first project to a much smaller and less complicated circuit and less complicated parts to use.

I think you need to take a more detailed look at your memory map. You should also list the memory map, showing where you address the static RAM, the ROM and the various I/O devices, as an example:

RAM could start from $0000 and go up to $7FFF, which is 32KB.
ROM could start from $8000 and go up to $FFFF, which is also 32KB.

Now you need to pick an address for your I/O window, which will take addresses away from either RAM or ROM. Also note you can only access 64KB of total addressing... which includes all RAM, ROM and I/O devices.

An I/O window could be from $FE00 - $FEFF, which is 256 bytes. Then you need to further decode the 256 bytes I/O window to provide chip selects for the 6522 and the video controller. Also, is the goal to have direct access of the video memory from the 6502?

Also realize that the 6502 requires a 16-bit address vector at $FFFC/$FFFD after reset which tells the CPU where to start executing code.... which in your system (and most others) will be in ROM.



Quote:
is the goal to have direct access of the video memory from the 6502?

NOPE! The CPU needs to access VRAM through the VDP. It says so in the Data Manual for the VDP, though the CPU needs to send just 1 byte to the VDP, and tell the VDP when it is writing to VRAM via the MODE, SCW and CSR pins on the VDP itself.

Quote:
I think you need to take a more detailed look at your memory map.

I'll make a detailed memory map when I'm 100% done designing the schematic and PCB

Quote:
combining parts of other disparate designs without a detailed knowledge of how everything should work, generally results in nothing working as expected

Knew something felt off while making the schematic ... thx for the heads up!

Thx for the info and lovley advice! I'll follow through the best I can!


Top
 Profile  
Reply with quote  
PostPosted: Tue Dec 13, 2022 3:56 pm 
Offline

Joined: Mon Oct 03, 2022 9:44 pm
Posts: 26
GARTHWILSON wrote:
I see floobydust posted while I was writing.  It's good advice.

Don't worry about the current and your trace widths.  They're all quite adequate for the currents involved.

PC Building Yoshi wrote:
U13 (MAX3223) uses 5 Capacitors to convert the 3.3v serial voltage to 5v for TTL and CMOS circuits.

The capacitors are for the charge pump to get the higher ±voltages for RS-232 (TIA-232-F) which specifies that the output voltages be in the range of ±5V to ±15V.  ±5V just barely meets the requirements.  Logic 0 is +5V to +15V.  Logic 1 is -5V to -15V.  -5V to +5V is the transition area.  Line drivers can handle indefinite shorts to each other or to ground without damage.  The voltages appear backwards; but it's because the line drivers and receivers invert the signal.  At the receiving end, line receivers change the voltage back to the logic levels the UART needs.  A line receiver is supposed to be able to handle ±25V.

Quote:
According to a comment on my previous Post, I can use a 6522 VIA to interface with a MAX3100 (U11) UART. While I was reading and looking through the Datasheet for the MAX3100, I saw a Typical Operating Circuit (Page 23) and a Quick Brown Fox Generator (page 17) that shows that the MAX3100 needs a 4-Bit bus to work.

It's just SPI, and SPI devices need clock, MOSI (master-out, slave-in data), MISO (master-in, slave-out data), and a chip select for each device.  The first three can be bused to all the SPI devices, but the select line is individual to each one.

Quote:
However, Pin 6 SHDN, the Hardware-Shutdown Input is [...]

Since you have the power supply and aren't depending on batteries and trying to get long life out of them, I'd say just leave it enabled full-time, with SHDN\ pulled high.  This regards your next question too, about whether the 7805 will be enough.  The 1.5A will definitely be more than enough; but (12V-5V)*1A is 7W of power dissipation, so you'd need a substantial heat sink.  In reality, I'm sure your creation won't take anywhere near that much current, assuming you're using CMOS parts.  The crystal oscillator cans by themselves will probably take way, way more current than the UART does.  I don't know about those 4116 RAMs.  I can't think of any good reason to use the 4116 unless the TMS9918A needs it.  Otherwise, a wild guess is that the whole thing would take something like 100mA.

Quote:
Since I can't find any 64k SRAM chips, I decided to use 2 HM62256 32K SRAM chips and just [...]

SRAMs jump in ratios of 4's: 2KB, 8KB, 32KB, 128KB, 512KB.  I think you'd be better off with the 128KB and just not using half of it.  If you use two 32KB ones, you'll need separate selects, otherwise the second one will be totally redundant and not do you any good.

Quote:
The 6522 VIA on my System Board has a 20-pin Female Header, So I can connect jumper wires to a breadboard to interact and experiment with Hardware I'd like to add to the next Prototype System Board. But PA0, 1, 2, 3 and 4 are connected to the UART that's used for the Serial Port. Is it okay to use those pins on Port A for something else as long as they aren't being programmed for the serial UART, or should I just use the pins for Port B for experimenting?

Definitely put at least a ground connection there, if not also VDD!  As it says in the primer, you have to remember that a major, major function of these is to be the signals' return-current path for the ICs to talk to each other, and you want at least the ground line(s) to be as close to the signal lines as practicable.

Next, a convenient way to make connections between boards is with IDCs (insulation-displacement connectors, the kind you mash onto ribbon cable), and they come in standard sizes of 10, 14, 16, 20, 26, 34, 40, and 50 positions, in two rows, not one.  The IDCs go on the ribbon cable, and those are female.  The pins go on the PCB.  Remember to leave enough room off the ends of the pin headers on the PCB for the part of the IDCs that has to be beyond the contacts on each end to hold the whole thing together and optionally hold a strain reliever on.

Next, yes, you can do a lot of multiplexing of port bits, but be careful not to have any SPI devices selected when activity on the other lines could confuse them or cause contention (meaning more than one output at a time trying to force a logic state onto a line, and they fight each other if they don't agree).

About the TFT LCD:  I was forgetting this when I made my comments about power-supply current.  Any display that puts out its own light of any kind may hog more power than everything else combined.  You'll want to check on that for power budgeting.  There are different kinds of interfaces for LCDs.  I can't take the time now to look up the TMS9918A to see what kind of output it produces.  Unless it's something like QVGA, I kind of doubt it can feed any of the available LCDs.  You might find LCDs that do what you want directly though, without anything like the TMS9918A; ie, you just feed them digital data and they figure out the dots and have their own video memory, limited scrolling functions, take care of the strobing, etc..

Quote:
near the top left of the board, Between VR1, VR2 and VDC1 there is a Via (An element of a PCB that allows a Trace to go from the top layer, to the bottom layer of a PCB) that allows the top 3 VRAM chips to have connectivity to GND. Is this Via bad for a PCB like this?

You don't really have ground plane; so regardless of vias, just make sure all the ground connections are made, and that the ground return path for the various signals runs as close to those signals as practicable.  Remember that even with a plane, the return current does not take the shortest possible path.  Instead, mutual inductance makes the return current go directly under the signal trace, taking the shape of the trace.

Quote:
On a similar note, There is a Via on a +5V line right under the CPU that connects to the RDY pin, Is that bad for the +5V supply traces?

The only potential problem with that is that if you later decide to connect a signal to the RDY input, you'll have to cut its connection to the +5V.  If there's any chance you'll want to do that (which I doubt there is, in this case), you'll want to put a 3.3K resistor in the connection to +5V.


Quote:
I think you'd be better off with the 128KB and just not using half of it.

How do I just use half of a 128KB SRAM chip?

Quote:
I can't think of any good reason to use the 4116 unless the TMS9918A needs it.

The TMS9918A requires DRAM. It can automatically allocate it's own VRAM and Refresh the DRAM chips on it's own!

Quote:
I can't take the time now to look up the TMS9918A to see what kind of output it produces.

It outputs Composite Video, Is it still possible for the VDP to desplay video on an LCD? even If I build another device that decodes or converts the Composite Video signal into a signal that can be used for LCD screens?

Thank you very much for the info and advice! I'll try to implement as much as I can from what I learned from this! :D


Top
 Profile  
Reply with quote  
PostPosted: Tue Dec 13, 2022 4:17 pm 
Offline

Joined: Mon Oct 03, 2022 9:44 pm
Posts: 26
BigEd wrote:
I'm going to join in on the chorus of advising to slow down and simplify.

Your first build, of a trusted design, may well not work. You'll be learning how to debug, on something which is simple and is trusted.

Your first build, of your own design, probably will not work. You'll be learning how to debug, on a design which might not even be right in the first place.

Adapting a comment I made elsewhere:
BigEd wrote:
I don't know if this will help: building a computer from chips isn't like LEGO, it's more like building a model plane out of balsa wood and paper. You want that plane to fly, not just to look like a plane.

Two things might be connected, but they might not be connected well enough. Each component might not be quite as it needs to be. So, the Ben Eater project, great though it is for explanation and accessibility, shouldn't be thought of as a matter of assembling things together - there's more craft to it than that. Some people will be lucky, and have complete and immediate success. Actually, they will miss out on some learning opportunities. Others will find, as we see here, that there's some debugging to be done. It might be the components, or the assembly, or the surrounding equipment such as the power supply. It might even be the external temperature, if that's extreme.

So, ideally, you approach this not as a matter of putting together a kit, but as a first experience in a hobby of retro electronics. I hope you do, and you stick with it.


Quote:
advising to slow down and simplify

Alright. The only part that I don't 100% understand on this schematic is the Video RW circuitry. Do you know a simplier way to create the Video WR circuitry?


Top
 Profile  
Reply with quote  
PostPosted: Tue Dec 13, 2022 5:44 pm 
Offline
User avatar

Joined: Tue Oct 25, 2016 8:56 pm
Posts: 360
PC Building Yoshi wrote:
Quote:
I think you'd be better off with the 128KB and just not using half of it.

How do I just use half of a 128KB SRAM chip?


Just tie off one of the SRAM's address pins to either high or low. It doesn't actually matter which voltage level, or even which address pin, but "typically" most people would tie the highest order address bit - A16 in this case - to ground.

_________________
Want to design a PCB for your project? I strongly recommend KiCad. Its free, its multiplatform, and its easy to learn!
Also, I maintain KiCad libraries of Retro Computing and Arduino components you might find useful.


Top
 Profile  
Reply with quote  
PostPosted: Tue Dec 13, 2022 6:00 pm 
Offline
User avatar

Joined: Thu Dec 11, 2008 1:28 pm
Posts: 10800
Location: England
PC Building Yoshi wrote:
BigEd wrote:
Quote:
advising to slow down and simplify

Alright. The only part that I don't 100% understand on this schematic is the Video RW circuitry. Do you know a simplier way to create the Video WR circuitry?


Not so much, although there are many many designs of 8 bit machines with video circuitry. That's not really my point - my advice is to build a system without video circuitry. You don't need it. Serial I/O is enough to get started, and you will learn a lot.

Quote:
I'll make a detailed memory map when I'm 100% done designing the schematic and PCB


Hmm. In five minutes - let's say twenty - you could write ten lines of text - let's say twenty - which explain your memory map. And that would help you - and also help us - in understanding what you intend to build and how you intend to build it. No schematic or PCB is needed. A tried and tested approach is that the design comes first, the implementation second.


Top
 Profile  
Reply with quote  
PostPosted: Tue Dec 13, 2022 8:37 pm 
Offline
User avatar

Joined: Fri Aug 30, 2002 1:09 am
Posts: 8433
Location: Southern California
GARTHWILSON wrote:
PC Building Yoshi wrote:
On a similar note, There is a Via on a +5V line right under the CPU that connects to the RDY pin, Is that bad for the +5V supply traces?

The only potential problem with that is that if you later decide to connect a signal to the RDY input, you'll have to cut its connection to the +5V.  If there's any chance you'll want to do that (which I doubt there is, in this case), you'll want to put a 3.3K resistor in the connection to +5V.

I was forgetting about something which Jeff just brought up in another topic:  On the WDC W65C02S, RDY is bidirectional, being pulled low internally if you execute a WAIt instruction.  This means you wouldn't want it tied directly to Vcc.  Definitely use the pull-up resistor.

_________________
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?


Top
 Profile  
Reply with quote  
PostPosted: Tue Dec 13, 2022 10:27 pm 
Offline
User avatar

Joined: Thu May 28, 2009 9:46 pm
Posts: 8178
Location: Midwestern USA
One piece of advice, Yoshi. Learn how to fly a Piper Cub before you pilot a 747 to Tokyo.

You’re making things too complicated. As Ed and others have noted, there’s a high likelihood your machine won’t work on the first try. You’d be faced with attempting to debug a totally unproven design, which can be a challenge even for an expert. Better if you have to debug something that is based on a design that has been demonstrated to function.

_________________
x86?  We ain't got no x86.  We don't NEED no stinking x86!


Top
 Profile  
Reply with quote  
PostPosted: Wed Dec 14, 2022 12:52 pm 
Offline

Joined: Mon Oct 03, 2022 9:44 pm
Posts: 26
Alarm Siren wrote:
PC Building Yoshi wrote:
Quote:
I think you'd be better off with the 128KB and just not using half of it.

How do I just use half of a 128KB SRAM chip?


Just tie off one of the SRAM's address pins to either high or low. It doesn't actually matter which voltage level, or even which address pin, but "typically" most people would tie the highest order address bit - A16 in this case - to ground.



THank u so much! :D


Top
 Profile  
Reply with quote  
PostPosted: Wed Dec 14, 2022 12:57 pm 
Offline

Joined: Mon Oct 03, 2022 9:44 pm
Posts: 26
BigEd wrote:
PC Building Yoshi wrote:
BigEd wrote:
Quote:
advising to slow down and simplify

Alright. The only part that I don't 100% understand on this schematic is the Video RW circuitry. Do you know a simplier way to create the Video WR circuitry?


Not so much, although there are many many designs of 8 bit machines with video circuitry. That's not really my point - my advice is to build a system without video circuitry. You don't need it. Serial I/O is enough to get started, and you will learn a lot.

Quote:
I'll make a detailed memory map when I'm 100% done designing the schematic and PCB


Hmm. In five minutes - let's say twenty - you could write ten lines of text - let's say twenty - which explain your memory map. And that would help you - and also help us - in understanding what you intend to build and how you intend to build it. No schematic or PCB is needed. A tried and tested approach is that the design comes first, the implementation second.


Thx for the advice


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 22 posts ]  Go to page 1, 2  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 9 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to: