6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Thu Nov 21, 2024 5:47 pm

All times are UTC




Post new topic Reply to topic  [ 29 posts ]  Go to page 1, 2  Next
Author Message
PostPosted: Sat Aug 24, 2024 11:13 am 
Offline

Joined: Wed Nov 16, 2011 9:39 am
Posts: 68
Hi again!

I am transferring my VGA board design onto a 100x100 mm 4-layer PCB. To access memory on it, it needs to be fed with up to 14 address lines, 8 data lines, some control lines, interleaved with ground and VCC. I am planning to design a second adapter board that among other things takes a 24-bit serial input signal and converts it to address/data using shift registers (74HC595s). The goal is to have a graphics card I can use my current 6502 SBC (which has no graphics port, only a 65C51 and a 65C22) and for a future SBC maybe create the "graphics port" directly on the motherboard. Fwiw I am currently using the serial interfacing algorithm with my breadboard design and it works very well (shifting out using 65C22 under the control of PHI2), but it is a bit slow (around 60-70 cycles per byte written to graphics memory), so in the future I am aiming for a faster interface.

My current though itsto use 40-pin pinsockets and 40-pin pinheaders for interfacing but I am a bit hesitant whether they will work well or not. For example, an angled pin header on one board and an angled pin socket on another, will they fit perfectly or will there be offsets in some dimension? I have considered using a stacked design (one board on top of the other) but the downside of this I don't get to see all components.

So my question is: How do you go about designing PCB interfaces, where two PCBs are to be talking to each other, and what are your thoughts? Any better connectors/design options available?

As a side note, perhaps very relevant: I am considering integrating the shift registers directly onto the VGA board, thus making it the only way of interfacing. I would then have to make a new PCB or integrate the graphics directly on a future SBC. It might actually be a better option (way less pins in the interface) but I would like to explore the option above first.


Top
 Profile  
Reply with quote  
PostPosted: Sat Aug 24, 2024 11:17 am 
Offline

Joined: Wed Nov 16, 2011 9:39 am
Posts: 68
I attach a b&w PDF of the current PCB (not many traces added as of yet as the layout is not final) to give an idea of how it looks.


Attachments:
File comment: Version with F.Fab and B.Fab layers
output.pdf [148 KiB]
Downloaded 22 times
output.pdf [116 KiB]
Downloaded 17 times
Top
 Profile  
Reply with quote  
PostPosted: Sat Aug 24, 2024 2:06 pm 
Offline

Joined: Mon Jan 19, 2004 12:49 pm
Posts: 983
Location: Potsdam, DE
Any of the 'pin header' connectors - which are available male and female - will mate correctly and accurately (though you have to think about pin numbers as you change boards sometimes, and obviously use the same size on all: 2.54mm, 2mm, 1.27mm, 1mm).

Din41612 connectors in their many variants offer one, two, and three rows of pins, and in some cases also high power pins and coaxial connectors. Nice, but expensive. Beware that right angle connectors don't sit at right angles without some external support; the boards will want to lean a bit otherwise.

You might also consider 'feed through' pin header types as are used most famously on Arduino and Nucleo development boards.

Neil


Top
 Profile  
Reply with quote  
PostPosted: Sat Aug 24, 2024 3:28 pm 
Offline

Joined: Fri Dec 21, 2018 1:05 am
Posts: 1117
Location: Albuquerque NM USA
90 degree pin socket and pin header will mate in a flat plane if you connect them together first, lay them flat then solder the pc boards. Mounting the combined boards on a baseplate will help keeping them flat. You can also have another row next to the 90 degree header and socket so additional boards can be plugged in vertically.
Bill

Edit, Few years ago I was exploring a generic 8-bit processor concept with a main board that has CPLD, memory, IO, and mass storage that can accommodate different processors. The processor board plugs in one edge, other edge has prototyping area, and there is a row next to the 90-degree connector that can be populated with a header to accommodate another pc board vertically. It worked fairly well. The generic main board supported 6502, Z80, 6809, 8085, and 68008.


Attachments:
8A1927AF-4E46-401C-96CB-35DC5AA20777.jpeg
8A1927AF-4E46-401C-96CB-35DC5AA20777.jpeg [ 1.65 MiB | Viewed 474 times ]
Top
 Profile  
Reply with quote  
PostPosted: Sat Aug 24, 2024 4:19 pm 
Offline

Joined: Wed Nov 16, 2011 9:39 am
Posts: 68
plasmo wrote:
90 degree pin socket and pin header will mate in a flat plane if you connect them together first, lay them flat then solder the pc boards. Mounting the combined boards on a baseplate will help keeping them flat. You can also have another row next to the 90 degree header and socket so additional boards can be plugged in vertically.
Bill

Edit, Few years ago I was exploring a generic 8-bit processor concept with a main board that has CPLD, memory, IO, and mass storage that can accommodate different processors. The processor board plugs in one edge, other edge has prototyping area, and there is a row next to the 90-degree connector that can be populated with a header to accommodate another pc board vertically. It worked fairly well. The generic main board supported 6502, Z80, 6809, 8085, and 68008.


Thanks for the mounting tips! Any particular reason you chose a single row connector over a double row connector in that build?


Top
 Profile  
Reply with quote  
PostPosted: Sat Aug 24, 2024 4:22 pm 
Offline

Joined: Wed Nov 16, 2011 9:39 am
Posts: 68
barnacle wrote:
Any of the 'pin header' connectors - which are available male and female - will mate correctly and accurately (though you have to think about pin numbers as you change boards sometimes, and obviously use the same size on all: 2.54mm, 2mm, 1.27mm, 1mm).

