Sida 1 av 1

Problem med USB ftdi D2XX drivarna.

Postat: 4 oktober 2008, 13:02:27
av Virror
Hej, jag håller på i Borland och kodar ett program som ska läsa data från ett kort jag byggt via USB.
Problemet är att jag inte får det att fungera som det ska. Jag kan läsa av att ftdi-chipet finns där och kan läsa all dess ID och så vidare. Dock står det alltid att RxBufferten är tom. Men i terminal så får jag massor med data. Någon som jobbat med D2XX drivarna och vet vad som är fel?

Postat: 5 oktober 2008, 00:40:49
av bengt-re
Ja, jag har jobbat med dem och ja, det har fungerat väl för mig - antar att du missat något bara för det är enkelt att få det att fungera. RTFM är jag rädd.... Dessutom är det enda råd du KAN få med tanke på den ringa lämnade informationen.

Postat: 6 oktober 2008, 23:32:39
av Virror
Problem: När jag skriver ut hur mycket som är i Rx bufferten så får jag alltid noll.

Fungerar som sagt att läsa ID och dylikt vilket innebär att jag får kontakt med drivarna och kretsen i sig. Har inga problem med själva funktionen som bara är copy paste från ftdis hemsida. När jag tar emot data på terminalen så rasar det in data som det ska. Men ingen data i Rx bufferten.

Om det är något som är oklart får du gärna peka på vad du vill veta med specifikt.

Kod: Markera allt

 
    ftStatus = FT_Open(0 ,&ftHandle);  //Open device
    if (ftStatus != FT_OK)
    {
        if (ftStatus == FT_DEVICE_NOT_FOUND) //FT_Open failed
        {
            Label4->Caption = "Device not found";
            return;
                        
        }
        else
        {
            Label4->Caption = "FAIL";
            return;
        }
    }
        
    Label4->Caption = "OK";
    //FT_Open OK, use ftHandle to access device
    FT_GetStatus(ftHandle,&RxBytes,&TxBytes,&EventDWord);
    //FT_GetStatus, gets amount of bytes in RX buffer

    Label16->Caption = RxBytes;

    //if (RxBytes > 0) //If bytes in RX buffer
    {
        ftStatus = FT_Read(ftHandle,RxBuffer,1,&BytesReceived);
        //Read data from buffer
        Label6->Caption = RxBuffer[0];
    }

    ftStatus = FT_Close(ftHandle);
    //Closes device

Postat: 18 oktober 2008, 16:24:39
av Virror
Ingen som har någon erfarenhet av FTDIs D2XX drivare?

Postat: 18 oktober 2008, 21:19:48
av cyr
Jag har bara använt libftd2xx indirekt (i Python), och bara för att köra MPSSE.

Men det jag kommer på sådär spontant är ifall man inte måste ställa in baudrate osv innan man kan få någon data?

Om du öppnar den virtuella serieporten med ett terminalprogram lär ju den initialiseringen göras där...

Postat: 19 oktober 2008, 19:06:11
av Virror
Det kan ju vara en grej helt klart, ska kolla lite mera på detta, tack.