Autor |
Frage zum an legen eines 5Volt Gleichstroms an die serielle Schnittstelle |
|
|
|
|
BID = 414644
wonder75 Gerade angekommen
Beiträge: 5
|
|
Hallo,
gleich vorweg, ich bin ein absoluter Neuling in Elektronikdingen und habe keinerlei Ahnung. Ich weiß, schlechte Voraussetzungen, aber vielleicht kann mir ja trotzdem jemand helfen.
Mein Problem.
Ich bekomme über einen Draht ein Signal, 5V+ Gleichstrom.
Dieses Signal soll über die serielle Schnittstelle erkannt werden. Also quasi: Auf dem Draht fließt Strom, auf der seriellen Schnittstelle kommen auf einem Pin auslesbare Daten an. Ob das nun Kauderwelsch ist oder nicht ist egal. Es muss nur irgendetwas ankommen.
Das Auslesen auf PC-Seite ist kein Problem, programmieren kann ich ein wenig. Mein Problem ist eher ein Verständnisproblem im Hinblick auf die Verkabelung.
Ich habe gelesen, dass auf der Seriellen Schnittstelle ein Strom von -5V eine logische 1 ergibt, also genau das was ich haben möchte.
Habe auch bei weiterer Recherche herausgefunden, dass es ein Bauteil MAX232 gibt, dass positive Ströme in negative umwandelt.
Ist das alles was ich brauche oder stelle ich es mir zu einfach vor?
Also meine "Idee" :
Leitung 5V+ ----> MAX232 -- umgewandelt in 5V- -> Ein Pin an der seriellen Schnittstelle.
Falls es so funktionieren kann gleich noch eine Frage. An welche Pins schliesse ich die beiden Drähte am Com-Port an. Einfach den einen an einen Dateneingangskanal und den anderen an Erde?
Danke für Eure Hilfe!
wonder
|
|
BID = 414649
wonder75 Gerade angekommen
Beiträge: 5
|
|
BID = 414662
perl Ehrenmitglied
Beiträge: 11110,1 Wohnort: Rheinbach
|
Zitat :
| dass es ein Bauteil MAX232 gibt, dass positive Ströme in negative umwandelt. |
Der MAX hat damit nichts zu tun.
Die Norm verlangt, daß Spannungen zwischen -15V und -3V als 1 erkannt werden und solche zwischen +3V und +15V als 0.
Dementsprechend werden die Senderchips, die übrigens kurzschlussfest sind, üblicherweise mit +12V und -12V versorgt. Wenn diese Spannungen nicht zur Verfügung stehen, kann man einen Chip wie den MAX232 nehmen, der sich mittels einer Ladungspumpenschaltung etwa +8V und -8V aus der +5V Versorgung "selbermacht".
Wie gesagt, müssen die Empfänger nur alles, was ausserhalb des Fensters von -3V..+3V liegt, sicher zuordnen können.
In der Praxis treffen sie ihre Entscheidung meist bei etwa +1,5V.
P.S.:
Bitte achte etwas auf dir richtige Verwendung der Begriffe:
Spannungen werden in Volt, Abkürzung V, angegeben und Ströme in Ampere, abgekürzt A.
_________________
Haftungsausschluß:
Bei obigem Beitrag handelt es sich um meine private Meinung.
Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.
Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !
[ Diese Nachricht wurde geändert von: perl am 16 Mär 2007 17:46 ]
|
BID = 414664
wonder75 Gerade angekommen
Beiträge: 5
|
Dankeschön. Aus Deiner Antwort schließe ich, dass ich auf dem richtigen Weg bin? Oder gibt es noch einen Denkfehler?
|
BID = 414667
perl Ehrenmitglied
Beiträge: 11110,1 Wohnort: Rheinbach
|
Du schreibst ja nicht, was die Alternative zu +5V ist.
Meist wird es wohl genügen, wenn du zwischen 0V und +5V hin und herschaltest. Eine negative Spannung brauchst du dann nicht.
Du kannst das ja auch einfach testen.
Zitat :
| An welche Pins schliesse ich die beiden Drähte am Com-Port an. Einfach den einen an einen Dateneingangskanal |
Der Dateneingang RxD ist nicht geeignet, weil er in ein Schieberegister geht und nicht direkt abfragbar ist.
Besser du verwendest einen der Eingänge für Handshake-Signale CD, CTS, DSR, die du im Statusregister des UART abfragen kannst.
_________________
Haftungsausschluß:
Bei obigem Beitrag handelt es sich um meine private Meinung.
Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.
Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !
|
BID = 414685
Brizz Stammposter
Beiträge: 386 Wohnort: Rheine
|
Früher hatten die Rechner noch Parallelschnittstellen, z.B. LPT1. Die konnte man gut für solche Zwecke missbrauchen. Die Software dazu kann man schreiben, wenn man die Datenblätter des Chips 8255 gelesen hat. Da kann man die Pins des Parallelports als Ein- bzw. Ausgänge programmieren,und setzen bzw. lesen. Die Pegel sind 0V bzw. 5V.
Wie man die vier Portadressen des 8255 eines PCs findet, sieht man im angehängten Bild.
[ Diese Nachricht wurde geändert von: Brizz am 16 Mär 2007 19:40 ]
|
BID = 414707
wonder75 Gerade angekommen
Beiträge: 5
|
Zitat :
|
Du schreibst ja nicht, was die Alternative zu +5V ist.
Meist wird es wohl genügen, wenn du zwischen 0V und +5V hin und herschaltest. Eine negative Spannung brauchst du dann nicht.
Du kannst das ja auch einfach testen.
|
Hallo,
die Alternative wäre ein Strom in diesem Rahmen:
-3 V. ... -15 V. Das ist der Bereich der an der Schnittstelle einer logischen 1 entspricht. Ich gehe davon aus, dass man nur in diesem Fall überhaupt etwas von der Schnittstelle zu lesen bekommt, oder täusche ich mich da?
Entspricht die 0 nicht dem Zustand in dem der Pin auch ganz ohne angelegte Spannung wäre?
Danke, wonder
|
BID = 414709
bastler16 Schreibmaschine
Beiträge: 2140 Wohnort: Frankreich
|
Zitat :
| die Alternative wäre ein Strom in diesem Rahmen: |
Nein...
Es wäre eine Spannung...
Zitat :
| P.S.:
Bitte achte etwas auf dir richtige Verwendung der Begriffe:
Spannungen werden in Volt, Abkürzung V, angegeben und Ströme in Ampere, abgekürzt A. |
|
BID = 414761
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
Probier es einfach aus, manchmal klappt das sogar, wenn man stump 5-0V-Logik anschließt, also eine 1 durch eine Spannung von 0V und eine 0 durch eine Spannung durch 5V repräsentiert wird. (irgendwo wird das wieder invertiert)
Sollte das nicht klappen, dann wirst du möglicherweise nicht ohne einen Pegelwandler (=Pegelanpassung) auskommen.
Achte bitte ebenfalls darauf, dass du unter XP möglicherweise keinen direkten Portzugriff mehr hast, d.h., dass das Betriebssystem Zugriffe aus Anwenderprogrammen auf IO-Adressen sperrt. In diesem Fall muss man einen Umweg über Treiber gehen.
Dazu mal bitte nach "ports.dll" suchen, die hat Prozeduren und Funktionen integriert, um den Comport zu handhaben.
Achte weiterhin darauf, den Port nicht zu killen, auch wenn er eine Strombegrenzung (haben sollte) hat. Darauf würde ich mich nicht verlassen.
_________________
|
BID = 414784
Ltof Inventar
Beiträge: 9334 Wohnort: Hommingberg
|
Zitat :
DonComi hat am 17 Mär 2007 01:30 geschrieben :
|
Probier es einfach aus, manchmal klappt das sogar, wenn man stump 5-0V-Logik anschließt, also eine 1 durch eine Spannung von 0V und eine 0 durch eine Spannung durch 5V repräsentiert wird. (irgendwo wird das wieder invertiert)
|
Das klappt sogar meistens. Bzw. hatte ich noch keine Schnittstelle an der eine solche Schaltung nicht funktioniert.
Noch schöner ist eine galvanische Trennung, wie sie beispielsweise in meinem Digitalvoltmeter mit Schnittstelle gemacht ist. Da ist auch gleich die Invertierung mit drin.
_________________
„Schreibe nichts der Böswilligkeit zu, was durch Dummheit hinreichend erklärbar ist.“
(Hanlon’s Razor)
|
BID = 414897
Brizz Stammposter
Beiträge: 386 Wohnort: Rheine
|
@wonder75
Wenn Du das 5V-Signal unbedingt mit der COM-Schnittstelle auswerten willst, dann kannst Du folgendes testen:
Du legst das 5V Signal an den Masse-Pin der COM-Schnittstelle (Pin 5 bei 9-poligem Stecker) und die Masse Deines Signals an den DSR-Pin oder an den CTS-Pin., weil negative Spannungen als logisch 1 gelesen werden.
Dann startest die mit CMD das Konsolenprogramm.
Da rufst Du dann das Programm "debug" auf.
Nach Änderung des Einganszustandes gibst Du den Befehl "i 2FE" ein. Dann muss sich nach anlegen der Spannung der eingelesene Wert ändern. Mit anlegen der Spannung an CTS muss eine 1 zurückgelesen werden, mit anlegen der Spannung an DSR eine 2.
In C z.B. heißt die Routine zur Auswertung des Ports "inport (0x2FE)
[ Diese Nachricht wurde geändert von: Brizz am 17 Mär 2007 17:28 ]
|
BID = 414904
wonder75 Gerade angekommen
Beiträge: 5
|
Hallo Leute,
vielen Dank für Eure vielen Tipps und Hinweise.
Ich habe am Dienstag meine Testhardware und werde mich dann auch melden und erzählen ob ich erfolgreich war.
Danke nochmal
wonder
|
BID = 415342
Dombrowski Stammposter
Beiträge: 450
|
Moin.
Zitat :
| Dann startest die mit CMD das Konsolenprogramm.
Da rufst Du dann das Programm "debug" auf.
Nach Änderung des Einganszustandes gibst Du den Befehl "i 2FE" ein. |
Interessehalber: Greifen hier die Beschränkungen beim I/O-Zugriff nicht?
D.
|
BID = 415561
Brizz Stammposter
Beiträge: 386 Wohnort: Rheine
|
@Dombrowski
Du kannst, wenn Du möchtest, mit dem Konsolenprogramm die Schnittstelle initialisieren. Wenn Du danach z.B. "o 2F8 AA" tippst, wird das Zeichen über die COM-Schnittstelle gesendet, sogar wenn Du es von einer zweiten Konsole aus machst.
|
BID = 415668
Dombrowski Stammposter
Beiträge: 450
|
Moin.
Ich frage, weil ich kein Windows-Nutzer bin. Ich lese die vielen Hinweise ala "Aber pass auf, ab XP kannst du nicht mehr einfach so auf die I/O-Ports zugreifen. Dazu musst du die blafasel-DLL einbinden..." Trifft das hier nicht zu? Hat die DEBUG.EXE aus einem Windows-CMD gestartet alle Rechte von vornherein? Unter jeder Windows-Version?
Ich kenne und habe damals benutzt die DEBUG.EXE zu MSDOS-Zeiten.
D.
|