6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Sat Nov 23, 2024 9:28 am

All times are UTC




Post new topic Reply to topic  [ 29 posts ]  Go to page Previous  1, 2
Author Message
PostPosted: Fri Aug 30, 2024 1:57 am 
Offline
User avatar

Joined: Thu May 28, 2009 9:46 pm
Posts: 8508
Location: Midwestern USA
Paganini wrote:
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

If you’re going to do that, try to arrange the cable so a ground is placed between adjacent signal-carrying leads.  Such an arrangement usually means grounds on all odd-numbered pins and signals on the even pins—or vice versa.  You might also need to look at Thevenin termination if the cable length amounts to anything, as transmission line effects are likely to appear with anything more that a few inches of cable.  This would definitely be a YMMV situation.

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


Top
 Profile  
Reply with quote  
PostPosted: Wed Sep 04, 2024 7:21 pm 
Offline

Joined: Mon Jan 19, 2004 12:49 pm
Posts: 985
Location: Potsdam, DE
I discovered today, to my great surprise, that ISA edge connector sockets are still available - Digikey has five pages of 'em.

Not cheap, but something else to consider. Of course, you don't have to meet the ISA signal and voltage specs, you can roll your own.

Neil


Top
 Profile  
Reply with quote  
PostPosted: Thu Sep 05, 2024 7:50 am 
Offline

Joined: Wed Nov 16, 2011 9:39 am
Posts: 68
That's very interesting. It would make the build feel very professional. I haven't looked around in the Kicad (8) library for ISA sockets footprints yet, but hopefully they adhere to some standard and are present. I have no idea how to go about rolling my own footprint being sure that it would fit :)

That being said, I decided to go for serial on board on this card (doing final verifications before order) but I might design another in the future and then all these options are great.


Top
 Profile  
Reply with quote  
PostPosted: Thu Sep 05, 2024 12:52 pm 
Offline

Joined: Mon Jan 19, 2004 12:49 pm
Posts: 985
Location: Potsdam, DE
Well, there's certainly a PCB edge connector pattern. The socket looks like just two rows of pins on 0.1" centres.

Neil


Top
 Profile  
Reply with quote  
PostPosted: Thu Sep 05, 2024 1:44 pm 
Offline
User avatar

Joined: Thu May 28, 2009 9:46 pm
Posts: 8508
Location: Midwestern USA
barnacle wrote:
I discovered today, to my great surprise, that ISA edge connector sockets are still available - Digikey has five pages of 'em.

Tyco and others make a whole series of edge connectors, and not just the old IBM PC ISA style.  When I built POC V1.4, I laid out the PCB so I could use a 36-pin edge connector as the expansion slot.  I’ve since reconsidered it for mechanical reasons.

Attachment:
File comment: Expansion Slot Connector
expansion_slot.jpg
expansion_slot.jpg [ 1.67 MiB | Viewed 255 times ]

I've also looked at adapting a PCI edge connector for expansion purposes, as it is physically smaller than an ISA-style connector, but has considerable more pins and is designed to operate with much higher clock frequencies.  Having more pins available means more VCC and ground connections can be provided, which can only help with performance and noise abatement.

One thing with using edge connectors is the need to provide mechanical support to avoid flaky connections or, worse yet, accidentally busting the edge off the mating PCB when you clumsily bump it at an inopportune moment.  :oops:  For that reason, when I build the next POC unit, I am going to use 0.025" square pins and a mating socket for the expansion port.  I can arrange the pins so the card will be self-supporting, and can also arrange things so it isn’t possible to plug in the card in the wrong direction.

Attachment:
File comment: Expansion Card Termination
expansion_card_term.jpg
expansion_card_term.jpg [ 262.13 KiB | Viewed 255 times ]

The above is a mechanical drawing of the termination for a dual UART module (a replacement for the feeble 65C51) that I am designing.  A general-purpose expansion card could be fashioned in a similar way.

The other thing with slots is if long-term reliability is important, the PCB “fingers” probably should be gold-plated.  That is a not-inexpensive feature when having your PCBs made.

Attachment:
File comment: Samtec Strip Sockets & Pins
socket_strip_samtec.pdf [473.34 KiB]
Downloaded 6 times

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


Top
 Profile  
Reply with quote  
PostPosted: Thu Sep 05, 2024 1:55 pm 
Offline

