Ansteuerung eines FTDI FT2232

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von topla.

    Ansteuerung eines FTDI FT2232

    Hallo,

    ich komme aus der µC-Programmierungsecke und habe in VB eigentlich absolut keine Kenntnisse und Erfahrungen.
    In einem µC-Projekt setze ich einen EEPROM für die Speicherung von Parametern ein. Für die Entwicklung habe ich diese Daten in einem HEX-Editor erfasst und über einen Galep-4 geladen. Auf Dauer ist das aber etwas mühsam, also sollte ein etwas komfortableres Frontend her. Dazu habe ich VB2008 benutzt und bin nach einigen Fehlversuchen auch zu einem für mich brauchbaren Ergebnis gekommen. Es wird ein bin-File erstellt und wie gehabt über den Galep-4 in den EEPROM geladen. Nun wollte ich aber nicht immer den Galep durch die Gegend tragen und so kam die Idee der Anbindung des EEPROM über die USB-Schnittstelle mit Hilfe eines FT2232 von FTDI im MPSSE-Modus. Hardwaregrundlage ist der Adapter von Bernhard Redemann b-redemann.de/produkte-usb.shtml , an dem der EEPROM angeschlossen ist (Port A). Als Software habe ich mir das Beispiel von FTDI geladen.
    Und hier beginnt (für mich) die Katastrophe. Beim ersten Aufruf war VB2008 derMeinung, das Projekt konvertieren zu müssen - kann man ja nichts gegen sagen. Leider kommt es danach zu zwei Fehlern jeweils in der Zeile hinter dem "UPGRADE ISSUE". Damit bekomme ich das Beispiel nicht zum Laufen und natürlich macht eine Portierung in meine Anwendung in diesem Zustand auch keinen Sinn.

    VB.NET-Quellcode

    1. Dim bytes As New ByteLong 'long/byte conversions types
    2. Dim longs As LongByte
    3. If dir_Renamed And SPI_WRITE Then
    4. SPI_comm(0) = SPI_comm(0) + 1 ' set extra bit for -ve clock out
    5. longs.all = ValWrite 'Get long input
    6. 'UPGRADE_ISSUE: LSet kann einen Typ keinem anderen Typ zuweisen.
    7. bytes = LSet(longs, 4) 'copy it
    8. SPI_tx(3) = bytes.b(0) 'split out the bytes into tx_buffer
    9. SPI_tx(2) = bytes.b(1)
    10. SPI_tx(1) = bytes.b(2)
    11. SPI_tx(0) = bytes.b(3)
    12. End If


    VB.NET-Quellcode

    1. If dir_Renamed And SPI_WRITE Then
    2. SPI_comm(0) = SPI_comm(0) + 1 ' set extra bit for -ve clock out
    3. longs.all = ValWrite 'Get long input
    4. 'UPGRADE_ISSUE: LSet kann einen Typ keinem anderen Typ zuweisen.
    5. bytes = LSet(longs, 4) 'copy it
    6. SPI_tx(3) = bytes.b(0) 'split out the bytes into tx_buffer
    7. SPI_tx(2) = bytes.b(1)
    8. SPI_tx(1) = bytes.b(2)
    9. SPI_tx(0) = bytes.b(3)
    10. End If


    Ich habe mich durch den angebotenen Link gequält und verstehe auch, dass in VB8 offensichtlich gegenüber VB6 die Typkonvertierung nicht möglich ist, habe aber auf Grund völlig fehlender Vorkenntnisse absolut keinen Plan, wie die Anpassung aussehen müsste. Kann und möchte mir da hier jemand weiter helfen?

    Vielen Dank und Grüße

    Thomas

    Edit by der_Kurt:
    * Topic verschoben *

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „der_Kurt“ ()

    Möcht ja nichts sagen aber du solltest es schon verstehen.
    Mach dich mit den Grundlagen vertraut.
    Ist schon richtig. Die gepostete Quelle habe ich schon verstanden, sonst hätte ich das ja nicht für meine Belange anpassen können.
    VB war für mich hier ohne langes Eruieren Mittel der Wahl für ein simples Frontend, das war wohl ein Fehler. Den Aufwand für eine Einarbeitung habe ich heftig unterschätzt, den Komfort überschätzt, werde aber hoffentlich soetwas nicht wieder so schnell benötigen bzw. andere Konzepte verfolgen.
    Vom zeitlichen Aufwand her wäre ich schneller fertig gewesen, wenn ich an einen µC eine LCD-Anzeige mit Drehgeber und zwei Tastern getackert hätte und die paar Parametereinstellungen mit ein paar Zeilen Assembler erschlagen hätte. Aber man lernt ja gerne was dazu.

    Mit Literatur habe ich schon einige Anläufe hinter mir, allerdings nie Erfolg damit gehabt. Bei mir steht immer irgendwo eine Hardwareankopplung an und genau da schweigt sich die mir bekannte Literatur großzügig aus. Ich hatte hier schon einmal die OX16C950-Chipsätze angefragt, da war dann leider auch schnell Ende im Gelände - funktioniert bis heute nicht, dafür kam der Umweg über einen µC und ein Terminalprogramm dann sehr schnell und komfortabel in die Gänge.

    Thomas