Din41612 connectors in their many variants offer one, two, and three rows of pins, and in some cases also high power pins and coaxial connectors. Nice, but expensive. Beware that right angle connectors don't sit at right angles without some external support; the boards will want to lean a bit otherwise.

You might also consider 'feed through' pin header types as are used most famously on Arduino and Nucleo development boards.

Neil


Mm I was a bit concerned about the laying-flatness of the whole setup.

Stacking a la Arduino using sockets with extra long pins is certainly an option. Having the socket on only one side might having them working against gravity in that case as well though.

I have been thinking about the option to put the card in vertically as well although stability is a concern plus it feels a bit unpractical if there are to be cables connected to it. I am not great at mechanical design so I wouldn't know how to go about creating support ala PCIe-cards (the metallic end which you hold when you push in the card).

Maybe integrating the serial-thing on the board is easiest after all. I will work my way from left to right on the PCB with traces before making the final decision i think :)


Top
 Profile  
Reply with quote  
PostPosted: Sat Aug 24, 2024 5:31 pm 
Offline

Joined: Fri Dec 21, 2018 1:05 am
Posts: 1117
Location: Albuquerque NM USA
Single row connector is a lot easier to disconnect than double rows. It also takes less pc board space and can be plugged into a solderless breadboard.
Bill


Top
 Profile  
Reply with quote  
PostPosted: Sun Aug 25, 2024 8:40 am 
Offline

Joined: Wed Nov 16, 2011 9:39 am
Posts: 68
My local supplier don't have enough angled connectors it seems. Trying to find them on Mouser is a pain. Any good keywords to search for? :)


Top
 Profile  
Reply with quote  
PostPosted: Sun Aug 25, 2024 9:00 am 
Offline

Joined: Mon Jan 19, 2004 12:49 pm
Posts: 983
Location: Potsdam, DE
If you can cope with lcsc.com in China, consider HCTL PZ254-2-20-S and HCTL PM254-2-20-W-8.5 as a matching pair; both right angle so you can mount at the edge of boards for a flat build.

Neil

(just the first I came across; there are plenty of others from the usual suspects: I happened to have an lcsc tab open.)


Top
 Profile  
Reply with quote  
PostPosted: Sun Aug 25, 2024 9:09 am 
Offline

Joined: Mon Jan 19, 2004 12:49 pm
Posts: 983
Location: Potsdam, DE
On Mouser, options might be TE Connectivity 2-826634-0 for the male and Preci-dip 803-87-040-20-001101 for the female.

Female right angle headers seem a bit thin on the ground at mouser, though I restricted myself to 2x20 0.1" pitch. Preci-dip looks as if they might offer single row options, too.#

Neil


Top
 Profile  
Reply with quote  
PostPosted: Sun Aug 25, 2024 9:47 am 
Offline

Joined: Wed Nov 16, 2011 9:39 am
Posts: 68
Thank you for the suggestions!


Top
 Profile  
Reply with quote  
PostPosted: Sun Aug 25, 2024 10:25 am 
Offline
User avatar

Joined: Thu May 28, 2009 9:46 pm
Posts: 8504
Location: Midwestern USA
Samtec makes a lot of these.

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


Top
 Profile  
Reply with quote  
PostPosted: Wed Aug 28, 2024 4:14 pm 
Offline
User avatar

Joined: Tue Jul 17, 2018 9:58 am
Posts: 107
Location: Long Island, NY
I'd personally stay away from a 40-long row of header pins, having used them on early prototypes of my project.

Every time they're removed there's a risk of bending pins unless you are very strict about how you pull on the boards. Even when I was careful I had to spend considerable time straightening pins with pliers.

That's why I switched to mezzanine connectors like the TX24-40R-6ST-N1E and its mating counterpart TX25-40P-8ST-H1E. They take up less board space and are easy to connect or disconnect. The connection is mostly pretty stable, though if you plan to tuck the boards inside an enclosure or otherwise leave it connected long term you'll want to use standoffs to mechanically secure the connection as they can get unseated if the whole thing is jostled around enough.


Top
 Profile  
Reply with quote  
PostPosted: Thu Aug 29, 2024 11:27 am 
Offline

Joined: Wed Nov 16, 2011 9:39 am
Posts: 68
Again thank you for the suggestions! I have been contemplating about this and I think it might be a better design choice to move the serial-to-address/data-pin functionality onboard, thereby reducing the need for external connectivity to only a few serial communication pins + vblank-status pin which are connected directly to the 65C22 on my SBC. One reason is that I think my next SBC will have graphics on board, encouraging me to keep the design simple to keep board size down. Doing so would eliminate the need for a graphics port completely. This would also simplify logic for the CPU accessing the video memory as it can be a part of the normal address decode. (EDIT: using the ridiculously expensive beast that is Renesas 7007 32KB dual port ram I could even have a single RAM-chip doing both code/data, and video RAM)


Top
 Profile  
Reply with quote  
PostPosted: Thu Aug 29, 2024 3:44 pm 
Offline

Joined: Fri Mar 18, 2022 6:33 pm
Posts: 491
You could also just use some standard pin headers and connect the boards together with IDC cables, like Daryl does in some of his designs: https://sbc.rictor.org/pics4.html

IDC crimpers and kits are pretty cheap.

_________________
"The key is not to let the hardware sense any fear." - Radical Brad


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

All times are UTC


Who is online

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