Line Printer Treiber - LPTport

  • 1
  • 2
  • Page 1 of 2
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2134
Registered: 03 / 2003
Subject:

Line Printer Treiber - LPTport

 · 
Posted: 26.04.2017 - 11:44  ·  #1
Hallo @ all,

ich bin grad ein bisschen am Verzweifeln: Habe eine Schaltung gebaut, die den LPTport verwendet, Ausgabe via I2C PCA9555, Daten stammen von einer SD-Karte ..... funktioniert hervorragend, nur zu langsam. Also .....
nochmal layoutet, diesmal Ausgabe via PortB (Daten) und PortD (Statusleitungen), Rest der Schaltung identisch. Beide Schaltungen mit einem Mega1284 aufgebaut. Nur bei der 2. Schaltung kommt absolut nichts raus.

Hab mir gestern extra noch einen Adapter Centronics --> LogicAnalyser gebaut und sehe .... nix :(

Muß denn da ein Drucker angeschlossen sein, damit man was sieht? Bei der Version mit dem PCA9555 geht es auch ohne angeschlossenen Drucker.

Leider komme ich erst am Woende zum weiter machen und werde da mal einfach mal nur ein Bitmuster auf die beiden Ports schicken. Wenn das geht: Druckerausgabe nur eines Bytes in einer Schleife (nicht von SD-Karte). Wenn auch das geht, versteh ich die Welt nicht mehr .....

Könnte es sein, daß der LPTport mit der Ausgabe über zwei µC-Ports Probleme hat? Verwendet das einer von euch? Verwendet das überhaupt noch jemand? ;)

Gruss
Harry
rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: Line Printer Treiber - LPTport

 · 
Posted: 26.04.2017 - 14:58  ·  #2
Hallo Harry,

der LPT Port braucht zwei Ports, egal ob I2C oder AVR,
eins für 8bit Daten und eins für Steuer bzw. Statusleitungen.

rolf
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2134
Registered: 03 / 2003
Subject:

Re: Line Printer Treiber - LPTport

 · 
Posted: 26.04.2017 - 15:57  ·  #3
Hallo Rolf,

ja ist bekannt. Per I2C geht es auch nur mit den uC-Ports direkt kommt nichts raus. Ich hoffe am Woende kann ich ein paar Tests machen und dann auch ein Beispielprogramm posten.

Gruss
Harry
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2134
Registered: 03 / 2003
Subject:

Re: Line Printer Treiber - LPTport

 · 
Posted: 27.04.2017 - 18:11  ·  #4
Hi Rolf,

ich konnte heute mal testen:
Code

Program LPT;


{$NOSHADOW}
{ $WG}                     {global Warnings off}

Device = mega1284P, VCC=5;
{ $BOOTRST $0F000}         {Reset Jump to $0F000}

Import SysTick, LPTPort;

From System Import;

Define
  ProcClock      = 8000000;       {Hertz}
  SysTick        = 10;             {msec}
  StackSize      = $0200, iData;
  FrameSize      = $0200, iData;

  LPTport        = PortB, PortD;

Implementation
{$IDATA}
{------------------------------------------------------------------------------}
{ Var Declarations }

{------------------------------------------------------------------------------}
Procedure Start;                                 // Initialisierung
  Var c1:Byte;
  Begin
    DDRB:=$FF;
    DDRD:=$FF;
    //Repeat                                     // funktioniert
    //  PortB:=%01010101;
    //  PortD:=%10101010;
    //  until false;

    //For C1:=0 to 255 do                        // funktioniert
    //  PortB:=C1;
    //  PortD:=C1;
    //  mDelay(100);
    //  PortB:=0;
    //  PortD:=0;
    //  mDelay(100);
    //  EndFor;

    For C1:=0 to 255 do                          // nichts :o(
      Write(LPTOut,'Zwetschgendatschi');
      mDelay(100);
      EndFor;

  End Start;
{------------------------------------------------------------------------------}
{ Main Program }
{$IDATA}
Begin
  EnableInts;
  Start;
  Loop
    EndLoop;
End LPT.

DDRB und DDRD nur bei den beiden manuellen Ausgaben: diese funktionieren ja auch :)

Mit LPTout kommt absolut nichts an den Ports raus. Ich habe hier dann doch mal die DDR für die Daten- und Statusleitungen manuell und richtig gesetzt: geht trotzdem nix.

Meine erste Schaltung, bei der ich via I²C mit einem PCA9555 ausgebe, funktioniert alles. Nur wenn ich die Ports des µC direkt verwende kommt absolut nichts raus :(.

Angeschlossen war ein 16-Kanal Logikanalyser.

Ach ja ich hab dann auch noch IpSelected und IpBusy auf GND gezogen: geht auch nicht.

Gruss
Harry

[Edit]Natürlich habe ich auch eine Byte-Ausgabe mit LPTout getestet - auch das hat nicht funktioniert.
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2134
Registered: 03 / 2003
Subject:

Re: Line Printer Treiber - LPTport

 · 
Posted: 29.04.2017 - 11:36  ·  #5
Hi Rolf,

also nach mehreren Stunden Simulator (irgendwann muß ich mich ja mal damit befassen :D), muß ich sagen: Bei Ausgabe über µC-Ports kommt definitiv nichts raus.

Gruss
Harry
rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: Line Printer Treiber - LPTport

 · 
Posted: 29.04.2017 - 16:32  ·  #6
Hallo Harry,
tief durchatmen :tanz:
Ich kümmere mich darum.

rolf
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2134
Registered: 03 / 2003
Subject:

Re: Line Printer Treiber - LPTport

 · 
Posted: 29.04.2017 - 16:51  ·  #7
Hi Rolf,

das freut mich. Kannst du mein Problem bestätigen?

Gruss
Harry
rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: Line Printer Treiber - LPTport

 · 
Posted: 29.04.2017 - 19:03  ·  #8
Hallo Harry,
Code
Begin
  DDRB:=$FF;  //<<<<<<<<<<<<
  DDRD:=$FF;  // <<<<<<<<<<<
  For C1:=0 to 255 do                          // nichts :o(

das geht so nicht. Der Compiler setzt die Ports schon richtig!!!

Dann noch das Handbuch lesen :angry1:
Die Applikation sollte erst anfangen zu Drucken, wenn das lpSelected Bit aktiv und das lpPaper Bit inaktiv ist.

Und LPTinit nicht vergessen.
Zur Kontrolle mal den LPTstatus im SIM abfragen...

Dann tuts bei mir !!

rolf
  • 1
  • 2
  • Page 1 of 2
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 14 · Cache Hits: 14   136   150 · Page-Gen-Time: 0.037984s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI