PCI as carrier card
I am kicking around the idea of a pcie x1 carrier card for the P2 edge module. Specifically, I am looking at the common serial cards available which use an asic as the pcie endpoint.
The overall idea at this point is to consider a setup where a serial port card is installed, then connected in an otherwise normal manner to the P2 edge module with an rs232 cable. That setup is workable and I have had some success in doing it.
The next step is that I want to begin learning some of the basics with pcb design. I am looking towards copying the bulk design of a pcie serial card and having the P2 module on the card itself, essentially making a breakout board for a pcie slot. I've designed and had jlcpcb build a normal breakout board for the P2 edge - which was a very fun project.
This is sort of a vague project idea at the moment. I have found a good deal of information out there and have found many resources (fpga4fun, phil's lab youtube, etc...) towards this. The feeling I get is that pcie x1 is somewhat forgiving, and using a reference design from an existing pcie serial serial card, all I am really wanting to do is move the P2 edge on the pcie card itself, keeping the serial bridge. Later on, it would be rad if the P2 could support some kind of pcie x1 interface, but that is too far for now. I am thinking along the lines of those gpio pcie cards (accesio and similar) which move machine control from a plc on to a pc-based control platform. What I would like to see is a programmable gpio card in that same concept - hence the idea of putting the P2 edge on a pcie carrier board.
So- in the theme of fun and naive learning, I'd like some information from others in this forum about how this can be approached. The motivation being that the P2 itself is absolutely killer. I've been in the plc/cnc/industrial automation game for a while now and see the P2 concept (multicore and smart pins) great step forward.
Thanks, rascals.
One example chip would be this
https://cms.nacsemi.com/content/AuthDatasheets/ASIXS00034-1.pdf
which is used on the startech pci/serial card.
Another would be the PLC PEX8611 asic which I have on an accessio pcie digital io card.
Comments
Depending on the data rate you're interested in, you might consider a PCIe to PCI bridge. I've heard of PCI cards being implemented in discrete logic, but I'm not finding references for that anymore.
What I've been seriously looking at are USB2<->IDE adapters, and trying to implement SCSI BUFFER READ and SCSI BUFFER WRITE commands via ATAPI (on the propeller GPIOs). That should allow multiple MB/sec with little software overhead on any OS. On Windows, SPTI, on Linux ioctl(SG_IO). I'm sure macos has an equivalent, but I don't know what it is.
Used to have a book series from Siemens (early 90s) for interface card for their version of 8051. It included all the PC boards and list of parts to build the development card for an ISA slot which held the 8051and a few other pcbs for example projects. Now lost to the mists of time and multiple moves. Tried to find it on line, but no luck. But did find the following which may give some ideas...
Link: https://indico.cern.ch/event/121654/attachments/68430/98164/Practical_introduction_to_PCI_Express_with_FPGAs_-_Extended.pdf
This came up with a google search using "pcie interface tutorial"
I have one of the knjn dragon-e cards
https://www.knjn.com/FPGA-PCIe.html
which are great for all that fpga-based interface stuff. I think the direction I want to go is more along the lines of something more application specific. So far, it seems a good option is to use a pcie to uart bridge, then have a cog dedicated to serial comms, leaving the other 7 for other tasks. I get the feeling somehow there is a better way, I just don't know it yet.
I appreciate the pdf you linked. It shows some more detail towards what I will need to do in terms of a driver.
PLC/CNC etc., seems to be going more and more EtherCAT. Not a fan myself but:
https://www.mikroe.com/ethercat-click
Craig