PCI kaart maken om dingen te besturen


Ik kan nergens op internet vinden over PCI aansluitkontaktjes in je pc
wie kan mij helpen
Never says never again,, nooit doen
Shiptronic

Golden Member

niet gezocht? 1e hit google : http://www.interfacebus.com/Design_PCI_Pins.html

Web staat er vol mee

[Bericht gewijzigd door Shiptronic op 13 maart 2009 16:17:46 (13%)]

www.PPO-Systems.nl ,Officeel Elsbett dealer
Elektuur heeft ooit een PCI experimenteerkaart beschreven.
Allicht een goed vertrekpunt, het in vergelijking met de voor experimenten meer gebruikenlijke interfaces geen eenvoudig onderwerp.
Welke pinnen heb je dan nodig om Bijv. een relai om te laten schakelen??
Never says never again,, nooit doen
Je kunt er niet zomaar een relais aan hangen, de PCI bus is (in tegenstelling tot de ISA bus) niet echt amateur-vriendelijk. Op de ISA bus had je nog een eenvoudige adres/data bus met read/write signalen, en je stelde de kaart gewoon in op een adres (met jumpers of software) waar deze op moest reageren.

PCI is wat dat betreft een stuk ingewikkelder, en loopt ook dusdanig hard dat het lastiger is om er een microcontroller aan te hangen.
PCI is ene heel lastig ding. zowel op hardware kant ( 4 lagen print , routing van de kritische signalen ) logica niveau ( het is een complex gebeuren. de controller is vrij complex ) en op software niveau. de drivers zijn ook inet van de poes.

het debuggen van PCI is een regelrechte ramp. het probleem is dat , wanneer er iets niet correct gebeurt op hardware / logica niveau , de pci controller op het moederbord in panic gaat (bus panic noemt dat letterlijk) de controller trekt dan doodleuk aan de rest lijn van de processor. je krijgt dus geneens een blue screen of death ...

Er zijn oplossingen hoor. PLG 8050 bijvoorbeeld. dat is ene pci to idsa bridge. als je daar het experimental window opent (300 tot 31F) kan je dat.

Probleem is dat die plx chip 208 poten heeft in tqfp. niet iets voor beginners die 'draadjes aan de connector willen solderen ....'

andere oplossing is ene FPGA of CPLD. altera heeft een PCI kaart met een MAXII op die een pci connecotr heeft en ze geven je de driver + de pci slave controller.
die kaart wordt verkocht voor 99 dollar. daar moet iets mee te doen zijn.
Professioneel ElectronenTemmer - siliconvalleygarage.com - De voltooid verleden tijd van 'halfgeleider' is 'zand' ... 7,714,746 / 7,355,303 / 7,098,557 / 6,762,632
Zelf bouwen is kansloos: te complex kwa layouting (alleen flatpacks) en timing en bus loading.
Een 4 layer board is toch wel nodig om het echt goed aan de praat te kijgen.
Ja ja niet klagen: low budget ethernet bordjes doen het met 2 layers maar die zijn daar dedicated op gemaakt.

Nog een alternatief is een LAVA parallelpoort bordje voor PCI gebruiken een daar je spullen aan knopen.
Of het 8255 PIO bordje (ja de good old 8255 in een nieuw jasje).

Zie www.lavalink.com daar staat leuk spul op.
Is in Nederland en Belgie gewoon leverbaar.
Henri's Law 1: De wet van behoud van ellende. Law 2: Ellende komt nooit alleen.
Op 13 maart 2009 18:27:44 schreef free_electron:
PCI is ene heel lastig ding. zowel op hardware kant ( 4 lagen print , routing van de kritische signalen ) logica niveau ( het is een complex gebeuren. de controller is vrij complex ) en op software niveau. de drivers zijn ook inet van de poes.

het debuggen van PCI is een regelrechte ramp. het probleem is dat , wanneer er iets niet correct gebeurt op hardware / logica niveau , de pci controller op het moederbord in panic gaat (bus panic noemt dat letterlijk) de controller trekt dan doodleuk aan de rest lijn van de processor. je krijgt dus geneens een blue screen of death ...

Nu ben je wel heel erg dramatisch. Een 2 laags print kan prima. Alle netwerkkaartjes hebben 2 lagen. Een FPGA gaat je ook nog lukken op 2 lagen. Voor Linux een driver schrijven valt goed te doen.

Er zijn oplossingen hoor. PLG 8050 bijvoorbeeld. dat is ene pci to idsa bridge. als je daar het experimental window opent (300 tot 31F) kan je dat.

