6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Mon Sep 09, 2024 8:09 am

All times are UTC




Post new topic Reply to topic  [ 135 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6 ... 9  Next
Author Message
 Post subject: Re: Star Ground
PostPosted: Thu Nov 19, 2015 2:10 pm 
Offline
User avatar

Joined: Tue Nov 16, 2010 8:00 am
Posts: 2353
Location: Gouda, The Netherlands
Quote:
I don't have any real experience of PCB routing so I uased the defaults given to me for track thickness, etc. by Eagle. However, doesn't the extra copper in thicker tracks help over come resistance?

There's not much current going through the signal traces, and they are short anyway, so a little bit of resistance doesn't cause any harm. Power is distributed by the power plane, so that's not a problem either. A few other non-signal traces, such as the MAX238 charge pump connections, can be done with thicker traces.

Eagle also allows you to enter the board house limits in the design rule checker (and save it as as a .dru file) so you can verify that the design doesn't have any design rule violations. This is highly recommended.


Top
 Profile  
Reply with quote  
 Post subject: Re: Star Ground
PostPosted: Thu Nov 19, 2015 2:13 pm 
Offline
User avatar

Joined: Tue Nov 16, 2010 8:00 am
Posts: 2353
Location: Gouda, The Netherlands
Quote:
I needed to keep the core signalling components in the centre as they communicate with most other devices

Maybe it would work to have the CPU bus run left to right, and put the signalling components above that. Although I'm guessing that at this point you have no interest in redoing all the work. :)


Top
 Profile  
Reply with quote  
 Post subject: Re: Star Ground
PostPosted: Thu Nov 19, 2015 3:03 pm 
Offline
User avatar

Joined: Sun Sep 08, 2013 10:24 am
Posts: 740
Location: A missile silo somewhere under southern England
Arlet wrote:
Quote:
I needed to keep the core signalling components in the centre as they communicate with most other devices

Maybe it would work to have the CPU bus run left to right, and put the signalling components above that. Although I'm guessing that at this point you have no interest in redoing all the work. :)

Believe me when I say that the idea of having to redo the board sort of cracks me down the middle, but I'd rather get this right and learn from the experience.

So... would you run all the buses across the board from the CPU and then have the RAM and EEPROM etc sit above or below the buses?


Top
 Profile  
Reply with quote  
 Post subject: Re: Star Ground
PostPosted: Thu Nov 19, 2015 3:15 pm 
Online
User avatar

Joined: Fri Aug 30, 2002 1:09 am
Posts: 8507
Location: Southern California
Aslak3 wrote:
I would have thought 8 (or even 10?) mil traces on a 25 mil grid would be sufficient for such a board. It does not have any SMT or even PLCC parts. It might introduce a few more vias but that is no biggie.

If the DIPs are given .030" holes, you can use .050" pads, leaving .050" between pads, which gives room for two .010" traces or three .007" or .006" traces. :D I always try to make the layouts so there's no bare-board space between parts, and from the top you can essentially only see the board around the edges; but that's just me, largely because of my work always requiring maximum density.

A .008" 1oz trace can handle a half amp with a 20°C rise. (2oz copper is common on the outside layers of thru-hole boards if your minimum trace/space is .010".) 1oz copper is .0014" thick, and skin effect won't really come into play at our frequencies; but if line line is enough to matter, then you calculate trace width to give the desired transmission-line impedance for the particular separation you have between the signal layer and the ground plane, whether .020" or whatever, and the dielectric constant of the board material (which is 4.1 for the common FR-4 PCB material).

BTW, I never use a grid when laying out PCBs. I also don't confine trace angles to 0/45/90°. I let them go at whatever angle makes for best density, least crosstalk, etc..

BTW #2: Looking at my high-density PCB-design book to review a couple of the facts above, I am reminded that if you run into a number-of-holes limitation in the PCB manufacturing service you plan to use, you can solder DIPs down to pads on the board without using holes. It's called "butt" or "I lead," and the pads are typically .050"x.100", and you make a solder fillet where the lead meets the pad. (That pad size is for automated assembly with solder paste. You can probably reduce the pad size if you're soldering by hand with a small iron.) The "butt" or "I lead" method may also jack up the IC far enough off the board that you can put other smaller ICs underneath it. (Another way to jack up the IC and leave room underneath is to use socket rows.)

_________________
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  
 Post subject: Re: Star Ground
PostPosted: Thu Nov 19, 2015 4:33 pm 
Offline
User avatar

Joined: Tue Nov 16, 2010 8:00 am
Posts: 2353
Location: Gouda, The Netherlands
Eagle has no real time DRC so trying to get maximum routing density without a grid, or with irregular angles is very hard. With a grid adjusted to the allowed spacing it is a lot easier.


Top
 Profile  
Reply with quote  
 Post subject: Re: Star Ground
PostPosted: Thu Nov 19, 2015 4:56 pm 
Offline
User avatar

Joined: Tue Nov 16, 2010 8:00 am
Posts: 2353
Location: Gouda, The Netherlands
Quote:
So... would you run all the buses across the board from the CPU and then have the RAM and EEPROM etc sit above or below the buses?

No, I was thinking about putting CPU, RAM, EEPROM, VIA (i.e everything connected to the big buses) all vertically, side by side, with the buses running horizontally between the pins, and then put all the other stuff above that. But I have little experience routing these DIP parts, so I'm not sure it will actually work.

As far as trying to "perfect" the design, keep in mind that it is good enough if it works, and you can most likely achieve that by using thinner traces on the current layout, and finding a way to squeeze the last couple in.


Top
 Profile  
Reply with quote  
 Post subject: Re: Star Ground
PostPosted: Thu Nov 19, 2015 5:32 pm 
Offline
User avatar

Joined: Sun Jun 30, 2013 10:26 pm
Posts: 1948
Location: Sacramento, CA, USA
You may also benefit from the knowledge that your SRAM doesn't care about the ordering of the address and data signals, which may allow you to rotate it 180° in relation to the other large DIPs ... it could in some cases be enough to make a routing more efficient. I even went further than that on one of my old breadboard experiments, and reversed the data lines on my PIA and SRAM to make the wires shorter. My software had to account for the reversed bits when it accessed the PIA's control register, but it worked great.

Mike B.


Top
 Profile  
Reply with quote  
 Post subject: Re: Star Ground
PostPosted: Thu Nov 19, 2015 5:48 pm 
Offline
User avatar

Joined: Thu May 28, 2009 9:46 pm
Posts: 8375
Location: Midwestern USA
banedon wrote:
BigDumbDinosaur wrote:
Why are you qualifying /RAM_SEL with Ø2?

So that it will only enable the RAM on the rising edge of Ø2. The address decoding scheme is from Gareth's Primer as I wanted a bit of speed and didn't want to us e a decoder or (C)PLD.

Better to enable the RAM when a valid address is present on A0-A15. You are throwing away quite a bit of setup time by waiting until after the rise of Ø2 to enable the RAM.

What you do want to qualify with Ø2 are the read/write signals seen by the SRAM. Qualifying read isn't essential with the 65C02 but qualifying write is, since the data bus may contain random content while Ø2 is low.

Attachment:
File comment: Read-Write Qualified by Ø2
rw_generation.gif
rw_generation.gif [ 19.57 KiB | Viewed 605 times ]

The above circuit will work with any 65xx MPU and any RAM or I/O device that has separate /RD and /WD control inputs. It is not to be used with 65xx I/O devices.

Arlet wrote:
No, I was thinking about putting CPU, RAM, EEPROM, VIA (i.e everything connected to the big buses) all vertically, side by side, with the buses running horizontally between the pins, and then put all the other stuff above that. But I have little experience routing these DIP parts, so I'm not sure it will actually work.

That is essentially how I am doing it in POC V2.

Attachment:
File comment: POC V2 PCB Layout
poc_v2_pcb.gif
poc_v2_pcb.gif [ 107.54 KiB | Viewed 605 times ]

In the above illustration, the 65C816 (PLCC-44) is at the right. To the left of it is the SRAM (an SOJ-36 package), then the EPROM, then the "expansion socket" and finally the QUART (PLCC-52). The CPLD (PLCC-44) is immediately above the SRAM and EPROM socket. Signal traces are 6 mils and signal via are 26 mils with an 8 mil hole.

The theory behind this layout is that the device with the most number of bus connections, the SRAM, is closest to the MPU and the device with the least number of bus connections, the DUART, is farthest from the MPU. Trace routing tends to get easier this way. I used the same layout approach in POC V1, which is stable at 12.5 MHz, and a bit wobbly at 15 MHz.

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


Top
 Profile  
Reply with quote  
 Post subject: Re: Star Ground
PostPosted: Thu Nov 19, 2015 6:01 pm 
Online
User avatar

Joined: Fri Aug 30, 2002 1:09 am
Posts: 8507
Location: Southern California
Arlet wrote:
Eagle has no real time DRC so trying to get maximum routing density without a grid, or with irregular angles is very hard. With a grid adjusted to the allowed spacing it is a lot easier.

So BTW #3: I don't use any DRC, realtime or otherwise. I'm always looking at the X/Y display and measuring the room between things though, and frequently reaching for the calculator to make sure I have adequate clearance, especially when a trace has to pass by a pad at odd angles. The only DRC my CAD has is non-realtime, and it gives thousands of supposed DRC violations because it doesn't understand the unorthodox stuff I'm doing, which is why I don't use it. I've done many dozens of very dense boards over the years though that came out right on first try, with no production problems.

_________________
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  
 Post subject: Re: Star Ground
PostPosted: Fri Nov 20, 2015 6:15 am 
Offline
User avatar

Joined: Tue Nov 16, 2010 8:00 am
Posts: 2353
Location: Gouda, The Netherlands
Quote:
Better to enable the RAM when a valid address is present on A0-A15. You are throwing away quite a bit of setup time by waiting until after the rise of Ø2 to enable the RAM

The RAM is fast and the clock is slow, so there's enough setup time left. Why make it more complicated than it has to be?


Top
 Profile  
Reply with quote  
 Post subject: Re: Star Ground
PostPosted: Fri Nov 20, 2015 11:23 am 
Offline
User avatar

Joined: Tue Nov 16, 2010 8:00 am
Posts: 2353
Location: Gouda, The Netherlands
Quote:
I don't use any DRC, realtime or otherwise. I'm always looking at the X/Y display and measuring the room between things though, and frequently reaching for the calculator to make sure I have adequate clearance, especially when a trace has to pass by a pad at odd angles.

Sounds like tedious work. How long would it take you to route a board such as banedon posted earlier in this thread ?


Top
 Profile  
Reply with quote  
 Post subject: Re: Star Ground
PostPosted: Fri Nov 20, 2015 1:31 pm 
Offline

Joined: Mon Aug 05, 2013 10:43 pm
Posts: 258
Location: Southampton, UK
barrym95838 wrote:
You may also benefit from the knowledge that your SRAM doesn't care about the ordering of the address and data signals, which may allow you to rotate it 180° in relation to the other large DIPs ... it could in some cases be enough to make a routing more efficient.


*lightbulb moment*

This is really useful to know. I had not considered this trick, despite having laid out several SBC boards and numerous breadboards. I believe SRAM/[EEP]ROM pinouts are defined, and thus at least memory device bus pins are orientated the same direction, but this would probably have saved me some work switching directions on databus pins relative to the CPU. Cool! Unfortunately my current board is 99% done, but it's great to know for the next one.

Quote:
I even went further than that on one of my old breadboard experiments, and reversed the data lines on my PIA and SRAM to make the wires shorter. My software had to account for the reversed bits when it accessed the PIA's control register, but it worked great.


This is possibly taking it a step too far for me. My head would start to hurt. :)

GARTHWILSON wrote:
BTW, I never use a grid when laying out PCBs. I also don't confine trace angles to 0/45/90°. I let them go at whatever angle makes for best density, least crosstalk, etc..


I find grids, and fixed angles, useful. How do you keep bus traces equidistance without a grid?

Arlet wrote:
Sounds like tedious work. How long would it take you to route a board such as banedon posted earlier in this thread ?


Yes, I could not work like that either. I went from gEDA "pcb", which has a manual DRC report to KiCADs continuous enforcement and I would not want to go back. Yet alone not having a DRC at all...

Is anyone aware of any books (or online guides, I guess) that cover PCB design techniques?

_________________
8 bit fun and games: https://www.aslak.net/


Top
 Profile  
Reply with quote  
 Post subject: Re: Star Ground
PostPosted: Fri Nov 20, 2015 4:34 pm 
Offline
User avatar

Joined: Thu May 28, 2009 9:46 pm
Posts: 8375
Location: Midwestern USA
GARTHWILSON wrote:
Arlet wrote:
Eagle has no real time DRC so trying to get maximum routing density without a grid, or with irregular angles is very hard. With a grid adjusted to the allowed spacing it is a lot easier.

So BTW #3: I don't use any DRC, realtime or otherwise.

Nor do I. All of my boards are 100 percent manually laid out. I seem to have an innate sense of how things will fit and where they will go.

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


Top
 Profile  
Reply with quote  
 Post subject: Re: Star Ground
PostPosted: Fri Nov 20, 2015 4:35 pm 
Offline
User avatar

Joined: Thu May 28, 2009 9:46 pm
Posts: 8375
Location: Midwestern USA
Arlet wrote:
Quote:
Better to enable the RAM when a valid address is present on A0-A15. You are throwing away quite a bit of setup time by waiting until after the rise of Ø2 to enable the RAM

The RAM is fast and the clock is slow, so there's enough setup time left. Why make it more complicated than it has to be?

The RAM may be, but what about ROM?

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


Top
 Profile  
Reply with quote  
 Post subject: Re: Star Ground
PostPosted: Fri Nov 20, 2015 4:53 pm 
Offline
User avatar

Joined: Tue Nov 16, 2010 8:00 am
Posts: 2353
Location: Gouda, The Netherlands
Only the RAM CS is qualified with phi2.


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 135 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6 ... 9  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 21 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: