Anzeige:
Seite 3 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 31 bis 45 von 55

Thema: Tutorial zum Parallelport ...

  1. #31
    Benutzter Registrierer
    Registriert seit
    Feb 2004
    Beiträge
    2.281
    Moin,

    Zitat Zitat von nobody0
    Fehlerkorrektur und Gray-Code sind zwei verschiedene Dinge; die haben nix mit einander zu tun. Gray-Codierung ist nur eine robuste Codierung, bei der jeweils maximal ein Bit kippen kann und das bedeutet im worst case nur eine Phasenverschiebung, aber niemals einen falschen Wert.
    Stoehn! Ich glaub', wir drehen uns ein wenig im Kreis. Jaaaaa - es kann nur ein Bit kippen, aber nur wenn ich mich auf diese +/-1 Bedingung beschraenke, was dann zur Folge hat, dass ich, wenn ich dieses Feature ausnutzen will, nur mit recht niedrigen Eingangsfrequenzen - wie im letzten Post durchgerechnet - arbeiten darf. Sonst geht eben diese Eigenschaft des Graycodes verloren.

    Zitat Zitat von nobody0
    Unsinn;
    Welch' starkes Wort
    Zitat Zitat von nobody0
    wenn mit 400 kHz vom Parallelport gelesen wird, hat das mit Sample-Frequenz des AD-Wandlers nix zu tun. Und wenn der AD-Wandler mit 4 MHz und Speed-Gray arbeitet, wird die durch Gray-Kodierung bedingte Nicht-Exaktheit der Ausgabe vernachlässigbar, denn mehr als 200 kHz kann man ohnehin nicht auflösen und die sind mit 4 MHz Speed-Gray sehr genau verfolgbar.
    Mit Verlaub - bei obenstehendem will sich mir beim besten Willen nicht der Sinn erschliessen. Was nuetzt mir denn ein schneller AD-Wandler, der mit 4MSamples/sec wandelt, wenn ich bloss jedes 10. Sample einles'? Das ist doch rausgeschmissenes Geld.
    Beispiel: Ich sample mal ein 100 KHz dreieckartiges Signal(lassen sich die Samples leichter im Kopf rechnen, als beim Sinus) mit einem 4MSamples/sec (von mir aus 12 bit) Wandler, dann fallen hinten folgende Werte raus:

    Code:
    0,100,200,300,400,500,600,700,800,900,
    900,800,700,600,500,400,300,200,100,0,
    0,-100,-200,-300,-400,-500,-600,-700,-800,-900,
    -900,-800,-700,-600,-500,-400,-300,-200,-100,0,usw.
    Davon les' ich jetzt nur jedes 10. Sample (also mit 400 KSamples/sec) ein; im PC kommen also z.b. an:
    Code:
    0,900,0,-900
    So, jetzt bin ich zu faul +900 und -900 in Graycode umzurechnen, aber wie willst du aus solchen Werten noch irgendwie erkennen koennen, obs nicht vielleicht doch ein anderer Wert war?
    Und wozu muss der arme AD-Wandler sich so beeilen, und 10 Samples wandeln, von denen du eh' bloss eines einliest?

    Zitat Zitat von nobody0
    Nach gray code counter oder grey code counter suchen ...
    Oha, ich glaub' ich hab' was gefunden:

    http://www.ornl.gov/sci/engineering_.../phenixadc.pdf

    Jetzt wird mir auch klar, woher du dein AD-Wandlerbeispiel hast.
    Aber: Der graycode wird nur wandlerintern verwendet, dort genau aus den Gruenden, die du anfuehrst, naemlich dass sich beim Zaehlen immer nur ein Bit aendern kann.
    Dafuer ist der Graycode auch genau die richtige Wahl, nur - wie du in Fig.1 in dem pdf sehen kannst, ist da noch auf der rechten Seite ein Gray-Binary-Decoder, der den bei der Wandlung festgestellten Zaehlerstand wieder auf binaer bringt. D.h. irgendwo chipintern kanns sein, dass ein AD-Wandler mit graycodes arbeitet. Dort aus gutem Grund.
    Kann aber genausogut sein, dasses ein Sigma-Delta Wandler ist, oder dass da ein Aeffchen mit 'nem Voltmeter und 'ner 10er Tastatur hockt, das ist eigentlich voellig wurscht.
    Denn nach aussen hin - sprich: Zum Parallelport des PC hin bietet der Graycode eben so gut wie keinerlei Vorteile mehr, deshalb isses nicht so clever, den an der Stelle verwenden zu wollen...

    Gruss
    WK
    Das ist aber zu viel zum Lesen und ich will, dass er einfach kompeliert!

  2. #32
    Registrierter Benutzer
    Registriert seit
    Mar 2001
    Beiträge
    1.397
    Zitat Zitat von derguteweka
    Jaaaaa - es kann nur ein Bit kippen, aber nur wenn ich mich auf diese +/-1 Bedingung beschraenke, was dann zur Folge hat, dass ich, wenn ich dieses Feature ausnutzen will, nur mit recht niedrigen Eingangsfrequenzen - wie im letzten Post durchgerechnet - arbeiten darf.
    Bei Speed-Gray nicht; da hat man wesentlich mehr.
    Für Zähler ist das Verfahren optimal, da sich deren Stand immer um +-1 ändert.
    Bei AD-Wandlern ist es ähnlich, wenn sich das Eingangssignal, bezogen auf die Sample-Frequenz nicht stark ändert, denn die Ungenauigkeit durch die Speed-Gray-Codierung geht dann im Rauschen unter.
    This is a manual signatur virus. Distribute me!

  3. #33
    Benutzter Registrierer
    Registriert seit
    Feb 2004
    Beiträge
    2.281
    Moin,

    Zitat Zitat von nobody0
    Bei Speed-Gray nicht; da hat man wesentlich mehr.
    Für Zähler ist das Verfahren optimal, da sich deren Stand immer um +-1 ändert.
    Bei AD-Wandlern ist es ähnlich, wenn sich das Eingangssignal, bezogen auf die Sample-Frequenz nicht stark ändert, denn die Ungenauigkeit durch die Speed-Gray-Codierung geht dann im Rauschen unter.
    Den Sinn dieser ganzen Tricks bezweifel' ich ja garnicht, solange es ADC intern zugeht. Aber die nuetzen alle nix mehr, wenn der ADC sein Analogsample endlich (gerne mit Hilfe von Trick17 - Trick258) in einen N-Bit Wert gewandelt hat und der dann irgendwie via Parallelport in den PC huschen soll
    Da ist dann die Verwendung von irgendwelchen von Jungfrauen waehrend Neumond entwickelten Hyperspeed-codes bestenfalls ein hilfloses rumdoktoren an Symptomen und keine geniale Loesung.
    Darum gehts mir doch nur die ganze Zeit.

    Gruss
    WK
    Das ist aber zu viel zum Lesen und ich will, dass er einfach kompeliert!

  4. #34
    Registrierter Benutzer
    Registriert seit
    Mar 2001
    Beiträge
    1.397
    Das stimmt nicht. Beispielsweise wird mit Gray-Code der Drehwinkel gemessen und gray-codiert ausgegeben, bei den Absolute Rotary Encoders:
    http://www.inotek.com/Catalog/omron7cn.html

    Deshalb werden Winkel meistens mit Gray-Kodierung gemessen:
    http://www.peg.si/electro/angle.html

    Ob nun Winkelschritte oder Pulse von einem Geigerzähler gezählt werden, ist dabei egal.
    Beim ADC +Tiefpass +Speed-Gray ist es nicht viel anders.

    Edit: Im worst case sind alle N Bis zu kippen, so dass beim Speed-Gray die Quelle mindestend N-mal schneller getaktet sein muss, wenn die Werte trotz Gray-Codierung EXAKT ohne Takt übertragen werden.
    Bei den 400 kHz Lese-Frequenz und N=13 (Bit) braucht man also eine Sample-Frequenz von 5,2 MHz, die bei den oben angegebenen 6 ns Setuptime völlig problemlos sind.
    Geändert von nobody0 (21.11.05 um 19:46 Uhr)
    This is a manual signatur virus. Distribute me!

  5. #35
    .
    Registriert seit
    Oct 2001
    Ort
    Oberbayern
    Beiträge
    2.281
    also ich habe mir jetzt mal so einen relais bausatz am parport besorgt und mir die software selbst geschrieben, und ich muss sagen es funzt
    allerdings habe ich einen einfacheren code für das setzen der daten-bits am parport verwendet als hier geposted.
    stichworte für den code:
    ioctl
    ioctl_list
    open
    write
    close
    /dev/lp0

    greetz
    Core i3 | 2x3tb btrfs-raid1 | 2x2tb sw-raid1+lvm2

  6. #36
    Registrierter Benutzer
    Registriert seit
    Mar 2001
    Beiträge
    1.397
    Den Code kannst Du ja mal anhängen
    This is a manual signatur virus. Distribute me!

  7. #37
    .
    Registriert seit
    Oct 2001
    Ort
    Oberbayern
    Beiträge
    2.281
    dies will ich eigentlich nicht, da dort der lerneffekt 1. weg ist, und 2. sehr einfach nachzuvollziehen ist...
    1. du musst einen open auf das /dev/lp0 device machen (readwrite zum beispiel)
    2. du musst ein byte so modifizieren, dass dort die gewählten bits auf 1 sind, die auf 1 sein sollen also ala:
    char x = 0;
    x = x | 128; // für das letzte bit
    x = x | 1; // für das erste bit
    3. einen write(filehandle,&x,1)
    4. close vom device

    für einen "reset" der pins gibts 2 möglichkeiten
    1. echten reset über ioctl, heißt dass man mit ioctl LPRESET setzen muss, und danach 1 byte in lp0 schreiben muss (inhalt des bytes egal), um einen echten reset durchzuführen
    2. ohne ioctl einfach obiges x auf 0 lassen und dies schreiben, setzt allerdings nur die datenbits zurück

    greetz

    ps: ein echo -n 1 > /dev/lp0 hat auch einen effekt auf die datenbits...
    Geändert von quinte17 (20.03.06 um 14:11 Uhr)
    Core i3 | 2x3tb btrfs-raid1 | 2x2tb sw-raid1+lvm2

  8. #38
    Registrierter Benutzer
    Registriert seit
    Mar 2001
    Beiträge
    1.397
    Ok, aber damit bekommt man keine 16- und 32-Bit-Zugriffe hin. Wenn man z. B. alle 12 Ausgangs-Pins nutzen will, reicht das nicht aus.
    This is a manual signatur virus. Distribute me!

  9. #39
    .
    Registriert seit
    Oct 2001
    Ort
    Oberbayern
    Beiträge
    2.281
    Das habe ich auch nicht behauptet habe ja immerhin nur von den datenbits gesprochen. und die kann man damit schalten.
    was sind denn die anderen 4 ausgangsports?
    pin 1,14,16,17 ?
    naja, mit LPCAREFUL kann man zumindest 14,16,17 auf high schalten... darf halt 15 kein high zurückgeben..
    was ist mit pin 1 eigentlich gemeint, wenn da in den spezifikationen steht:
    strobe: Datenübergabe;Daten müssen bei 0-Signal gültig sein
    hat dies was mit timing zu tun? also des strobe schaltet ständig zwischen 1 und 0, bei 1 werden die daten geändert, und bei 0 darf der drucker sich die holen oder?

    greetz
    Core i3 | 2x3tb btrfs-raid1 | 2x2tb sw-raid1+lvm2

  10. #40
    Registrierter Benutzer
    Registriert seit
    Mar 2001
    Beiträge
    1.397
    Die 4 anderen Ausgangsports unterscheiden sich eigentlich nicht, außer dass ein Pin invertiert ist.
    Das mit Timing und so gehört zum Centronics-Drucker, also einer speziellen Anwendung des Parallelports.
    This is a manual signatur virus. Distribute me!

  11. #41
    Registrierter Benutzer
    Registriert seit
    Jul 2006
    Beiträge
    10
    Hab mir mal einen Schaltplan für eine Relaiskarte erstellt.
    Habe vor, mit dem LPT-Port (über die 8 Pins) meine Relais zu schalten.

    Würde euch bitten, mal einmal kurz über den Schaltplan rüberzugucken, ob ich alles richtig gemacht habe, vorallem beim ansteuern der Transistoren bin ich mir nicht sicher, ob das so geht.

    Vielen Dank im voraus.
    Vg Marcel.


  12. #42
    Registrierter Benutzer
    Registriert seit
    Mar 2001
    Beiträge
    1.397
    Die Diode ganz rechts, an GND, muß weg und die Diode ganz links, an -, ist überflüssig; die nimmt nur unnütz Spannung weg.
    Und die Dioden an den Transistoren sind falsch gepolt; die müssen umgedreht werden.
    This is a manual signatur virus. Distribute me!

  13. #43
    Registrierter Benutzer
    Registriert seit
    Jul 2006
    Beiträge
    10
    vielen dank für deine antwort.
    aber ansonsten müsste es funktionieren, werd nochmal rüberschauen. die diode vom GND weg hab ich extra dort so platziert, dass keine Elektronen der 12V DC auf den GND vom LPT prallen.

    eine diode lässt doch den strom nur in richtung des Pfeils durch, oder? weil dann müssten die Dioden von den Collectoren der Transistoren richtig gepolt sein, oder nicht?

  14. #44
    Benutzter Registrierer
    Registriert seit
    Feb 2004
    Beiträge
    2.281
    Moin,
    Zitat Zitat von misrax
    eine diode lässt doch den strom nur in richtung des Pfeils durch, oder?
    Ja, aber da zaehlt die technische Stromrichtung, also von + nach - . Tatsaechlich "wandern" aber die Elektronen von - nach +.

    Allgemein wegen Schaltbildern fuer Relais am Parallelport: Einfach mal googlen danach, ich glaub' es gibt im www fuer nichts anderes elektrisches mehr Bauanleitungen, als fuer diese bekloppten Relais am Parport

    Gruss
    WK
    Das ist aber zu viel zum Lesen und ich will, dass er einfach kompeliert!

  15. #45
    Registrierter Benutzer
    Registriert seit
    Jul 2006
    Beiträge
    10
    jetzt brauch ich nur noch den richtigen transistor.

    dort gibts ja unendlich viele versch. typen!

    Suche nen Transistor, mit dem ich Lasten / Ströme von 12V bei 0,5A mit 4,75V bei 3,4mA schalten kann.
    Demnach fällt glaube die BC-Reihe aus.
    12V * 0,5A sind 6W, also bräuchte ich glaube einen aus der BD-Reihe.
    aber welchen?

Ähnliche Themen

  1. Kein Parallelport unter Cups/Kernel-2.6.8
    Von DERRICHTER im Forum System installieren und konfigurieren
    Antworten: 5
    Letzter Beitrag: 14.09.04, 17:01
  2. Bluetooth und Motorola v525 Tutorial
    Von City][Sepp im Forum Tipps und Tricks
    Antworten: 7
    Letzter Beitrag: 20.05.04, 15:54
  3. Laptop - Ethernet (Parallelport) - Kernel 2.4.18
    Von comrad im Forum System installieren und konfigurieren
    Antworten: 0
    Letzter Beitrag: 19.03.02, 11:06
  4. parallelport
    Von Linuxexplorer im Forum System installieren und konfigurieren
    Antworten: 2
    Letzter Beitrag: 09.01.02, 12:29
  5. Vernünftiges Firewall Tutorial für IPTables
    Von Catonga im Forum Linux als Server
    Antworten: 6
    Letzter Beitrag: 20.08.01, 18:52

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •