Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Delphi 7, mit USB auf Cypress CY7C68013 FX2 zugreifen (https://www.delphipraxis.net/215656-delphi-7-mit-usb-auf-cypress-cy7c68013-fx2-zugreifen.html)

max pack 13. Feb 2025 14:22

AW: Delphi 7, mit USB auf Cypress CY7C68013 FX2 zugreifen
 
An Administrator(en) von www.delphipraxis.net:

Bitte diesen (meinen) Beitrag (215656-delphi-7-mit-usb-auf-cypress-cy7c68013-fx2-zugreifen) seit 14.8.24 vollständig löschen aus diesem Forum.

Warum?
Es ist Nichts heraus gekommen und es meldet sich auch kein Wissender mehr. Mein Thema bleibt unbeantwortet. Nichts ist schlimmer, als falsch
oder unbeantwortete Forendiskussionen. Genau wie diese hier.
Der Ärger bei Interessierten, die durch Suchmaschinen hier landen, inkl. deren damit verbundenen Zeitverschwendung ist verantwortungslos.
Ich weiß wovon ich rede (betrifft NICHT uns hier): Unendlich viele Stunden bin ich schon in Foren mit vielversprechenden Titeln unterwegs gewesen
mit der Hoffnung, eine akzeptable Lösung zu finden. Nur um nach langer Zeit feststellen zu müssen, dass da nur nicht-funktionierender Code steht,
tote und/oder unbrauchbare Links, 1000ste Version von irgendeinem Copy&Paste-Müll und viel BlaBlaBla, was oft nicht einmal mehr etwas mit dem
eigentlichen Thema zu tu hat. Unnützes Zeugs ohne Lösung. Viele andere Foren sind damit schon komplett über-zugemüllt und kaum noch brauchbar.
Delphi-Praxis sollte (meiner Meinung nach) ein besseres Bild abgeben.

Deswegen: Ersatzlos weg mit diesem ganzen Beitrag, löschen und allen einen Gefallen tun und Vorbild sein.
Danke an alle Beteiligten und Gruß

jaenicke 14. Feb 2025 00:20

AW: Delphi 7, mit USB auf Cypress CY7C68013 FX2 zugreifen
 
Das Problem ist, dass es die Software für das Board offenbar nirgends mehr gibt. Das war die "Cypress Suite USB", die oben ja auch schon erwähnt wurde. Darin lag eine CyUSB.dll, die exportierte Funktionen hat, mit denen man Daten lesen und schreiben kann.

Eventuell bekommst du die Software noch hier:
https://gitcode.com/open-source-tool...top&type=card&

Wenn du die Software noch auftreiben kannst, könnte es so ca. gehen:
Delphi-Quellcode:
unit CyUSB;

interface

uses
  Windows, SysUtils;

const
  CyUSB_DLL = 'CyUSB.dll';

type
  // Funktionsdefinitionen aus der CyUSB.dll
  TOpenDevice = function(VendorID, ProductID: Word): Pointer; stdcall;
  TCloseDevice = procedure(Device: Pointer); stdcall;
  TWriteUSB = function(Device: Pointer; Endpoint: Byte; Buffer: Pointer; BufferSize: DWord): DWord; stdcall;
  TReadUSB = function(Device: Pointer; Endpoint: Byte; Buffer: Pointer; BufferSize: DWord): DWord; stdcall;

var
  OpenDevice: TOpenDevice;
  CloseDevice: TCloseDevice;
  WriteUSB: TWriteUSB;
  ReadUSB: TReadUSB;

procedure LoadCyUSB;
procedure UnloadCyUSB;

implementation

var
  DLLHandle: THandle;

procedure LoadCyUSB;
begin
  DLLHandle := LoadLibrary(CyUSB_DLL);
  if DLLHandle <> 0 then
  begin
    @OpenDevice := GetProcAddress(DLLHandle, 'OpenDevice');
    @CloseDevice := GetProcAddress(DLLHandle, 'CloseDevice');
    @WriteUSB := GetProcAddress(DLLHandle, 'WriteUSB');
    @ReadUSB := GetProcAddress(DLLHandle, 'ReadUSB');
  end;
end;

procedure UnloadCyUSB;
begin
  if DLLHandle <> 0 then
  begin
    FreeLibrary(DLLHandle);
    DLLHandle := 0;
  end;
end;

initialization
  LoadCyUSB;

finalization
  UnloadCyUSB;

end.
Verwenden:
Delphi-Quellcode:
program TestFX2USB;

uses
  Windows, SysUtils, CyUSB;

var
  FX2Device: Pointer;
  DataOut: array[0..63] of Byte;
  DataIn: array[0..63] of Byte;
  BytesWritten, BytesRead: DWord;

begin
  // 1. Gerät mit Vendor-ID und Product-ID öffnen
  FX2Device := OpenDevice($04B4, $1004); // Beispiel: Cypress Vendor-ID
  if FX2Device = nil then
  begin
    Writeln('FX2-Gerät nicht gefunden!');
    Exit;
  end;

  Writeln('FX2-Gerät verbunden!');

  // 2. Daten an FX2 senden (Bulk OUT auf Endpoint 0x02)
  FillChar(DataOut, SizeOf(DataOut), $A5); // Beispiel-Daten füllen
  BytesWritten := WriteUSB(FX2Device, $02, @DataOut, SizeOf(DataOut));
  Writeln('Bytes gesendet: ', BytesWritten);

  // 3. Daten vom FX2 lesen (Bulk IN von Endpoint 0x86)
  BytesRead := ReadUSB(FX2Device, $86, @DataIn, SizeOf(DataIn));
  Writeln('Bytes empfangen: ', BytesRead);

  // 4. Gerät schließen
  CloseDevice(FX2Device);
  Writeln('Verbindung geschlossen.');
end.
Es gibt noch das EZ-USB™ FX3 Software Development Kit, aber ob diese aktuellere Software mit der alten Hardware funktioniert und genauso ansteuerbar ist, weiß ich nicht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:31 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz