Forum: PC-Programmierung FDTI FT_EE_Program


von Stefan_h (Gast)


Lesenswert?

Hallo,

Ich habe hier einen FT232RL und möchte die Description ändern. Dazu lese 
ich mittels FT_EE_Read(ftHandle, ftData); die Daten aus dem EEPROM. Dann 
ändere ich die Discription und schicke mit 
FT_EE_Program(ftHandle,&ftdata); alles wieder an den EEPROM. Dabei kommt 
als Status 6 also: FT_INVALID_PARAMETER.

Kann mir da wer weiterhelfen?

FT_EE_ProgramEx habe ich auch schon versucht

Verwende Labwindows/CVI als Compiler.

glg

Stefan

von metaljack (Gast)


Lesenswert?

Hallo Stefan,

das problem kommt mir sehr bekannt vor. Wollte am FTDI nur die CBUS 
Konfigurationsbits ändern und er hat mir auch immer INVALID_PARAMETER 
zurückgegeben.
also die einfache methode wäre einfach MProg von FTDI zu nehmen. damit 
gehts auf jeden fall. ist aber so gesehen nicht die ultimative lösung.

als erstes solltest du prüfen ob die dll die du verwendest mit der 
installierten treiberversion übereinstimmt, da sich die rückgabewerte da 
schon unterscheiden können. der fehler hat mich zumindest eine ganze 
weile aufgehalten.
als zweites solltest du vorm neu programmieren mal versuchen den eeprom 
komplett zu löschen. is natürlich nich so ganz risikofrei. aber no rist 
- no fun. könnte durchaus sein dass man erst alle werte auf 0xff(also 
gelöscht) setzen muss bevor man sie wieder ändern kann. zumindest kenn 
ich das von diversen controllern dass sich bits nur von HIGH auf LOW 
ziehen lassen aber nich umgekehrt.
falls das auch nich geht oder du das nich probieren willst besteht 
natürlich noch die möglichkeit dass es n reines treiberproblem is. dann 
hilft nur mit FTClean alle FTDI treiber zu deinstalliern und den treiber 
dann neu zu installieren. Bedenke aber dass dann jeder FTDI seinen 
treiber wieder installiert haben will. könnte also unter umständen ganz 
schön in arbeit ausarten.

Hoffe ich konnte dir helfen

metaljack

von Stefan_h (Gast)


Lesenswert?

Morgen,

Danke für deine Antwort. den eeprom habe ich schon mal gelöscht und dann 
einen neuen Chip eingelötet, ein besch**ene Arbeit, werde ich nicht mehr 
machen ;-)

Habe aus der am Rechner liegenden DLL eine neu lib erzeugt, hat nix 
gebracht.

von Tom (Gast)


Lesenswert?

Hallo, ich habe das gleich Problem und wollte deshalb nachfragen, ob es 
hierzu schon eine Lösung gibt.

Der Knackpunkt dürfte die Zeigervariable am Ende der Struktur sein.

typedef struct ft_program_data { .....
} FT_PROGRAM_DATA, *PFT_PROGRAM_DATA;

Vielleicht liegt es aber auch an einer Einstellung von Lab Windows CVI 
2009.

Tom

von Tom (Gast)


Lesenswert?

Hallo noch mal
ich gebe mir die Antwort selbst.
Vielleicht kann ich damit jemandem helfen.
Es ist wichtig, das die Signatur stimmt bevor FT_EE_ProgramEx oder 
FT_EE_Program durchgeführt wird.

void ChangeDevPro()
{ FT_PROGRAM_DATA eeData = pData;

  ftStatus = FT_Open(0,&ftHandle); // Open device
  if(ftStatus == FT_OK)            // Success
  { eeData.Signature1=0x00000000,  // Header - must be 0x00000000
    eeData.Signature2=0xFFFFFFFF,  // Header - must be 0xffffffff
    ftStatus=FT_EE_ProgramEx(ftHandle, &eeData, "SI", "FT", "USB","01");
    //ftStatus=FT_EE_Program(ftHandle, &eeData); //Funktioniert auch!!!
    if (ftStatus == FT_OK) { // OK }
    else                   { // Not OK }
  }
  else { // Not OK }
  FT_Close(ftHandle);
}

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.