PureBoard
http://forums.purebasic.com/german/

Daten senden geht nur , wenn ich Masse anklemme
http://forums.purebasic.com/german/viewtopic.php?f=17&t=22601
Seite 1 von 1

Autor:  super_castle [ 07.06.2010 13:37 ]
Betreff des Beitrags:  Daten senden geht nur , wenn ich Masse anklemme

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

Autor:  7x7 [ 07.06.2010 16:47 ]
Betreff des Beitrags:  Re: Daten senden geht nur , wenn ich Masse anklemme

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.

Autor:  WPö [ 09.06.2010 18:45 ]
Betreff des Beitrags:  Re: Daten senden geht nur , wenn ich Masse anklemme

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ö

Autor:  super_castle [ 20.06.2010 22:49 ]
Betreff des Beitrags:  Re: Daten senden geht nur , wenn ich Masse anklemme

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.

Autor:  WPö [ 20.06.2010 23:03 ]
Betreff des Beitrags:  Re: Daten senden geht nur , wenn ich Masse anklemme

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ö

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/