PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Parallele Schnittstelle



rup
24-01-2001, 23:45
Hallo

wie übertrage ich Daten an die Parallele Schnittstelle? Wie kann ich einzelne Datenleitungen der Parallelen Schnittstelle auf high oder low setzen? gibt es dafür eine Funktion?
Kennt jemand von euch eine Seite wo man Infos findet?

Gruß Rupert

thommy
25-01-2001, 13:14
http://www.lvr.com/parport.htm

Thomas

rup
25-01-2001, 16:05
Hallo Thomas

danke für deinen Link. Ich möchte einen Roboter mit Schrittmotoren über die Parallele Schnittstelle ansteuern. http://www.fbi.fh-darmstadt.de/~mani/labor/mi2/167/sekuria.htm
Der Roboter sendet keine Daten sondern erwartet nur welche. Zum Roboter gehen 8 Datenleitungen und eine Masse. Um die Motoren in Bewegung zu setzen müssen bestimmte "Muster" auf den Datenleitungen liegen. Ich habe zum Roboter eine Schnittstellenbeschreibung, ein PAP und ein Programm (Assembler für einen uralten nicht-PC) wo alles einigermaßen erklärt ist.
Kann ich das Teil unter Linux mit C ansteuern? Kann ich unter Linux direkt auf die Parallele Schnittstelle zugreifen oder geht das nur unter Dos? Ist das für einen C-Anfänger überhaupt realisierbar???

Gruß Rupert

25-01-2001, 17:01
Guck mal nach http://www.circlemud.org/~jelson/software/parapin/

Dort gibts genau die Library die Du brauchst.

/*
Noch ein wichtiger Tipp:
sehr nuetzlich ist immer eine Funktion die den Roboter komplett stoppt. Dann diese Funktion mit atexit und fuer SIGSEGV und SIGTERM und SIGINT einen signal-handler, der diese ausfuehrt und das programm beendet.

Huch, sind ja schrittmotoren, da ist das wohl unnoetig.
*/

Was muss das Programm denn alles koennen?
Wie zeitkritisch ist das ganze?

Mein Vorschlag waere alles zeitkritische
in C-Funktionen packen und die dann in ein Skriptsprachen-Modul (Perl/Python/TclTK/etc... ). Mit SWIG http://www.swig.org geht sowas sehr einfach.
Skriptsprachen sind einfach flexibler fuer eine schnelle Programmierung und Anpassung der Ansteuerung. Und man muss kein C lernen (auch wenn das kein Fehler ist)

Bei weitergehenden Fragen einfach mail an mich.



[Dieser Beitrag wurde von jgbauman am 25. Januar 2001 editiert.]

26-01-2001, 16:43
bevor Du Dir Deinen Para-Port schießt, löte Dir doch schnell zwei kleine Opto-Koppler (z.B. ILQ 74 von Reichelt, Seite 72, 2.15DM/Stück) mit 1k2-Widerständen auf Eingangsseite an ein Kabel zw. Rechner und Robo. Am besten gesockelt. Damit hast Du wenigstens deinen PC geschützt, falls doch mal ein etwas zu hoher Strom fließen sollte, der Paraport "packt" nämlich nur wenige mA (ca. 2-5)!
Kann Dir wenn Du willst ein Datenblatt von dem ILQ mailen...

Sion

rup
26-01-2001, 20:01
Hallo

@jgbauman
Danke für deinen Link's und Tipp's, das mit parapin hört sich nicht schlecht an hab mich gerade etwas eingelesen.
Der Roboter sollte anfangs auf Tastendruck reagieren, jeder Motor sollte mit 2 Tasten bedienbar sein. Ich glaube falls sich die Motoren einmal bewegen ist alles weitere nicht mehr so wild. Ich möchte anschließend einen Referenzpunkt speichern (bestimmte Armstellung des Roboters) und von da an alle weiteren Bewegungen zählen um weitere Punkte zu speichern, die er dann selbstständig abfährt. Ich möchte eigentlich alles in C machen, auch um es etwas besser zu lernen.