Joined: Wed Nov 16, 2011 9:39 am
Posts: 68
BigDumbDinosaur wrote:
One thing with using edge connectors is the need to provide mechanical support to avoid flaky connections or, worse yet, accidentally busting the edge off the mating PCB when you clumsily bump it at an inopportune moment.  :oops:  For that reason, when I build the next POC unit, I am going to use 0.025" square pins and a mating socket for the expansion port.  I can arrange the pins so the card will be self-supporting, and can also arrange things so it isn’t possible to plug in the card in the wrong direction.

I have been thinking about this for a while. Having a PCB with an edge connector and then a connector that accepts heavy cords like VGA-cables etc must put an enormous stress on the edge connector and socket. Also my apartment is a total mess so bumping is a high probability :). Interesting, if/when you get around to building this, updates are most appreciated.

BigDumbDinosaur wrote:
The other thing with slots is if long-term reliability is important, the PCB “fingers” probably should be gold-plated.  That is a not-inexpensive feature when having your PCBs made.

Yikes, on PCBWay, clicking "Edge connector: yes" added $370 to the cost on a 100x100mm 4-layer PCB design. (Their explanation makes me assume it's the gold plated option: "Edge connectors achieve electrical connection by contacting the golden fingers on the PCB. If your design includes golden finger, please check 'Yes' for this item and select the surface finish method and bevelling angle for it. Otherwise, please check 'No'.")


Top
 Profile  
Reply with quote  
PostPosted: Thu Sep 05, 2024 2:02 pm 
Offline

Joined: Wed Nov 16, 2011 9:39 am
Posts: 68
Paganini wrote:
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.

Might need to get me a crimper and experiment with this. I still suck at making cables so I need the practice anyway :) Seems like a good option especially for a prototyping stage build.


Top
 Profile  
Reply with quote  
PostPosted: Thu Sep 05, 2024 2:11 pm 
Offline

Joined: Wed Nov 16, 2011 9:39 am
Posts: 68
BigDumbDinosaur wrote:
Paganini wrote:
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

If you’re going to do that, try to arrange the cable so a ground is placed between adjacent signal-carrying leads.  Such an arrangement usually means grounds on all odd-numbered pins and signals on the even pins—or vice versa.  You might also need to look at Thevenin termination if the cable length amounts to anything, as transmission line effects are likely to appear with anything more that a few inches of cable.  This would definitely be a YMMV situation.


Where does Vcc come into this equation? I read on Garth's primer he recommends sprinkling Vcc evenly across pins, although perhaps not as frequently as Gnd. Would it suffice to substitute a few of the Gnds, or consume a few of the signal wires?

Hmm ready made cables seems to be in the 200 mm range so maybe transmission line effects need to be taken in to consideration then.

Pardon my electro-newbie questions, as I am a software guy at heart :oops:


Top
 Profile  
Reply with quote  
PostPosted: Thu Sep 05, 2024 2:12 pm 
Offline

Joined: Fri Mar 18, 2022 6:33 pm
Posts: 491
JohanFr wrote:
Paganini wrote:
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.

Might need to get me a crimper and experiment with this. I still suck at making cables so I need the practice anyway :) Seems like a good option especially for a prototyping stage build.
This is how Blue August's I/O card is connected to the main board, and also how Garth recommends[1] doing it in the Primer. IDC connecters can be quite large, which gives you lots of pins for interleaving ground wires like BDD is talking about.



[1] If he can't talk you out of doing it at all ;)

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


Top
 Profile  
Reply with quote  
PostPosted: Thu Sep 05, 2024 2:37 pm 
Offline

Joined: Wed Nov 16, 2011 9:39 am
Posts: 68
Paganini wrote:
[1] If he can't talk you out of doing it at all ;)


Thanks for the link! Just to be clear I am not talking about exposing the processor bus, I would have to invent my own kind of bus which is a problem to solve in it self (using buffers/registers or whatever to cleverly catch a write to a specific address range, then expose the other side of that to the outside world using some connector). But I think such external bus circuitry would become quite complex, especially if both read/write is to be supported. This is one of the reasons I decided to switch direction and move the shift-register-to-address+data logic onboard and expose only the serial bus to the SBC (specifically the shift register on the 65C22). If it was to be used only for graphics, instead of doing the external bus circuitry, might as well use the board space to integrate VGA into the SBC.

I much prefer using SPI wherever possible as it is dead simple to implement. That being said the idea of external buses which are separate from the CPU bus is an intriguing subject.


Top
 Profile  
Reply with quote  
PostPosted: Thu Sep 05, 2024 2:50 pm 
Offline
User avatar

