Bidirektionaler Parallelport

T

Till Wollenberg

Guest
Hallo!

Ich versuche mich gerade am Bau eines EEPROM-"Brenners" für
den Parallelport. Um möglichst wenig externe Bauelemente zu
verwenden, möchte ich die acht Datenleitungen bidirektional
nutzen.

Soweit ich bisher weiß, lassen sich bei bidirektionalen Ports
(PS/2 oder abwärtskompatiblen ECP- bzw. EPP-Ports) durch Bit
5 mit Steuerregister (Basis + 2) die Datenleitungen auf Eingang
umschalten. Als einfacher Test wird empfohlen, bei gesetztem
Bit 5 Daten an den Port zu schreiben, und gleich darauf
zurückzulesen. Der geschriebene und der gelesene Wert sollten
dabei nicht gleich sein.

Bei meinem Parallelport (Onboard auf aktuellem Mainboard,
unterstützt ECP und EPP) ist Bit 5 vorhanden, allerdings
ändern sich die Pegel an den Datenleitungen nicht, wenn ich
Bit 5 setze. Auch mein Versuch, eine auf +5V gesetzte
Datenleitung mit einem ausreichend großen Widerstand (10K)
auf Masse zu ziehen, änderte nichts am zurückgelesenen Wert.

Hat jemand einen Tip, wie der bidirektionale Modus richtig
angesprochen wird bzw. wie die externe Beschaltung aussehen
müßte, damit es funktioniert?

Gruß, Till.

--
e-mail: wollenberg (at) web (punkt) de
 
Till Wollenberg <till@deadspam.com> schrieb im Beitrag <bgbgf1$mvf83$1@ID-60369.news.uni-berlin.de>...
Ich versuche mich gerade am Bau eines EEPROM-"Brenners" für
den Parallelport. Um möglichst wenig externe Bauelemente zu
verwenden, möchte ich die acht Datenleitungen bidirektional
nutzen.

Man muss das noch freischalten (BIOS bzw. Programm),
und ausserdem funktioniert der Test nicht :)

Gib doch einfach was aus und test per Multimeter das es auch ankommt,
aendere dann Bit 5, schliesse Draehte an (HI und LO) und lese ein,
was ankommt.

P.S.: http://s-huehn.de/elektronik/ (2716-27C8001)
--
Manfred Winterhoff, reply-to invalid, use mawin at despammed.com
homepage: http://www.geocities.com/mwinterhoff/
de.sci.electronics FAQ: http://dse-faq.elektronik-kompendium.de/
Read 'Art of Electronics' Horowitz/Hill before you ask.
Lese 'Hohe Schule der Elektronik 1+2' bevor du fragst.
 
Till Wollenberg wrote:

Hat jemand einen Tip, wie der bidirektionale Modus richtig
angesprochen wird bzw. wie die externe Beschaltung aussehen
müßte, damit es funktioniert?
Schon mal versucht, den Port vorher im BIOS auf EPP umzustellen?

Gruß Lars
 
Hallo!

* "Lars Mueller" <lm@despammed.com> schrieb:

Till Wollenberg wrote:

Hat jemand einen Tip, wie der bidirektionale Modus richtig
angesprochen wird bzw. wie die externe Beschaltung aussehen
müßte, damit es funktioniert?

Schon mal versucht, den Port vorher im BIOS auf EPP umzustellen?
Mein BIOS bietet die Modi "Normal", "EPP", "ECP" und "EPP+ECP".
Ich habe alle ohne Erfolg probiert.

Gruß, Till.

--
e-mail: wollenberg (at) web (punkt) de
 
Hallo!

* "MaWin" <me@privacy.net> schrieb:

Till Wollenberg <till@deadspam.com> schrieb im Beitrag <bgbgf1$mvf83$1@ID-60369.news.uni-berlin.de>...

Ich versuche mich gerade am Bau eines EEPROM-"Brenners" für
den Parallelport. Um möglichst wenig externe Bauelemente zu
verwenden, möchte ich die acht Datenleitungen bidirektional
nutzen.

Man muss das noch freischalten (BIOS bzw. Programm),
und ausserdem funktioniert der Test nicht :)
Mein Port läuft im Moment als "ECP+EPP". Das BIOS bietet
noch "EPP", "ECP" und "Normal". Ich habe alle Modi mit dem
gleichen Ergebnis durchprobiert.

