Autor |
Parallelport LED-Schaltung + Win+Linux Programm zum ansteuern gesucht. Suche nach: parallelport (321) led (32643) schaltung (31685) |
|
|
|
|
BID = 512070
Elektronic-Fan Neu hier
![](/phpBB/images/stars/star.gif)
Beiträge: 41
|
|
Hi,
ich suche ein Schaltplan und ein Win und Linux - Programm mit dem ich an den 25-poligen LPT-Port (Druckerport) LED anschließen kann und diese dann einzeln ein und ausschalten.
Danke.
[ Diese Nachricht wurde geändert von: Elektronic-Fan am 31 Mär 2008 12:34 ] |
|
BID = 512079
Kleinspannung Urgestein
![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif)
Beiträge: 13373 Wohnort: Tal der Ahnungslosen
|
|
BID = 512086
Elektronic-Fan Neu hier
![](/phpBB/images/stars/star.gif)
Beiträge: 41
|
Hi,
danke für die Links!
Windows:
- Muß ich da immer eine Systemdatei in den Windowsordner kopieren oder ist das nur bei dem Programm so?
- Kann ich wirklich nur 8 Leitungen als Ausgänge nutzten?
- Kann ich noch andere Pins als Eingänge nutzten?
Gruß.
|
BID = 512095
Kleinspannung Urgestein
![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif)
Beiträge: 13373 Wohnort: Tal der Ahnungslosen
|
Zitat :
Elektronic-Fan hat am 31 Mär 2008 13:39 geschrieben :
|
- Kann ich wirklich nur 8 Leitungen als Ausgänge nutzten?
|
So viel ich weiß,ja.Durch einen Trick mit dem Statusregister gehen glaub ich auch 12.
Willst du mehr,wirst du dich wohl mal mit Multiplexing,Decodern u.ä. beschäftigen müssen.
_________________
Manche Männer bemühen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitätstheorie.
(Albert Einstein)
|
BID = 512106
tsaphiel Inventar
![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif)
Beiträge: 3494 Wohnort: Unterfranken (frei statt Bayern!)
|
Eigentlich gehen ziemliche viele, wenn man noch Logikbausteine dahinter klemmt.
_________________
Druff un D'widd!!!
|
BID = 512126
DonComi Inventar
![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif)
Beiträge: 8605 Wohnort: Amerika
|
12 sind möglich.
Mit entsprechenden Logik-ICs und erweiterter Software nahezu beliebig mehr.
_________________
|
BID = 512230
Elektronic-Fan Neu hier
![](/phpBB/images/stars/star.gif)
Beiträge: 41
|
Hi,
danke für die Antworten! Ich habe folgendes wirklich tolle Programm gefunden was das sehr gut zeit was möglich ist mit der LPT ohne weitere Auswertlogig durch IC´s.
Interfacing LEDs using the Parallel Port
http://jaspreetscodezone.blogspot.c......html
Gruß.
|
BID = 512240
DonComi Inventar
![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif)
Beiträge: 8605 Wohnort: Amerika
|
Nun, das ist nichts Neues (siehe unsere Postings).
Viel interessanter ist es doch, den LPT in eigene Software zu implementieren, wenn man low level IO machen will ![](/phpBB/images/smiles/smilie_wink.gif) .
Unter Windows 9x konnte man direkt über IO-Adresse auf die Register zugreifen, unter XP ist dies meines Wissens nur auf Treiberebene möglich, hatte damals die ioport.dll oder so ähnlich als lib genommen.
Unter Linux kannst du die Schnittstelle mit Druckverhalten per /dev/parport0-x lesen und schreiben, aber das ist eher nicht das, was du willst.
Unter linux solltest du dir daher die ioctl.h und linux/ppdev.h
anschauen.
Du öffnest die parport-Gerätedatei, erhälst ein handle, mit dem du dann über ioctl diverse Sachen einstellen kannst.
_________________
|
BID = 512245
Elektronic-Fan Neu hier
![](/phpBB/images/stars/star.gif)
Beiträge: 41
|
Hi,
wau, danke für die tollen Infos! ![](/phpBB/images/smiles/smilie_smile2.gif) Gibts noch mehr?
Was hast du mit dem LPT so alles schönes gebaut?
Zufällig auch Schrittmotoren angesteuert?
So ich habe mal die ersten 8 LED verlötet. Löte ich die die anderen 4 auch einfach so an?
Gruß.
|
BID = 512257
DonComi Inventar
![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif)
Beiträge: 8605 Wohnort: Amerika
|
Moin,
Hab so einiges damit gemacht (typisches IO-Interface ![](/phpBB/images/smiles/smilie_smile2.gif) ), mittlerweile dient der LPT mir nur noch als Programmierschnittstelle.
Ich habe irgendwo auf meinen Platten noch ein Quellkode liegen (C getestet auf linux), mit dem ich allerdings nur einen bestimmten Pin angesteuert habe, dass im Datenregister liegt, ich greife damit also nicht auf Control- und Statusregister zu. Das müsste man aber hinzufügen können. Ich werde den mal suchen, kann aber nicht versprechen, dass ich ihn schnell finde... ![](/phpBB/images/smiles/smilie_biggrin.gif) .
Du solltest die LEDn nicht unmittelbar an den Port anschließen, nimm lieber normale Transistoren als Schalter oder gleich einen Bustreiber (z.b. *244 [74LS244, 74HC244, etc]), die sind dafür geeignet und schützen deinen Port. Zumal du die auch die Last treiben lassen kannst, wenn du pro LED ein/zwei mA beaufschlagst. Theoretisch macht das ja keiner, in der Praxis gehts oft, wenn es auch unsauber und potentiell fehlerträchtig ist.
So weit mir noch im Bewusstsein, gabs 4 oder 5 Eingänge, die intern per Pull-Up nach High gezogen sind. Da hatte ich damals 5 Transistoren, die dann den Kollektor nach Masse geschaltet haben und somit den Dateneingang auf Low gezogen haben.
Aber auch hier ließen sich angesprochene Bustreiber verwenden.
_________________
|
BID = 512264
Kleinspannung Urgestein
![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif)
Beiträge: 13373 Wohnort: Tal der Ahnungslosen
|
Zitat :
DonComi hat am 31 Mär 2008 23:39 geschrieben :
|
Du solltest die LEDn nicht unmittelbar an den Port anschließen, nimm lieber normale Transistoren als Schalter oder gleich einen Bustreiber
|
Diese Aussage solltest du dir hinter die Ohren schreiben
Ein falscher Fehler,und der LPT läßt sich nur mit einem anderen Mainboard wieder zum leben erwecken
_________________
Manche Männer bemühen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitätstheorie.
(Albert Einstein)
|
BID = 512296
DonComi Inventar
![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif)
Beiträge: 8605 Wohnort: Amerika
|
So, hab den Quellkode ("Source" ![](/phpBB/images/smiles/smilie_biggrin.gif) ) gefunden.
Ist in C geschrieben.
Ich habs mal verpackt.
Entpacken machste mit tar -xf.
Danach einfach make ausführen.
Das Kompilat heißt lpt und kann direkt mit make shell oder ./lpt ausgeführt werden.
Das war ursprunglich mal zum Resetten von Mikrokontrollern gedacht, daher sind da Defines drin, die dich nicht stören sollten. Habe in main.c ein kleines, einfaches Beispiel programmiert, dass selbst erklärend ist.
Code : |
printf("Lese Datenregister\n");
unsigned char byte=lpt_data_read();
printf("Lösche Bits/Pins 2, 3 und 7\n");
byte &= ~(1<<OE1_PIN|1<<OE2_PIN|1<<RESET_PIN);
printf("Setze Bits/Pins 4 und 5\n");
byte |= 1<<SCK_PIN|1<<MOSI_PIN;
lpt_data_write(byte);
|
|
Ist aber alles im Paket drin.
Mit make clean kannst du alles bereinigen, es bleiben nur noch das Makefile und die ursprünglichen Quellkodes im Ordner.
_________________
|
BID = 512360
Elektronic-Fan Neu hier
![](/phpBB/images/stars/star.gif)
Beiträge: 41
|
Hi,
hast du noch ein paar weiter Unterlagen oder und sogar Fotots oder Schaltläne von deinen Projecten als Vortlage / Anregung / Fehlsuche?
Gruß.
|
BID = 512446
DonComi Inventar
![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif)
Beiträge: 8605 Wohnort: Amerika
|
Ich babe hier vor mir eine gedruckte Schaltung liegen, die jedwede IO-Möglichkeit des LPT nutzt. Nur: Das Layout fiel in die binären Jagdgründe, als ich mein Windows von der Platte putze, ist also nicht mehr vorhanden.
ZUdem ist die Schaltung alles andere als optimal, das war so ziemlich meine erste gedruckte, und selbstgeätze Platine.
Außerdem hast du dir noch nicht einmal den Quellkode angeschaut.
_________________
|
BID = 512525
DonComi Inventar
![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif)
Beiträge: 8605 Wohnort: Amerika
|
http://www.beyondlogic.org/spp/parallel.htm
Da steht wirklich alles Nötige drin, samt Registerbeschreibungen.
Damit sollte es dir 100% möglich sein, mit unterem Quellkode Status-, Kontroll- und Datenregister zu lesen. Schreiben kann man nur das Kontroll- und Datenregister.
Im Kontrollregister kann außerdem mit dem Setzen von Bit 5 der bidirektionale Modus eingestellt werden, solange es auch der Port ansich unterstützt. Damit hat man wesentlich mehr Eingänge, wenn man den will.
Außerdem kann man per Kontrollregister (Bit0-3) noch vier weitere Pins an- und ausschalten, dabei sind jedoch drei davon mit aktiv-low-Logik, werden also low, wenn man im Register eine 1 schreibt. Nur einer davon ist aktiv high, welcher, steht im Link.
Im Statusregister sind 5 Eingangspins gespiegelt. Auch hier ist auf die Logik zu achten, oft bedeutet eine logische 0 ein gesetzes Bit im Register.
Ich habs eben ausprobiert, mein Programm läuft 100%.
Wenn du es jetzt startest, zeigt es dir alle Bits der drei Register in dualer Schreibweise an.
Dadurch sollte sich doch recht gut erkennen lassen, wie man mit dem Quellkode umzugehen hat. Außerdem kannst du mich fragen.
Vielleicht schreibe ichs mal nach C++ um, schön verpackt in eine Klasse und entwerfe eine einfache Oberfläche (Qt). Aber irgendwie ist es in der Konsole doch schöner ![](/phpBB/images/smiles/smilie_wink.gif) .
Im Anhang der Quellkode und ein Bild.
Dies zeigt das Interface, es lag in einer alten Kiste, und war an vielen Stellen gebrochen (Lötaugen), daher macht es einen merkwürdigen Eindruck. Man sieht 12 LEDn samt Treiber. Außerdem ohmsche Sensoren für die Eingänge, die werden mit dem Schmitttrigger zu sauberen Impulsen geformt und steuern die fünf NPN-Transistoren an, welche wiederum die Statusleitungen nach Masse ziehen.
Pläne habe ich keine mehr, ist aber auch unnötig, da das alles kein Geheimnis ist (obwohl ich "damals" alles selbst ermessen und -probt habe....)
_________________
|