Je kunt met discrete logica (74LVxx chips) een simpele PCI kaart maken die gebruik maakt van het lezen/schrijven van de configuratie registers (De IDSEL pin van de PCI bus werkt dan als chipselect). Ik vermoed dat de eerder genoemde Elektuur kaart ook op die manier werkt. Er is een programma genaamd PCItree waarmee je de configuratie registers vanuit Windows kunt lezen en schrijven. Dat kun je dus ook vanuit je eigen programma. In de PCI specificatie staan uitgebreide timing diagrammen.

Aan de andere kant is zo'n PLX chip natuurlijk veel makkelijker. Er is vast wel ergens een DLL/driver te vinden waarmee je eenvoudig met je hardware kunt praten.
Op 13 maart 2009 20:05:26 schreef Nico.c:
Je kunt met discrete logica (74LVxx chips) een simpele PCI kaart maken die gebruik maakt van het lezen/schrijven van de configuratie registers (De IDSEL pin van de PCI bus werkt dan als chipselect).

Helaas, aan de pinnen van de PCI bus mag je maar een fan-in/out hangen. De spec is zeer kritisch kwa fan-in loading line lengte (stubs) en capaciteit.

Met discrete logic moet je aan een aantal pinnen minimaal twee IC's hangen om de juiste logica te realiseren (dan haal je de loading niet) of ALLES bufferen (en dan haal je de timing niet).

Dus een worse-case "correct" design is niet fatsoenlijk zonder ASIC of PLD te maken.
Henri's Law 1: De wet van behoud van ellende. Law 2: Ellende komt nooit alleen.
Op 13 maart 2009 20:05:26 schreef Nico.c:
[...]
Nu ben je wel heel erg dramatisch. Een 2 laags print kan prima.

als je lang genoeg knoeit misschien. cheapo spul doet soms 2 layers maar de meeste pci kaarten zijn 4 layer.

Je kunt met discrete logica (74LVxx chips) een simpele PCI kaart maken die gebruik maakt van het lezen/schrijven van de configuratie registers


Dat is dus voor geen meter pci compliant he. Je maakt ofwel ene pci kaart ofwel maak je een ducttape-tywrap braakbal die een of andere functie weer compleet misbruikt. De configuratie registers dienen om uitgelezen te worden door het mobo en OS en om de kaart in te lijmien in de pci fabric ( handshake, mbus maskering controle en mogelijkheden. ) normaal gezien worden die 1 keer gezet en klaar. Dat is geen manier van werken.
Professioneel ElectronenTemmer - siliconvalleygarage.com - De voltooid verleden tijd van 'halfgeleider' is 'zand' ... 7,714,746 / 7,355,303 / 7,098,557 / 6,762,632
Jochem

Golden Member

TTL-logica toe gaan passen om PCI te interfacen lijkt mij ook niet echt een goed idee. Soldeer dan maar een paar draden aan je SMbus ofzo.

Echter, PCI is prima als zelfbouw te doen, bijvoorbeeld met zo'n PLX. Voor WDF zijn hier voorbeelddrivers van, kun je lekker zelf in aanrommelen. Ook 2-laags moet kunnen (waarom el-cheapo wel en amateur niet?), maar een 4-laags print is tegenwoordig toch ook niet zo idioot duur meer.

Ik vrees echter (gezien de vraagstelling) dat het niveau van TS niet toereikend is. Daarbij kun je je afvragen of je dan niet beter met een FTDI chipje op je USB kunt gaan zitten.
If the plural of mouse is mice, wouldn't the plural of spouse be spice?
Shiptronic

Golden Member

www.PPO-Systems.nl ,Officeel Elsbett dealer
Op 13 maart 2009 20:17:23 schreef henri62:
[...]
Helaas, aan de pinnen van de PCI bus mag je maar een fan-in/out hangen. De spec is zeer kritisch kwa fan-in loading line lengte (stubs) en capaciteit.

Met discrete logic moet je aan een aantal pinnen minimaal twee IC's hangen om de juiste logica te realiseren (dan haal je de loading niet) of ALLES bufferen (en dan haal je de timing niet).

Dus een worse-case "correct" design is niet fatsoenlijk zonder ASIC of PLD te maken.

PCI is inmiddels ruim 12 jaar oud. De techniek is in die tijd flink vooruit gegaan. Nu heb je ook in de 74 serie hele snelle chips met een lage ingangscapaciteit. Wat vooral kritisch is bij PCI zijn open stubs (T stukken) omdat het een niet afgesloten bus is. Risercards in een normaal moederbord is vragen om ellende. Echter de capacitieve belastbaarheid is best hoog; genoeg voor 2 a 3 74LV chips.

De TS vraagt immers om een simpele manier om een PCI kaartje te maken. Niet om een ontwerp voor massaproductie. Als je nu een insteekkaart voor massaproductie gaat maken, dan moet je PCI express toepassen. PCI zelf is al lang dood.
dat pci gedoe laat ik dan maar zitten want anders kost het me een computer

en dat ISA is dat wel te doen??
Never says never again,, nooit doen
Jochem

Golden Member

If the plural of mouse is mice, wouldn't the plural of spouse be spice?
ik moet alleen nog een stel transistoren kopen

en wat is het verschil tussen al die transistoren en welke kan ik het beste gebruiken bij 12V
Never says never again,, nooit doen
Jochem

Golden Member

Neem gewoon degene uit het artikel.

Het verschil is voor de toepassing die jij wenst niet zo aanwezig. Versterkingsfactor, snelheid, etc. doen niet zo ter zake bij het schakelen van een relais. Let wel op NPN of PNP.

Begin op een afgedankte computer!
If the plural of mouse is mice, wouldn't the plural of spouse be spice?
ja dat weet ik
maar ik bedoel voor iet anders bijv is dan BC 547B NPN het beste
Never says never again,, nooit doen
Jochem

Golden Member

Het ligt aan je toepassing. De BC547 kun je er gerust een paar meer van kopen als je wat wilt experimenteren. Het is een veel gebruikte all-purpose transistor. De PNP tegenhanger is de BC557.
If the plural of mouse is mice, wouldn't the plural of spouse be spice?
Op 13 maart 2009 21:47:12 schreef Marcoss:
dat pci gedoe laat ik dan maar zitten want anders kost het me een computer

en dat ISA is dat wel te doen??


isa was makkelijk ja. een 74245 een 74688 en een paar and poorten was alles wat je nodig had.
helaas. moederborden met isa erop .... de laatste keer dat ik dat zag was 1998....
op sommige industriele moederborden zit het nog.
Professioneel ElectronenTemmer - siliconvalleygarage.com - De voltooid verleden tijd van 'halfgeleider' is 'zand' ... 7,714,746 / 7,355,303 / 7,098,557 / 6,762,632
ISA is inderdaad vrij simpel. Deze print hebben we ooit gemaakt als hardware watchdog. Heeft een 8742 processor en een 16V8 gal als adresdecoder/glue logic... (De 8742 heeft een directe interface voor ISA)
Later hebben we ook nog een versie met de 87C576 gehad, omdat de 8742 obsolete werd...

Arco
Op 13 maart 2009 21:46:49 schreef Nico.c:
[...]
De TS vraagt immers om een simpele manier om een PCI kaartje te maken. Niet om een ontwerp voor massaproductie. Als je nu een insteekkaart voor massaproductie gaat maken, dan moet je PCI express toepassen.


ja en hoe denk je dat te doen met ttl chips ? PCI-express is differential signalling (LVDS en 3 gigabit per seconde ... dat haal je niet meer met ttl ictjes hoor ...
Dat wordt een Arria of een Virtex met de juiste bus transceivers. en voor de PCI-X core mag je een flink bedrag ophoesten ...
Professioneel ElectronenTemmer - siliconvalleygarage.com - De voltooid verleden tijd van 'halfgeleider' is 'zand' ... 7,714,746 / 7,355,303 / 7,098,557 / 6,762,632
De ISA bus is echt vele malen eenvoudiger; ik heb, onder andere daarvoor, nog een voorraadje ouder mainboards met processoren en geheugen liggen.

Een paar jaar geleden heb ik (tijdens m'n afstudeerstage) nog een board ontworpen voor de ISA bus (wordt nog steeds gebruikt in de vorm van PC-104). Dat was niet veel meer dan een adres decoder, demultiplexer (om meerdere chip-selects te genereren), en een beetje logica wat een eenvoudige interrupt controller moest voorstellen. Dit alles om 8 stuks 8254 programmable interval controllers te interfacen om pulsen te tellen, puls breedte te meten, en signalen te genereren voor modelbouwservo's en zo.
Op 14 maart 2009 00:48:53 schreef free_electron:
[...]

ja en hoe denk je dat te doen met ttl chips ? PCI-express is differential signalling (LVDS en 3 gigabit per seconde ... dat haal je niet meer met ttl ictjes hoor ...
Dat wordt een Arria of een Virtex met de juiste bus transceivers. en voor de PCI-X core mag je een flink bedrag ophoesten ...

Effe PLX PCI express naar PCI chipje plakken. Maar ik haalde PCI express aan om aan te geven dat je nu geen PCI (massa)product meer moet gaan maken. PCI express is serieel en dat gaat natuurlijk niet met een paar 74LV chips. Voor experimentele doeleinden is PCI wel uiterst leerzaam.