Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   PCI-Slot: einzelne Pins ansprechen (https://www.delphipraxis.net/27002-pci-slot-einzelne-pins-ansprechen.html)

Skiron 2. Aug 2004 16:55


PCI-Slot: einzelne Pins ansprechen
 
In mein neues Gehäuse soll 'ne Lüftersteuerung rein - selfmade
Na ja, das einzige was passieren soll, ist, dass wenn ich einen Schalter betätige, dass das mein Prog mitkriegt und dann den entsprechenden Lüfter an oder ausschaltet. Logischerweise brauch ich dazu aber auch eine Schnittstelle.
Normalerweise würd die Parallele ausreichen, 8 Pins rein und raus wären da knapp noch ok.
Nachdem mein Gehäuse aber Stealthmod werden soll, sollte man die Lüftersteuerung nicht immer sehen, die soll mit 'nem kleinen Motor rauskommen, ebenso 2 kleine Lüfter -> ich brauch für die beiden Motoren 4 Pins mehr -> und da hab ich das Problem. Ich hab nicht mehr genug ausgänge. Zudem kanns auch mal passieren, dass ein Drucker ran muss. Also überleg ich, was auf meinem MB noch so alles da ist:
USB - ein bisschen zu klein
PS2 - auch
dann seh ich, dass ich noch PCI-Slots freihabe. Dort: ca. 100 Pins. Wär reichlich genug. Nur - Wie kann ich die Pins ansprechen? Muss ich dafür 'nen eigenen Treiber proggen? Oder gibts da eine Unit oder DLL, die das ermöglicht?

Phoenix 2. Aug 2004 17:13

Re: PCI-Slot: einzelne Pins ansprechen
 
Du hast da gar keine Möglichkeit.

Der PCI Bus wird durch einen eigenen Controller gesteuert. Dieser Controller ist nicht programmierbar, denn die Kommunikation über den BUS wird durch Interrupts geregelt. Selbst die Gerätetreiber sprechen 'nur' die Devices / Chips hinter direkt an. Alles andere (welcher PCI-Slot, welche Interrupts) steuert der Bus Controller.

Du hast eine möglichkeit, und zwar gibt es (bei Conrad glaube ich) einige PCI-'Bastelkarten'. Diese Karten sind einfach einsteckbar und liefern einen eigenen Treiber mit. Über diesen Treiber kannst Du dann auf der Karte Pins an- und ausschalten.

Allerdings haben die meistens auch nur einen Ausgang nach draussen. Da müsstest Du dann aller wahrscheinlichkeit nach die Dinger nach innen umlöten. Das sollte aber eigentlich machbar sein.

Oder noch ne andere Idee: Den Parallel port brauchst Du ja wohl kaum. Theoretisch kannst Du die Pins auch direkt auf dem Bord abgreifen. Zumindest ältere Boards hatten einen Flachbandkabel-Anschluss für den Parallelport.

mischerr 2. Aug 2004 18:47

Re: PCI-Slot: einzelne Pins ansprechen
 
Sorry, aber ich halte das für einen kompletten Wahnsinn, heutzutage noch eine Hardware zu entwickeln, die um LPT hängt und für die mit den Pins gewackelt werden muss - vor allem da unter den aktuellen OS'n dies nur noch über Umwege zu erreichen ist.

Ich würde da eher zu USB raten. Der Chiphersteller Cypress, und auch einige andere (IO-Warrier!?) bieten entsprechende USB-Port-Controller und Treiber/Demos/Scripte an, über die, je nach IC, analoge und digitale Signale erfasst/generiert werden können. Solche Bausteine lassen sich z.B. recht gut bei Segor in Berlin bestellen.

Eine kleine Signalverstärkung wird zur Ansteuerung der Motoren wohl eh nötig sein. Allerdings hab ich noch nicht so ganz verstanden, wieso bei 2 Motoren 4 Leitungen/Pins nötig sein sollten (Schrittmotoren!?). Entweder die Motoren 2x aud Vcc und GND über einen NPN schalten, oder 2x an GND und über 2 PNP nach Vcc schalten. Evtl. Entstörung beachten und vielleicht sogar parallel hängen...

Für Hobby-Suizidgefährdete bietet z.B. Altera spezielle CPLD's an, welche zum Anschluss an den PCI-Bus geeignet sind. Allerdings gilt zu beachten, dass generell beim PCI-Bus bestimmte Randbedingungen zu erfüllen sind. Sprich z.B. min./max. Leiterbahnlängen, Führung der Leiterbahnen, Signallaufzeiten. Um sowas zu entwickelt bedarf es etwas mehr als gängiger EDA-Freeware...

Grüsse!

Skiron 2. Aug 2004 20:29

Re: PCI-Slot: einzelne Pins ansprechen
 
Ich brach für 2 Motoren 4 Pins. Warum?
Ich muss 3 Zustände beschreiben können: Vorwärts, rückwärts, stop. dafür brauch ich 2 bit. bei 2 Motoren macht das 4 Bit.
Und ich möcht irgendwie nicht eine Allzugroße Schaltung reintun, und gekauftes Zeug echt nur im allerletzen notfall.

Wenn der PCI-Slot (bzw. dessen Pins) über den Controller gesteuert werden, gings da nicht, den Controller zu steuern? Irgendwie musses ja gehen!

mschaefer 2. Aug 2004 21:33

Re: PCI-Slot: einzelne Pins ansprechen
 
Gameport ?? // Martin

Phoenix 2. Aug 2004 21:56

Re: PCI-Slot: einzelne Pins ansprechen
 
Zitat:

Zitat von Skiron
Wenn der PCI-Slot (bzw. dessen Pins) über den Controller gesteuert werden, gings da nicht, den Controller zu steuern? Irgendwie musses ja gehen!

Zitat:

Zitat von Ich
Der PCI Bus wird durch einen eigenen Controller gesteuert. Dieser Controller ist nicht programmierbar

Nein, es gibt definitiv und 100%ig keine möglichkeit, den PCI-Bus direkt anzusteuern. Allein schon aus dem Grund, weil es ein Bus ist. Solltest Du einen Pin direkt ansteuern, so erhalten alle PCI-Geräte die an dem Bus hängen dieses Signal. Es kann z.B. gut sein, das Du ein Signal zu einem Zeitpunkt senden würdest, an dem eine andere Karte genau dieses Signal nicht brauchen kann, einen Kurzschluss verursacht und Du eine recht teuere Grafikkarte total schrottest. Aus genau diesem Grunde läuft sämtliche Kommunikation auf diesem Bus ausschliesslich über diesen Controller.

supermuckl 2. Aug 2004 23:40

Re: PCI-Slot: einzelne Pins ansprechen
 
einfach !

mach nen schieberegister oder auch mehrere an deinen LPT port und steuer den dann über delphi ( auch mit XP usw möglich ! man schaue sich ältere threads zum thema "zlportio" an )

man benutzt dann den LPT port als serielles interface und "füllt" dann damit die schieberegister die dann wiederum parallel ausgeben -> das selbe ginge auch umgedreht also als input.

das ist im prinzip ne sehr kleine schaltung ( ICs, transistoren, paar widerstände und dioden falls relais angesteuert werden sollen )
und sehr preiswert !
und sehr sehr einfach erweiterbar (einfach noch paar schieberegister dran hängen und die bit schlange verlängern die da reingeschoben wird)

es können auch 2 Serielle Busse draus gemacht werden ( 2x4Bit ) für 2 schieberegister schlangen wobei man dann um das doppelte an speed gewinnt.. jedoch müsste der LPT bus schon mehr als ausreichen ! hab diverse LCD displays schon so auf diese weise an einen LPT drangehängt und mit einer eigenentwicklung an software dann die LCDs angesteuert ( hab so ca 10 stück dran gehabt und jedes hatte 2 schieberegister mit je 8 bit )

mischerr 3. Aug 2004 12:42

Re: PCI-Slot: einzelne Pins ansprechen
 
Vorwärts? Rückwärts? Stop?

Also Vorwärts = Spannung da; Stop = Spannung weg und Rückwärts - für was sollte ein Lüfter rückwärts laufen??? :gruebel:

Jörn 3. Aug 2004 13:54

Re: PCI-Slot: einzelne Pins ansprechen
 
Zitat:

Zitat von Skiron
In mein neues Gehäuse soll 'ne Lüftersteuerung rein - selfmade
....sollte man die Lüftersteuerung nicht immer sehen, die soll mit 'nem kleinen Motor rauskommen, ebenso 2 kleine Lüfter -> ich brauch für die beiden Motoren 4 Pins mehr

Dieser Motor soll rückwärts laufen können, denke ich mal.

mischerr 3. Aug 2004 16:47

Re: PCI-Slot: einzelne Pins ansprechen
 
Aber wo bitte liegt der Sinn? :gruebel:
AFAIK ist in der ATX-Spezifikation definiert, dass, z.B. ein Netzteillüfter, immer die Frischluft ins Gehäuse zieht, sodass dort ein Überdruck entsteht. Dies soll u.a. eine Verschmutzung durch Umgebungsstaub minimieren. Ein anders laufender Gehäuselüfter wäre da kontraproduktiv. Desweiteren sind die Lüfter doch meist eh so optimiert, dass der Luftstrom, selbst bei einer Umpolung, nur in eine Richtung optimal ist. Ein Umkehren des Luftstroms kann doch auch durch einen umgekehrten Einbau des Lüfters geschehen...
Aber wie gesagt, die Möglichkeit einen Lüfter umzukehren erscheint mir IMHO recht sinnfrei... :twisted:

Grüsse!


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:06 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz