 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
eeg-grimm
Anmeldungsdatum: 19.04.2006 Beiträge: 46 Wohnort: Herzogenaurach
|
Verfasst am: 29.12.2017, 21:07 Titel: |
|
|
Hallo dreael,
Windows-Gerätemanager unter "Anschlüsse" bei mir „Hardware“
Bei „Ressourcen“ kommt auch beim Gerätemanager bei COM1.
E/A-Bereich 03F8-03FF
IRQ 04
Bei COM4 gibt es „Ressourcen“ gar nicht.
######
Hallo grindstone,
das mit dem Programm von Sebastian hab ich ja mit COM4 schon ausprobiert und das hat ja auch geklappt.
Die Eingänge CDS, DSR, RING (RI) und RLSD (DCD) kann man geschmeidig abfragen.
Für das EIN und AUS schalten von RTS und DTR ist ja noch etwas an „Veränderungen“ nötig.
Zumindest geht das LED an RTS zu GND est mal AUS nach Programmstart und nach Programm Ende wieder EIN, also schaltet das IC auf dem USB Pegelwandler zu TTL den RTS.
Jetzt braucht am noch eine „Eingabe“ für RTS und auch für DTR, EIN oder AUS.
Gruß
Code: |
' Programm von Sebastian 29.12.2017, 12:23
' Testet dem USB zu COM4 ZU TTL Umsetzer und ist auch OK
' Die Eingänge CDS, DSR, RING (RI) und RLSD (DCD) kann man abfragen.
' Ausgabe am Monitor
' 1 = Verbindung zu GND
' 0 = keine Verbindung zu GND
#Include Once "windows.bi"
Dim hCom As handle
Dim PortNr As String = "COM4" ' COM1, COM2, COM3 oder COM4
Dim modemStat As Dword
'Serielle Schnittstelle öffnen:
hCom = CreateFile(PortNr, GENERIC_READ Or GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL)
Print "Handle = "; hCom
'Fehlerbehandlung, falls Öffnen fehlschlägt:
If hCom = INVALID_HANDLE_VALUE Then
Print "Fehler beim Oeffnen von "; PortNr
Sleep
End
Else
Print PortNr; " geoeffnet"
Endif
'Alle Ausgangsleitungen auf positive Spannung setzen:
EscapeCommFunction(hCom, SETRTS) 'RTS +12V
EscapeCommFunction(hCom, SETDTR) 'DTR +12V
EscapeCommFunction(hCom, SETBREAK) 'TxD +12V (Break)
Print
Print
Print "Ende mit [Esc]"
Print "Verbindung zu GND = 1 keine Verbindung zu GND = 0"
'Eingangsleitungen per Polling abfragen:
Do
GetCommModemStatus(hCom, @modemStat)
Locate 8,1
If modemStat And MS_CTS_ON Then Print "CTS (USB=CTS 8) = 1" Else Print "CTS (USB=CTS 8) = 0"
If modemStat And MS_DSR_ON Then Print "DSR (USB=RSD 6) = 1" Else Print "DSR (USB=RSD 6) = 0"
If modemStat And MS_RING_ON Then Print "RING (USB=R1 9) = 1" Else Print "RING (USB=R1 9) = 0"
If modemStat And MS_RLSD_ON Then Print "RLSD (USB=DCD 1) = 1" Else Print "RLSD (USB=DCD 1) = 0"
Sleep 5
Loop Until Inkey = Chr(27)
'Alle Ausgangsleitungen auf negative Spannung zurücksetzen:
EscapeCommFunction(hCom, CLRRTS) 'RTS -12V
EscapeCommFunction(hCom, CLRDTR) 'DTR -12V
EscapeCommFunction(hCom, CLRBREAK) 'TxD -12V
'Serielle Schnittstelle schließen:
CloseHandle(hCom) |
|
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5899 Wohnort: Deutschland
|
Verfasst am: 29.12.2017, 21:26 Titel: |
|
|
Hehe, da muss ich den Ruhm aber ein bisschen abtreten. Das Code-Beispiel zum Auslesen/Setzen der Statusleitungen im FreeBASIC-Portal ist nicht von mir. Ich habe es dir nur verlinkt. Der Autor ist jemand anderes (Steini). Steht im Portal auch so angegeben.
Zitat: | Bei COM4 gibt es „Ressourcen“ gar nicht. |
Das klingt für mich einleuchtend. Wie sollte ein Knoten bzw. Busteilnehmer, der am USB hängt, auch eine x86-I/O-Bus-Port-Basisadresse haben.  _________________
 |
|
Nach oben |
|
 |
eeg-grimm
Anmeldungsdatum: 19.04.2006 Beiträge: 46 Wohnort: Herzogenaurach
|
Verfasst am: 29.12.2017, 21:47 Titel: |
|
|
Zitat: | Frage 1 von grindstone : Gibt es zu dem Adapter irgendeine Dokumentation, wo solche Details beschrieben sind? |
Am IC steht CN480661
Das IC ist von der Firma FTDI mit der Bezeichnung FT232RL
Auf der Rückseite von der Platine steht YP-05 da findet man auch einige Sachen und Bilder.
Ehrlich gesagt wenn man das bei google überfliegt was da so alles bei FT232RL angezeigt wir ist man verwirrender als vorher.
Zitat: | Frage 2 von grindstone : Gehört zu dem Adapter ein Treiber, den du zusätzlich installieren musstest? |
Treiber ist keiner nötig, so hab ich das von den Chinesen verstanden.
############
Hallo Sebastian,
da steht was von Autor: Steini63.
O.K.
Nur gefunden hätte ich das nicht ohne deine Hilfe, Danke.
Gruß |
|
Nach oben |
|
 |
grindstone
Anmeldungsdatum: 03.10.2010 Beiträge: 834 Wohnort: Ruhrpott
|
Verfasst am: 30.12.2017, 12:09 Titel: |
|
|
eeg-grimm hat Folgendes geschrieben: | Am IC steht CN480661
Das IC ist von der Firma FTDI mit der Bezeichnung FT232RL | Hmmm...
http://www.rudiswiki.de/wiki/FTDIWildWest
Nach dem Datenblatt des FT232RL müsste sich der USB - Adapter direkt (ohne Pegelwandler / Inverter) an das Messmodul anschliessen lassen.
Gruß
grindstone _________________ For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen! |
|
Nach oben |
|
 |
eeg-grimm
Anmeldungsdatum: 19.04.2006 Beiträge: 46 Wohnort: Herzogenaurach
|
Verfasst am: 31.12.2017, 12:31 Titel: |
|
|
Hallo grindstone,
den USB - Adapter schließe ich direkt (ohne Pegelwandler an) an das Stromzählermodul PZEM-004T und das auslesen der z.B. Spannung geht ja einwandfrei, mit dem Programm von Sebastian (16.12.2017, 01:30) mit COM1 und auch mit USB=COM4.
Die Anfrage wegen RTS und auch für DTR als Ausgang schalten mit FreeBASIC hab ich ja nur gestellt weil ich eine Verbindung zur Außenwelt brauch um was EIN und AUS zu schalten.
Bei erreichen oder unterschreiten von Messwerten soll ja was geschalten werden.
#
Mit dem Eingebauten COM1 geht ja die Messung mit dem PZEM-004T und auch das schalten von RTS und DTR, alles mit FreeBASIC.
Bei Verwendung vom FreeBASIC und USB (COM4) geht das PZEM-004
aber nicht das schalten von RTS, DTR.
Nur mit dem „Spezialprogramm“ von Sebastian 29.12.2017, 12:23 zeigt RTS, DTR zumindest eine Reaktion.
Die Eingänge CDS, DSR, RING (RI) und RLSD (DCD) kann man abfragen an der USB Platine.
#
volta, hat am 19.12.2017, 16:39 (Seite 1) noch ein Programm eingestellt für:
Volt, Anper, Watt und kWh
Ist mir aber mir noch nicht klar wie das komplette Programm dann aussieht um V, A, W und kWh zu bekommen von Stromzählermodul PZEM-004T.
Gruß |
|
Nach oben |
|
 |
Steini63
Anmeldungsdatum: 11.11.2004 Beiträge: 28 Wohnort: 30926 Seelze
|
Verfasst am: 31.12.2017, 16:48 Titel: Statusleitungen per WinAPI schalten |
|
|
eeg-grimm hat Folgendes geschrieben: |
Bei Verwendung vom FreeBASIC und USB (COM4) geht das PZEM-004
aber nicht das schalten von RTS, DTR.
|
Doch, das machen doch die folgenden Zeilen:
Code: | 'Alle Ausgangsleitungen auf positive Spannung setzen:
EscapeCommFunction(hCom, SETRTS) 'RTS +12V
EscapeCommFunction(hCom, SETDTR) 'DTR +12V
|
Code: | 'Alle Ausgangsleitungen auf negative Spannung zurücksetzen:
EscapeCommFunction(hCom, CLRRTS) 'RTS -12V
EscapeCommFunction(hCom, CLRDTR) 'DTR -12V
|
Das kannst du beliebig oft im Programm durchführen, so lange der entsprechende COM-Port geöffnet ist. Der Unterschied beim TTL USB-seriell Wandler ist, dass die Spannungen 0V (statt -12V) und 5V (statt 12V) betragen; TTL-Pegel eben. _________________ Viele Grüße Steini
http://www.FrankSteinberg.de +++++++ Planung ist das Ersetzen des Zufalls durch den Irrtum +++++++ |
|
Nach oben |
|
 |
grindstone
Anmeldungsdatum: 03.10.2010 Beiträge: 834 Wohnort: Ruhrpott
|
Verfasst am: 31.12.2017, 21:11 Titel: |
|
|
Steini63 hat Folgendes geschrieben: | ...dass die Spannungen 0V (statt -12V) und 5V (statt 12V) betragen; TTL-Pegel eben. | Achtung: Das gilt nur für die Steuerleitungen (DTR und RTS). Bei TxD und RxD ist es umgekehrt: L - Pegel (0V / TTL) entspricht +12V / RS232, H - Pegel (5V / TTL) entspricht -12V / RS232. Entschuldigung, wenn ich hier etwas besserwisserisch erscheine, aber hinter genau diesem Fehler (oder besser: Irrtum) habe ich einmal fast 2 Wochen hergesucht.
Allerdings lassen sich beim FT232R die TTL - Pegel bei Bedarf invertieren (siehe Datenblatt, Seite 35).
Gruß und guten Rutsch
grindstone _________________ For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen! |
|
Nach oben |
|
 |
eeg-grimm
Anmeldungsdatum: 19.04.2006 Beiträge: 46 Wohnort: Herzogenaurach
|
Verfasst am: 01.01.2018, 13:34 Titel: |
|
|
Hallo,
erst ein gesundes neues Jahr.
Der Kopf brummmmmmt noch aber alle Finger sind noch dran.
######
grindstone schreibt:
Entschuldigung, wenn ich hier etwas besserwisserisch erscheine
Das ist nicht besserwisserisch, mein wissen ist nicht besser, meine Fragen sind ja auch manchmal etwas komisch, verwirrend.
Hab ja nur Basiswissen bei QBasic, so für den Hausgebrauch und da bin ich für jeden Tipp dankbar.
Deshalb auch nur Basic = Basiswissen.
Auch auf der Internetseite von Steini63 hol ich mir seit Jahren immer wieder mal den einen oder anderen Tipp.
Ich bin ja noch nicht in der Hochgeschwindigkeit-Datenverarbeitung angekommen aber nur mit COM am PC ist ja auch ein Auslaufmodell.
Die Ausgänge RTS und DTR sind genau umgedreht bei der Spannungsausgaben an der USB Platine.
„EscapeCommFunction(hCom, SETRTS) 'RTS +12V“
RTS +12V = L (RTS mit einem LED verbunden mit GND LED=AUS)
„EscapeCommFunction(hCom, SETDTR) 'DTR +12V“
DTR +12V = L (DTR mit einem LED verbunden mit GND LED=AUS)
„EscapeCommFunction(hCom, CLRRTS) 'RTS -12V“
RTS -12V = +5V H (RTS mit einem LED verbunden mit GND, LED=EIN )
„EscapeCommFunction(hCom, CLRDTR) 'DTR -12V“
DTR -12V = +5V H (DTR mit einem LED verbunden mit GND LED=EIN)
Ich hab ja jetzt zwei Leitungen die H und L Signale liefern über einem I2C-Bus mit einem IC PCF8574 dann verschiedene Sachen EIN und AUS schalten.
Gruß |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|