Aktuelle Zeit: 17.02.2020 22:58

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Daten senden geht nur , wenn ich Masse anklemme
BeitragVerfasst: 07.06.2010 13:37 
Offline

Registriert: 29.11.2005 15:05
Hallo, ich habe eine serielle Schittstelle vom USB-Port aus.
Wenn ich mit Purebasic Daten sende zum AVR-Board (2-Draht Rx und TX), muss ich zusätzlich einmal Masse legen vom Notebook(Blechhülle vom USB-Stecker) zum AVR-Board, sonst kommen keine Daten an.

Wenn ich dieses mal probehalber mit GFA32 mache, über den gleichen USB-Port, geht es ohne Masse.
Kann man in Purebasic irgendwie evtl ein seriellen Pin softwaremässig beeinflussen?

Code:
Global text1.s,port.l,s_byte.c
 
  Enumeration
    #Window_0
    #Button_0
    #Button_1
    #Button_2
    #String_0
    #Editor_0
  EndEnumeration
     
  InitSprite()
  InitSound()
 
  OpenWindow(#Window_0, 400, 150, 800,500, "Window_0", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
  OpenWindowedScreen(WindowID(#Window_0),300,10,300,300,0,0,0)

  ButtonGadget(#Button_0, 10,10, 80, 25, "Seriell ein")
  ButtonGadget(#Button_1, 10,40, 80, 25, "Seriell aus")
  ButtonGadget(#Button_2, 10,70, 80, 25, "Daten")
  StringGadget(#String_0, 100, 10, 100, 22, "")
  EditorGadget(#Editor_0, 10, 140, 200,200)

  ClearScreen(RGB(128,128,128))
  port=-1
 
  Repeat
  Event = WaitWindowEvent()
 
  Select Event
    Case #PB_Event_Gadget
      EventGadget = EventGadget()
      EventType = EventType()
     
      If EventGadget = #Button_0
        If port=-1
          port=OpenSerialPort(#PB_Any, "COM4", 19200, #PB_SerialPort_NoParity, 8, 1, #PB_SerialPort_NoHandshake, 1024, 1024)
          If port
            text1+"...geöffnet   "+Str(port)+Chr(10)
            SetGadgetText(#Editor_0, text1)
          Else
            text1+"...nichts"+Chr(10)
            SetGadgetText(#Editor_0, text1)
            port=-1
          EndIf
        EndIf 
      EndIf
     
      If EventGadget = #Button_1
        If port > 0
          CloseSerialPort(port)
          text1+"...geschlossen"+Chr(10)
          SetGadgetText(#Editor_0, text1)
          port=-1
        EndIf
      EndIf
     
      If EventGadget = #Button_2
        If port > 0
          While AvailableSerialPortInput(port) 
            ReadSerialPortData(port, @s_byte, 1)
            text1+Str(s_byte)+Chr(10)
            SetGadgetText(#Editor_0, text1)
          Wend
        EndIf 
      EndIf
     
    Case #PB_Event_CloseWindow
      EventWindow = EventWindow()
      If EventWindow = #Window_0
        CloseWindow(#Window_0)
        Break
      EndIf
  EndSelect
 
  FlipBuffers()
   
ForEver


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Daten senden geht nur , wenn ich Masse anklemme
BeitragVerfasst: 07.06.2010 16:47 
Offline
Benutzeravatar

Registriert: 14.08.2007 15:41
Wohnort: Lelbach
Ohne Masse gehts nun mal nicht in der Elektronik. Irgendwo und irgendwie gibt es in deiner Hardware-Verbindung eine Scheinmasse. Um eine einwandfreie sichere Verbindung aufzubauen, musst du eine definierte Masseverbindung herstellen.

_________________
- alles was ich hier im Forum sage/schreibe ist lediglich meine Meinung und keine Tatsachenbehauptung
- unkommentierter Quellcode = unqualifizierter Müll


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Daten senden geht nur , wenn ich Masse anklemme
BeitragVerfasst: 09.06.2010 18:45 
Offline
Moderator
Benutzeravatar

Registriert: 27.05.2008 12:44
Wohnort: Oberland
super_castle hat geschrieben:
(2-Draht Rx und TX)

Hä? Erzähl' nochmal! Verwendest Du eine selbstgebastelte Leitung, aus zwei Drähten bestehend?

Gruß - WPö

_________________
Ich glaube nur der Statistik, die ich selbst gefälscht habe!
Meine Netzpräsenz: WPö.de
PB5.31 auf LMDE und Pentium T7200 2,00GHz, 4GB DDR2, ATI X1400.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Daten senden geht nur , wenn ich Masse anklemme
BeitragVerfasst: 20.06.2010 22:49 
Offline

Registriert: 29.11.2005 15:05
Zur Zeit mit dem Atmega-Board ja.
Weil Purebasic zwischenpuffert ist es kein Problem, da brauche ich keine Abfrageleitung und Bestätigungsleitung, obwohl das mit dem Atmega-Board eigentlich auch sehr einfach ist, 2 zusätzliche Leitungen zu Benutzen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Daten senden geht nur , wenn ich Masse anklemme
BeitragVerfasst: 20.06.2010 23:03 
Offline
Moderator
Benutzeravatar

Registriert: 27.05.2008 12:44
Wohnort: Oberland
Alder, was erwartest Du?

Du MUSZT in jedem Fall eine Masseleitung verwenden, damit es einen Potentialunterschied gibt (oder ein Strom fließen kann) für RxD und/oder TxD. Alles, was sonst funktioniert, is reiner Zufall und gerademal an der Zerstörung oder Beschädigung der RS232-Ein- und -Ausgänge vorbeigegangen!

Gruß - WPö

_________________
Ich glaube nur der Statistik, die ich selbst gefälscht habe!
Meine Netzpräsenz: WPö.de
PB5.31 auf LMDE und Pentium T7200 2,00GHz, 4GB DDR2, ATI X1400.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 1 Gast


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye