FT232 RL via D2XX Treiber ansprechen

Hardware- und Elektronikbasteleien, Ansteuerung von Schnittstellen und Peripherie.
Fragen zu "Consumer"-Problemen kommen in Offtopic.
Benutzeravatar
stalky13
Beiträge: 28
Registriert: 11.12.2007 18:59
Wohnort: Jever

FT232 RL via D2XX Treiber ansprechen

Beitrag von stalky13 »

HI

Ich hab mir ne schaltung mit nem µc aufgebaut und nem ft232rl (usb zu seriel konverter) der µc soll später mal eine rgb led matrix ansteuern...

so nun bin ich an dem punkt angelangt an dem ich die usb verbindung aufbauen muss ich hab nuch noch nie was mit dem ft232 oder mit usb gemacht ... vieleicht hat ja schonmal jemand was mit einem ft232 gemacht :mrgreen: für hilfreiche tipps zum ansprechen von meinem ft232 wäre ich dankbar oder vieleicht hat ja jemand sogar ein beispiel in pb oder c

die dokumentation zum d2xx treiber gibts hier


mfg stalky
Aus großer Kraft folgt große Verantwortung.
Benutzeravatar
stalky13
Beiträge: 28
Registriert: 11.12.2007 18:59
Wohnort: Jever

Beitrag von stalky13 »

servus

so habs jetzt geschafft daten zum µC und zurück zu rechner zu senden :mrgreen: ....
den FT232 kann man nach dem mann den treiber installiert hat mit dem programm MProg Konfigurieren Herstellername Device deskription usw...

hier mal mein test code:

Code: Alles auswählen

#FT_OK = 0

#FT_OPEN_BY_SERIAL_NUMBER = 1
#FT_OPEN_BY_DESCRIPTION = 2
#FT_OPEN_BY_LOCATION = 4

#FT_BITS_8 = 8
#FT_BITS_7 = 7

#FT_STOP_BITS_1 = 0
#FT_STOP_BITS_2 = 2

#FT_PARITY_NONE = 0
#FT_PARITY_ODD = 1
#FT_PARITY_EVEN = 2
#FT_PARITY_MARK = 3
#FT_PARITY_SPACE = 4

#FT_FLOW_NONE = $0000
#FT_FLOW_RTS_CTS = $0100
#FT_FLOW_DTR_DSR = $0200
#FT_FLOW_XON_XOFF = $0400

#FT_BAUD_9600 = 9600
#FT_BAUD_19200 = 19200

#FT_EVENT_RXCHAR = 1
#FT_EVENT_MODEM_STATUS = 2

If OpenLibrary(0, "FTD2XX.dll")
  Debug "dll geladen!"
  
  If #FT_OK = CallFunction(0, "FT_OpenEx", @"RGB LED Matrix Treiber", #FT_OPEN_BY_DESCRIPTION , @hdev)
    Debug "FT232RL geöffnet"
    
    If #FT_OK = CallFunction(0, "FT_SetDataCharacteristics", hdev, #FT_BITS_8, #FT_STOP_BITS_1, #FT_PARITY_NONE)
      If #FT_OK = CallFunction(0, "FT_SetFlowControl", hdev, #FT_FLOW_NONE, 0, 0)
        If #FT_OK = CallFunction(0, "FT_SetBaudRate", hdev, #FT_BAUD_19200)
          Debug "FT232RL ist konfiguriert"

          dat.c = 123
          If #FT_OK = CallFunction(0, "FT_Write", hdev, @dat, 1, @size)
            Debug "daten gesendet: "+Str(size)
            
            While rxbyte = 0
              If Not #FT_OK = CallFunction(0, "FT_GetStatus", hdev, @rxbyte, @txbyte, @status)
                Debug "error beim status anfordern"
              EndIf
            Wend
            
            size = 0
            dat = 0
            If #FT_OK = CallFunction(0, "FT_Read", hdev, @dat, 1, @size)
              Debug "daten gelesen: "+Str(size)+" daten: "+Str(dat)
            Else
              Debug "error beim lesen"
            EndIf
            
          Else
            Debug "Fehler beim senden"
          EndIf
          
        Else
          Debug "error beim einstellen der baudrate des FT232RL"
        EndIf
      Else
        Debug "error beim einstellen der flow_controle"
      EndIf
    Else
      Debug "error beim einstellen der snittstelle des FT232RL"
    EndIf
    
  Else
    Debug "error beim öffnen des FT232RL"
  EndIf
  
Else
  Debug "dll nicht gefunden!"
EndIf

ich find den chip einfach toll ist nicht kompliziert zu handaben nur zum einlöten ist er ein bischen zu klein :( kann ihn aber sonst weiterempfehlen :allright:

mfg stalky
Aus großer Kraft folgt große Verantwortung.
Benutzeravatar
Helmut
Beiträge: 162
Registriert: 20.09.2004 22:53

Beitrag von Helmut »

Verstehe ich richtig, erst den Baustein Desciptor mit Mprog programmieren und dann findet das Purebasic ihn erst?

Interessehalber:
Mit was für eine Programmiersprache ist der Microkontroller programmiert und von welcher Fa.?
Gruß Helmut
Benutzeravatar
stalky13
Beiträge: 28
Registriert: 11.12.2007 18:59
Wohnort: Jever

Beitrag von stalky13 »

hi
Helmut hat geschrieben: und dann findet das Purebasic ihn erst?
das kommt daruf an mit welcher metode man den ft232 öffnet ich öffne ihn nach der beschreibung die ich zufor mit MPROG eingegeben habe.

Code: Alles auswählen

CallFunction(0, "FT_OpenEx", @"RGB LED Matrix Treiber", #FT_OPEN_BY_DESCRIPTION , @hdev)
die function FT_OpenEx sucht nach ft232 chips die mit dem rechner verbunden sind und die beschreibung (descripion) "RGB LED Matrix Treiber" enthalten ... von anfang an steht da glaubich FT Serial Converter oder sowas drin ... und dann würde er ihn ned finden weil ich ja nach "RGB LED Matrix Treiber" suche ...
wenn man nur einen von den dingern hat dann kann man auch FT_Open verwenden da muss man nen index angeben welchen chip mann öffnen will ... wenn nur einer da ist dann gibt es nur den index 0 aber wenn man mehre hat dann muss man die ja irgenwie ausernander halten ich hab jetzt nur einen aber später vieleicht mal mehrere und dann benutze ich die beschreibung um die controler auseinader zu halten...

zu deiner anderen frage ich programmiere pic controler vom microchip für meine matrix ferwende ich einen 18f452 die µc programmiere ich in c ebenfalls mit der ide von microchip

mfg stalky
Aus großer Kraft folgt große Verantwortung.
Antworten