Gib doch einfach was aus und test per Multimeter das es auch ankommt,
aendere dann Bit 5, schliesse Draehte an (HI und LO) und lese ein,
was ankommt.
Habe ich gerade nocheinmal getan: an den Pins liegt genau das an,
was ich ins Datenregister (0x378) geschrieben habe. Die Werte
ändern sich nicht, wenn ich Bit 5 aus dem Steuerregister setze oder
lösche.

P.S.: http://s-huehn.de/elektronik/ (2716-27C8001)
Der ist nett ;), allerdings für meine Zwecke viel zu viel. Ich
plane, den EEPROM über zwei Latches/Buffer (ALS574) für die
Adressleitungen (und den Rest direkt an den Port) anzuschließen.
Falls ich den bidirektionalen Modus nicht zum Laufen bekomme, muss
ich die 8 Datenleitungen über einen LS157 umschalten und mit den
4 am Port vorhandenen Eingängen einlesen. Dazu käme dann noch
ein LS245, um den Datenbus für die Dauer des Lesevorgangs vom
LPT-Port "wegzuschalten."

Gruß, Till.

--
e-mail: wollenberg (at) web (punkt) de
 
Torsten Goetzke wrote:

so einfach ist das mit dem bidirektionalen Mode nicht. Um in den
bidirektionalen Mode zu kommen, legt der Master (Rechner) eine Steuersequenz
an den Port an (die kommt im normalen Druckbetrieb nicht vor) und erwartet
vom Client (dein EPrommer) eine entsprechende Antwort.
Das gilt aber nur für ECP.

Einen normalen (natürlich bidi-fähigen) Port kann man ohne jegliche
Mithilfe irgendeines angeschlossenen Gerätes in den Eingabemodus
schalten.
 
Hallo!

On Thu, 31 Jul 2003 18:34:33 +0200, "Till Wollenberg"
<till@deadspam.com> wrote:

Soweit ich bisher weiß, lassen sich bei bidirektionalen Ports
(PS/2 oder abwärtskompatiblen ECP- bzw. EPP-Ports) durch Bit
5 mit Steuerregister (Basis + 2) die Datenleitungen auf Eingang
umschalten. Als einfacher Test wird empfohlen, bei gesetztem
Bit 5 Daten an den Port zu schreiben, und gleich darauf
zurückzulesen. Der geschriebene und der gelesene Wert sollten
dabei nicht gleich sein.
[...]
Der ECP/EPP-Port muß erst auf "Kompatibilität" mit dem ursprünglichen
bdirektionalen PS/2 Printerport geschaltet werden, bevor er so wie von
Dir beschrieben zwischen Ein- und Ausgang umgeschaltet werden kann:

// LPT im ECP-Control-Register auf PS/2-Mode setzen
// nötig, falls es ein ECP-Port ist
tmp:=PortReadB(printerport+$402);
tmp:=tmp AND $1F;
tmp:=tmp OR $20; // Bidirektionaler Modus = PS/2
PortWriteB(printerport+$402,tmp);
// Jetzt PS/2-Modus eingeschaltet...
// Auf Eingang schalten und abfragen
PortWriteB(printerport+2,$20);
data:=PortReadB(printerport);
//Wieder auf Ausgang
PortWriteB(printerport+2,$0);

printerport ist die Basisadresse des gewünschten LPT-Anschlusses, also
$378 für LPT1, $278 für LPT2

Das ganze klappt mit geeigneten Port-I/O-Treibern auch unter Windows
NT, 2k, etc.

Gruß

Tassilo


--
ľC Assembler-IDE für AVR, 8051, Z80, 8048 =>
http://www.theeg.de/aside/index.html
================================================================
de.sci.electronics FAQ: http://dse-faq.elektronik-kompendium.de/
 
Hallo!

* "Tassilo Heeg" <heeg@ph-cip.uni-koeln.de> schrieb:

On Thu, 31 Jul 2003 18:34:33 +0200, "Till Wollenberg"
till@deadspam.com> wrote:

Soweit ich bisher weiß, lassen sich bei bidirektionalen Ports
(PS/2 oder abwärtskompatiblen ECP- bzw. EPP-Ports) durch Bit
5 mit Steuerregister (Basis + 2) die Datenleitungen auf Eingang
umschalten. Als einfacher Test wird empfohlen, bei gesetztem
Bit 5 Daten an den Port zu schreiben, und gleich darauf
zurückzulesen. Der geschriebene und der gelesene Wert sollten
dabei nicht gleich sein.
[...]

