Delphi-PRAXiS

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!

Skiron 3. Aug 2004 16:59

Re: PCI-Slot: einzelne Pins ansprechen
 
Die Lüfter haben auch nur den zustand ein/bzw. aus
Der Motor, der aber die Frontabdeckung rausfahren soll, damit der Lüfter an meiner Front etwas luft bekommt, muss eben rein UND rausfahren können!
@supermuckl: Den LTP seriell zu nutzen hab ich mir auch schon gedacht. Ich hätt mir da eine schaltung mit boolscher algebra aufgezeichnet, is aber ziemlich groß geworden...
Weißt du, ob/wo man eine von dir beschriebene Schaltung (bzw. Zeichnung) herkriegen kann?

mischerr 3. Aug 2004 17:12

Re: PCI-Slot: einzelne Pins ansprechen
 
Ok, aber ich kann mich nur wiederholen - benutze USB und du bekommst die wenigsten Probleme. Immerhin hat ja fast jedes MB auch interne Anschlüsse. Schau dir dazu mal folgenden Artikel aus der c't an: Hier! Ich denke, damit kommst du weiter.

Grüsse!

MisterNiceGuy 3. Aug 2004 17:26

Re: PCI-Slot: einzelne Pins ansprechen
 
Boah Skiron :) Vielleicht solltest du dir einfach 'nen billigen Lüfter kaufen. So teuer sind die Dinger ja nicht, oder?

Skiron 3. Aug 2004 20:30

Re: PCI-Slot: einzelne Pins ansprechen
 
Zitat:

Zitat von MisterNiceGuy
Boah Skiron :) Vielleicht solltest du dir einfach 'nen billigen Lüfter kaufen. So teuer sind die Dinger ja nicht, oder?

Den Lüfter hab ich schon. Ich brauch nur noch eine Schnittstelle, deren Pins ich über Software einzeln ansteuern kann, damit ich den Lüfter auch softwaremäßig ein und ausschalten kann!

Dabei fällt mir ein: Ich hab kein Diskettenlaufwerk drinnen! ob man da was ansteuern kann? *verzweifeltNachWasZumAnsteckenSuch*

Phoenix 3. Aug 2004 20:47

Re: PCI-Slot: einzelne Pins ansprechen
 
Guckst Du hier. Damit lassen sich vom Diskettenschacht aus bis zu 4 Lüfter steuern. Kostet nur 20 €. Und sieht cool aus.

supermuckl 3. Aug 2004 22:23

Re: PCI-Slot: einzelne Pins ansprechen
 
Zitat:

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.
ähm hab ich da was verpasst? seit wann zieht es die heiße luft vom NT in das pc gehäuse ?

also alle gehäuse die ich bis jetzt gesehen habe ( und das sind sehr sehr viele ) sind alle so gebaut das das netzteil die luft RAUS SAUGT


@ Skiron
das hab ich damals selbst entworfen.. einen schaltplan gab es nicht.
hab alles löting by probiering aufgebaut und dann das entsprechende "protocol" dazu programmiert wo mir die schieberegister gesteuert hat

also im prinzip ists echt sehr einfach sowas zu bauen ( da brauchste keine logikbausteine oder sonstiges ! nur schieberegister!! )

ich mach wenn ich zeit hab mal nen schaltplan (ausm kopf) ich hoffe ich krieg das nochmal so hin o_O
jedenfalls kann ich dir trotzdem mal wörtlich erklären wie das funzt im detail:

1. wir haben x LPT ausgänge die wir benutzen werden ( sagen wir mal 4 )
2. ein ausgang ist DATA, einer CLOCK und einer ENABLE

ich weis jetzt nicht mehr genau wie nen schieberegister funzt aber ich denke so:
ich habe nen seriellen eingang ( data ) an dem ich jeweils ein bit anlege und dann mit jedem CLOCK signal die bits "rein schiebe"
das heist: bei jeder positiven flanke von CLOCK wird das schieberegister die am DATA eingang anliegende 0 oder 1 in die "schlange" übernehmen und den rest am ausgang wieder rausschieben falls es schon voll ist ( da könnte wiederum das nächste schieberegister dran )

clock würde einfach durchgeschleift werden ( alle kriegen das parallel ab )

REGISTER1 REGISTER2
---^----------^

und data würde seriell durchgeschleift werden
-> REGISTER1 -> REGISTER2 -> usw

und mit enable lasse ich alle register gleichzeitig ( auch parallel zu jedem IC verdrahtet ) die bits an die ausgänge PARALLEL ausgeben ( die speichert es bis zum nächsten ENABLE wo dann die aktuellen bits wieder an die ausgänge transferiert werden )

wie die eingänge nun genau heissen weis ich nimmer -> müsste man im datenblatt nachschauen ( icmaster.com ->registrierung free )
müsste aber änlich sein

die entsprechende software macht man sich halt mit ZLportio komponente ( ne pas ) die auch unter NT systemen aufn LPT zugreifen kann
und dann gibt man einfach seine daten in serieller form an die register ab und die wiederum mit einem schlag ( über enable ) dann parallel an weis der teufel weiter ( lcd displays, leuchtdioden, relais (mit transistor!), transistoren, usw )
die schnelligkeit ist hervorragend! keine bange

Nightshade 3. Aug 2004 22:29

Re: PCI-Slot: einzelne Pins ansprechen
 
Was hälst du denn davon :

Warrior-24/40

24 bzw. 40 Bit sollten doch reichen oder ?

Ist für USB.

XHelp 3. Aug 2004 23:39

Re: PCI-Slot: einzelne Pins ansprechen
 
Wozu An/Aus per PC steuern? Du kannst auch SEHR kleine schalter einbauen, wenn du das geschickt machst, dann sieht es noch besser, als ohne schlater.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:44 Uhr.

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