@Sion
meinst du das die Robotersteuerung zu viel Strom brauchen könnte? Bisher lasse ich den Roboter über die Parallele Schnittstelle seines Steuercomputer laufen (ein uralter großer schwarzer Koffer mit 3MHz und 5KByte Ram) da gibt es kein Probleme, oder vertragen die neuen Schnittstellen weniger? Das Datenblatt zum Optokoppler habe ich im Netz gefunden. http://home.t-online.de/home/bartels.joerg/Links/ILQ74.pdf

Danke und Gruß Rupert

26-01-2001, 20:50
@rup:
parapin ist eine verdammt schöne Sache, vor allem wenn man Kleinigkeiten wie z.B. LED's anschließen möchte!
Was die Optokoppler angeht - ich weiß ja nicht ob Du da was fertiges hast, was sicher ist, oder ob du selbst dran rumlötest. Wenn ja, würde ich auf jeden Fall die 5 Märker investieren, dann bist du auf der Sicheren Seite! Es ist halt verdammt ärgerlich sich eine Paralellportkarte zu kaufen (ISA oder PCI) und damit nur unnötig Slots zu verschwenden, nur weil der Chipsatz-interne geschossen ist!
Was die Belastbarkeit angeht sind die neuen eher flexibler als die alten.

Gruß,
Sion

rup
27-01-2001, 08:59
Hi Sion

rumgeloetet habe ich an dem Teil nicht. Und der Roboter wurde auch fuer die parallele Schnittstelle gemacht, ich glaube kann das Risiko eingehen und auf den Optokoppler verzichten. Gibt es eigentlich eine Moeglichkeit zu Testen was an der Schnittstelle rauskommt z.B. mit Leuchtdiode (Widerstand?) zwischen Datenleitung und Masse? Einen Interface-Tester wie fuer RS232 scheint es ja nicht zu geben.

Rupert

27-01-2001, 17:58
Du kannst ja mal versuchen, eine LED zwischen Masse und Signal zu hängen, natürlich mit Vorwiderstand (~1k). Wenn sie nicht leuchtet umdrehen, falls immer noch nicht vielleicht einen etwas kleineren Widerstand.
Messen schadet auch nie :-) sollte so zw. 2.5 und 5 V "rauskommen".
Alle meine Boards haben schon Vorwiderstände, so daß die LED eigentlich nichts kaputt machen sollte, aber benutze aber trotzdem nochmal welche.
Low current LED's sollten auch hell genug leuchten bzw. selbst ohne Vorwiderstand nicht zu viel Strom verbrauchen.
Welcher pin Masse/Signal ist kannst Du ja auf einer der vielen Seiten nachlesen, auf die hier gelinkt wurde.

Sion

PS: Du solltest natürlich schon vorher sicherstellen, daß an den Pins auch ein Signal anliegt, sonst bringt alles Messen nichts ;-)

[Dieser Beitrag wurde von Sion am 27. Januar 2001 editiert.]

christophwth
28-01-2001, 02:17
Hi

soory.. wenn ich mich zwischen schalte.

<font color="#772222">Aber ich würde den Parport auf Keinen Fall auf diese Art und Weise testen.</font>

Weil es 1. Riskant ist wenn die Diode zuviel
Strom zieht (das kann auch Durch einen zu kleinen Widerstand passieren )

2. Weil die Aussage die du von einer leuchtenden Diode ableiten kannst nur die ist, daß der Strom ausreiched war die Diode zum leuchten Leuchten zu bringen.

Am besten in die Spezifikationen des Chip-Herstellers schauen wieviel Strom
die Dinger treiben können.

Dabei sind high und low Pegel meist unterschiedlich.

Um den Parport auf Fehler zu übersprüfen
lieber mit einem Multimeter alle 8 Leitungen
durchmessen (Einmal mit High-Pegel und mit Low-Pegel)

Gruß
Christoph

rup
28-01-2001, 13:49
Hallo

danke fuer Eure Antworten. Ich wollte eigentlich nicht die Funktion der Schnittstelle messen, das die funzt weiss ich, ich wollte sehen ob das Prog die Datenleitungen auf High oder Low setzen kann. Das werde ich wohl besser mit dem Voltmeter machen.

Gruss Rupert

rup
30-01-2001, 17:20
Hallo

das mit parpin funzt super und mit dem Voltmessgeraet kann ich die Pins auch gut messen. Danke nochmal fuer eure Hilfe

Gruss Rupert