Der ECP/EPP-Port muß erst auf "Kompatibilität" mit dem ursprünglichen
bdirektionalen PS/2 Printerport geschaltet werden, bevor er so wie von
Dir beschrieben zwischen Ein- und Ausgang umgeschaltet werden kann:
[...]
Das war's, jetzt läuft es prima. Vielen Dank!

Gruß, Till.

--
e-mail: wollenberg (at) web (punkt) de
 
Hallo,
woher bekomme ich denn einen Treiber, der unter XP den Zugriff auf die
Parallelschnittstelle erlaubt?

MfG
Helge


"Tassilo Heeg" <heeg@ph-cip.uni-koeln.de> schrieb im Newsbeitrag
news:3kclivc23q687f0vmv2t6on3k54ntg1spm@4ax.com...
Hallo!

On Thu, 31 Jul 2003 18:34:33 +0200, "Till Wollenberg"
till@deadspam.com> wrote:

Soweit ich bisher weiß, lassen sich bei bidirektionalen Ports
(PS/2 oder abwärtskompatiblen ECP- bzw. EPP-Ports) durch Bit
5 mit Steuerregister (Basis + 2) die Datenleitungen auf Eingang
umschalten. Als einfacher Test wird empfohlen, bei gesetztem
Bit 5 Daten an den Port zu schreiben, und gleich darauf
zurückzulesen. Der geschriebene und der gelesene Wert sollten
dabei nicht gleich sein.
[...]

Der ECP/EPP-Port muß erst auf "Kompatibilität" mit dem ursprünglichen
bdirektionalen PS/2 Printerport geschaltet werden, bevor er so wie von
Dir beschrieben zwischen Ein- und Ausgang umgeschaltet werden kann:

// LPT im ECP-Control-Register auf PS/2-Mode setzen
// nötig, falls es ein ECP-Port ist
tmp:=PortReadB(printerport+$402);
tmp:=tmp AND $1F;
tmp:=tmp OR $20; // Bidirektionaler Modus = PS/2
PortWriteB(printerport+$402,tmp);
// Jetzt PS/2-Modus eingeschaltet...
// Auf Eingang schalten und abfragen
PortWriteB(printerport+2,$20);
data:=PortReadB(printerport);
//Wieder auf Ausgang
PortWriteB(printerport+2,$0);

printerport ist die Basisadresse des gewünschten LPT-Anschlusses, also
$378 für LPT1, $278 für LPT2

Das ganze klappt mit geeigneten Port-I/O-Treibern auch unter Windows
NT, 2k, etc.

Gruß

Tassilo


--
ľC Assembler-IDE für AVR, 8051, Z80, 8048 =
http://www.theeg.de/aside/index.html
================================================================
de.sci.electronics FAQ: http://dse-faq.elektronik-kompendium.de/
 
Helge Brüggemann wrote:

woher bekomme ich denn einen Treiber, der unter XP den Zugriff auf die
Parallelschnittstelle erlaubt?
Da gibt's einen namens Userport, DL zum Beispiel hier:
http://www.embeddedtronics.com/design&ideas.html


Hendrik vdH
 
Hallo!

* "Helge Brüggemann" <helge-berlin@gmx.de> schrieb:

woher bekomme ich denn einen Treiber, der unter XP den Zugriff auf die
Parallelschnittstelle erlaubt?

[TOFU gesnippt]
"Driver LINX PortIO" von sstnet (Freeware) bekommst Du hier:
http://www.sstnet.com/ftp/unsupported/port95nt.exe

Eine nette "Anleitung" dazu:
http://koti.mbnet.fi/matjarv/elektron/picprog/dlportio/dlportio.pdf

BTW: Bitte poste kein TOFU. Mehr darüber unter http://learn.to/qoute

Gruß, Till.

--
e-mail: wollenberg (at) web (punkt) de
 
Till Wollenberg wrote:

"Driver LINX PortIO" von sstnet (Freeware) bekommst Du hier:
http://www.sstnet.com/ftp/unsupported/port95nt.exe
Das war leider nichts!

Gruß Lars
 

Welcome to EDABoard.com

Sponsor

Back
Top