Joined: Thu May 28, 2009 9:46 pm
Posts: 8508
Location: Midwestern USA
JohanFr wrote:
Paganini wrote:
[1] If he can't talk you out of doing it at all ;)

Thanks for the link! Just to be clear I am not talking about exposing the processor bus, I would have to invent my own kind of bus which is a problem to solve in itself (using buffers/registers or whatever to cleverly catch a write to a specific address range, then expose the other side of that to the outside world using some connector).

A pair of 65C22s would be the way I’d go to drive an expansion bus.  You’d have bi-directional communication, handshaking lines and a means to assign different IRQs to different slots, without directly connecting any MPU circuits to the slots themselves.  Assuming you use WDC’s 65C22s, you’d be able to operate the bus at the same speed as the MPU...or some fraction thereof.

The biggest complication will likely be in devising and implementing the bus protocol.  That would be an interesting software project.

Quote:
I much prefer using SPI wherever possible as it is dead simple to implement.

In my opinion, SPI is too slow for an expansion bus and furthermore, would demand that any expansion card you design has to have SPI I/O.  That’s two stages of parallel-serial conversion and more hardware complication.

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


Top
 Profile  
Reply with quote  
PostPosted: Thu Sep 05, 2024 2:55 pm 
Offline

Joined: Wed Nov 16, 2011 9:39 am
Posts: 68
Slightly OT: Not meaning to discredit everything that has been suggested in this thread, I have been thinking about my future SBC implementation, and the way forward. Changes I am considering:

* Simple On-board VGA using dual port RAM
* Adding a multitude of 65C22 to take advantage of among other things 16 bidirectional pins + shift register per package. Using these pins for all stuff that does not fit naturally in to RAM such as scroll registers, background color, vertical raster position etc etc.
* Exposing only SPI (for example using 65SIB)/SNES controller port/Audio to the outside world
* Ditching the 65C51 and use a MAX3100 connected to one of the SPI ports.
* Trying to cram up the CPU speed as much as possible.

End of OT :)


Top
 Profile  
Reply with quote  
PostPosted: Thu Sep 05, 2024 3:02 pm 
Offline

Joined: Wed Nov 16, 2011 9:39 am
Posts: 68
BigDumbDinosaur wrote:
JohanFr wrote:
Paganini wrote:
[1] If he can't talk you out of doing it at all ;)

Thanks for the link! Just to be clear I am not talking about exposing the processor bus, I would have to invent my own kind of bus which is a problem to solve in itself (using buffers/registers or whatever to cleverly catch a write to a specific address range, then expose the other side of that to the outside world using some connector).

A pair of 65C22s would be the way I’d go to drive an expansion bus.  You’d have bi-directional communication, handshaking lines and a means to assign different IRQs to different slots, without directly connecting any MPU circuits to the slots themselves.  Assuming you use WDC’s 65C22s, you’d be able to operate the bus at the same speed as the MPU...or some fraction thereof.

The biggest complication will likely be in devising and implementing the bus protocol.  That would be an interesting software project.

Quote:
I much prefer using SPI wherever possible as it is dead simple to implement.

In my opinion, SPI is too slow for an expansion bus and furthermore, would demand that any expansion card you design has to have SPI I/O.  That’s two stages of parallel-serial conversion and more hardware complication.


You are right SPI would be mostly for existing peripherals I think. I agree I think the 65C22 (or a set of) is the way to go too. It _does_ sound like an interesting software project. I guess the software complexity comes down to how generic the bus needs to be.


Top
 Profile  
Reply with quote  
PostPosted: Thu Sep 05, 2024 3:07 pm 
Offline

Joined: Wed Nov 16, 2011 9:39 am
Posts: 68
Ok I feel I am derailing abit from the original subject. Theoretically one could send a write pulse through the shift register of the 65C22. If it takes ~15 cycles for it to propagate, one could immediately after write a 24-bit value to three ports on the 65C22 before that pulse would reach the receiver, triggering a write of whatever was sent on the 24-bit port. Not sure how to deal with that on the other end though. Sorry about drifting away from the original subject. I got a bit excited :)

EDIT: the A,X,Y regs might not be enough to do such a thing, but perhaps the SR can be used for write pulses/clocking rather than flipping a pin on the 65C22.

EDIT2: Hmm maybe this is what the handshaking pins on the 65C22 are for. Pardon my ignorance, I need to read up on this. :oops:


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

All times are UTC


Who is online

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