Feststellen, was auf COM-Schnittstelle zugreift

Gast #1004518
Lesenswert?

Ich habe mir einen Logik-Anne-Liesator nach:
http://antoniak.ep.com.pl/index.php?id=sla

allerdings mit eigenem Layout und ausschließlich mit DIL-Schaltkreisen 
gebaut. Er funktioniert auch tadellos an meinem Müh- und Not(e)-Book.
(Pentium 3, 300Mhz, 128MB RAM, Windows XP)

Aber
An meinem "guten Rechner", hängt es beim Einlesen, jedoch nicht immer 
und nicht an der gleichen Stelle. Ich vermute, daß ein anderes Programm 
auch auf die COM-Schnittstelle zugreift und mir die Kommunikation 
unterbricht.

Frage: Womit kann ich feststellen, wer oder was da auch noch auf der COM
"herumwürgt"?

MfG Paul
Angehängte Dateien:
Gast #1005369
Lesenswert?

>Taugt der denn was?

Hm, was soll ich dazu sagen?! Gegenfrage: Taugt ein 10-er Schlüssel für 
eine 3-er Schraube? :-))

Du mußt doch selbst wissen, was Du damit für Meßaufgaben lösen willst. 
Es geht aus den Bildern auf der Seite des Autors hervor, was man damit 
anstellen kann.

MfG Paul
#1005375
Lesenswert?

Paul Baumann wrote:

> An meinem "guten Rechner", hängt es beim Einlesen, jedoch nicht immer
> und nicht an der gleichen Stelle.

Hat der Rechner einen echten COM Port oder so einen USB COM Port? Diese 
haben nämlich eine höhere Latenzzeit, was schonmal zu Fehlern führen 
kann.
Versuch mal die Wartezeit auf die Daten zu vergrößern.

> Ich vermute, daß ein anderes Programm
> auch auf die COM-Schnittstelle zugreift und mir die Kommunikation
> unterbricht.

Sowas geht eigentlich nicht, wenn der Port schon offen ist, gibts einen 
Fehler.
Gast #1005413
Lesenswert?

in VB6.0

setzt voraus das der µC eine Befehl erhalten kann
den er dem Host quittiert!


Sub OpenCom()
  'COM Port suchen
  Dim Port As Byte
  For Port = 1 To 255
    If ComOpenPort%(Port) = False Then
      'Port wurde geöffnet
      'NOP senden
      SendeBefehl 0, 0, 0, 0
      'Auf Antwort Warten USB Verzögerung
      Call Sleep(90) 'win api
      If MSComm1.InBufferCount > 0 Then
         Dummy$ = MSComm1.Input
         'Port setzen
         cmbCom.ListIndex = Port - 1
         Exit Sub
      Else
        'Anschluß schließen.
        MSComm1.PortOpen = False
      End If
    End If
  Next Port

  'fals kein Port gefunden wurde dann Konbobox auf ListindeX = 0

  MsgBox "Kann XYZ nicht finden!"

End Sub

Private Function ComOpenPort%(Port As Integer)
  On Error Resume Next
  ' Anschluß schließen.
  MSComm1.PortOpen = False
  Err = 0 'letze Fehler löschen
  MSComm1.CommPort = Port
  If Err Then ComOpenPort% = True
  ' 9600 Baud, keine Parität, 8 Datenbits und 1 Stopbit
  MSComm1.Settings = "19200,N,8,1"
  ' Steuerelement anweisen, daß es den gesammten
  ' Pufferinhalt lesen soll, wenn die Input-Eigenschaft
  ' verwendet wird.
  MSComm1.InputLen = 0
  ' Anschluß öffnen.
  MSComm1.PortOpen = True
  If Err Then ComOpenPort% = True
End Function

Private Sub SendeBefehl(Befehl As Byte, Para1&, Para2&, Para3&)
  On Error Resume Next
  'Ausgabe String vorbereiten
  MyOut$ = LTrim$(Str$(Befehl)) + vbCr + _
           LTrim$(Str$(Para1&)) + vbCr + _
           LTrim$(Str$(Para2&)) + vbCr + _
           LTrim$(Str$(Para3&)) + vbCr
  'und am geöffnetem Com Port ausgeben
  MSComm1.Output = MyOut$
End Sub
Gast #1005457
Lesenswert?

@Alle
Fehler ist gefunden: Offenbar unterscheiden sich MAX232 von 
unterschiedlichen Herstellern trotz gleicher Beschaltung laut Datenblatt 
in ihrem Verhalten. Ich habe an dem "guten Rechner" (auch mit XP) ein
1 Meter langes RS232-Verlängerungskabel dran. (Voll beschaltet, selbst
gemessen), damit ich nicht immer hinter der Kiste herumkriechen muß.

An dem Not(e)-Book hing ich sowohl über einen USB/RS232-Wandler als auch
über das o.g. Kabel dran. Dort ging es immer.

Ich tauschte in der Not den MAX232 (Hersteller nicht zu erkennen, es 
steht
nur die Typenbezeichnung drauf) gegen einen vom Onkel Maxim und siehe 
da:
Auch an dem guten Rechner geht es nun über Com 1 und 2 und auch über den
USB-Wandler.


Ich danke Euch für die Ratschläge und Hinweise.

MfG Paul
Gast #1005470
Lesenswert?

Interessehalber,

kanns Du wieder (ohne großen Aufwand) auf den alten Zustand
zurücktauschen? Wenn ja, dann miß mal bitte die pos.(Pin2) und die
neg. >(Pin6) Spannung nach den Spannungskaskaden.

Carsten
#1005488
Lesenswert?

Ja, das würde ich auch empfehlen. Man sollte solch einer eigenartigen 
Situation immer genau auf den Grund gehen und nicht zufrieden sein, wenn 
es irgendwann geht. Denn es könnte sein, daß es jetzt haarscharf gerade 
so geht, aber bei 2 Grad Raumtemperatur mehr geht's vielleicht nicht 
mehr ...

Günter
Gast #1005490
Lesenswert?

Habe ich schon ziemlich als Erstes gemacht...
Ich bin ein großer Fan von Fassungen, das hat sich hier wieder bewährt.
Es lagen in beiden Fällen ca. +9V beziehungsweise -9V gegen Masse an 2 
und 6. Ich habe mich aber eben nochmal mit dem Grafen Oszillo an TXD 
gehangen
und dort sieht man mit Entsetzen, daß der MAX232 von Maxim brettharte 
Rechtecksignale herausbringt und der andere Kollege 232 sehr flache 
Flanken liefert. Der wäre beim Fußball besser aufgehoben... ;-))

MfG Paul
Gast #1005494
Lesenswert?

Achso: Die Elkos haben 1uF (lt. Datenblatt) und sind auch richtig herum 
drin. Ich habe schon etliche Apparate so aufgebaut (aber eben immer mit 
Maxim-Schaltkreisen), die gingen immer auf Anhieb.

Fazit: Der 232 des anderen Herstellers war wohl als Kind schon anders.

dämlich grins
Paul
Gast #1005514
Lesenswert?

Ja, man kann das aus dem Bild nicht richtig erkennen. Ebenso erkennt 
man,
daß ich scheinbar keine Stützkondensatoren verbaut habe. Doch: es sind
SMD-Kondensatoren Bauform 0805 für jeden der "Mitwirkenden" einer.

Nochmal Danke für die Hilfen

MfG Paul

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren