![]() |
AW: Delphi 7, mit USB auf Cypress CY7C68013 FX2 zugreifen
An Administrator(en) von
![]() 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ß |
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: ![]() Wenn du die Software noch auftreiben kannst, könnte es so ca. gehen:
Delphi-Quellcode:
Verwenden:
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.
Delphi-Quellcode:
Es gibt noch das
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. ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:31 Uhr. |
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