Hi, schon seit längerem finde ich in diesem Forum immer passende Antworten auf meine Fragen. Doch diesmal ist es anders und ich habe mich hier angemeldet, um mein Problem zu erläutern: Mein Vorhaben: Per USB möchte ich Daten über einen FT220x an einen µC senden (hier ein TMS320F28027). Der µC ist SPI Master, da er die empfangenen Daten an einen weiteren Slave weitergeben soll. Hier der Link zum Datenplatt: http://www.ftdichip.com/Products/ICs/FT220X.html Was funktioniert: Ohne Probleme lassen sich Daten von dem µC an den FT senden, sodass der FT diese über USB an einen virtual ComPort raushaut. (µC -> FT -> VCP) Was nicht funktioniert: Ich bekomme es nicht hin, nur die über den VCP an den FT gesendeten Zeichen per SPI auszulesen. (VCP -> FT -> µC) Es kommen zwar die richtigen Zeichen an, allerdings nicht in der richtigen Anzahl. Mit anderen Worten: Woher weiß ich, wie viele Zeichen der FT noch im FIFO hat, die ich, also der µC, lesen kann? Auch in dem Datenblatt von FTDI habe ich nichts von einer Länge des FIFO gefunden. Hoffentlich hat jemand von euch Erfahrungen mit dem Chip und kann mir weiterhelfen! In diesem Sinne... Gruß Dennis
Nach erneutem "Auswendiglernen" des Datenblatts und Auswertung der SPI Leitungen mit einem Oszi, ist es mir nun gelungen, den FT220x mittels Software SPI anzusteuern! Der FT220x/FT1248 sendet auf MIOSIO die Daten und gleichzeitig auf MISO den Status. Immer, wenn MISO 0xFF liefert, sind keine Daten im Fifo und die Übertragung soll laut Datenblatt abgebrochen werden. 0xFE bekommen wir beim READ_REQ (0x02), wenn Daten im Fifo sind. 0x7F gibt der FT zurück, wenn der Fifo nach einem gelesenen Zeichen noch nicht leer ist. Um der Nachwelt zu helfen, habe ich meinen Code angehängt. Da ich in meinem Projekt zwischen 3- und 4-wire SPI umschalten muss, gibt es Funktionen im main(), die die GPIO Direction entsprechend ändern und Pullups setzen. Da diese von µC zu µC unterschiedlich sind, habe ich sie aus der Lib genommen. Gruß Dennis //gelöscht und repost wegen Fehler in h-Datei
Super gute Lösung Dennis. Ich bin noch nicht so bewandert mit Microcontrolern und kannte noch nicht die Bit Banging Technik. Sitze jetzt aber auch schon wieder eine Woche daran und bekomme es nicht zum laufen. Mein Problem ist das ich nicht auf die 12 MHz komme die der FT220X für die SPI kommunikation benötigt. Habe es sogar schon versucht über assambler code zu optimieren aber selbst dann habe ich zu wenige tacktzyklen zur verfügung um die kommunikation zu gewärleisten. Habe den microcontroler auch schon auf 96 MHz übertaktet. Wie ist es denn bei dir schaffst du die 12 MHz auf der SCK Leitung. Oder triggerst du langsamer? Habe auch bei mir versucht langsamer zu triggern. Aber da kommt nix. Vielleicht habe ich den Tranciver bei mir auch schon kaput gemacht G. Ich hoffe du kannst mir noch mal aus dem schlammassel helfen. Ein verzweifelter Sven
Danke! Wie schnell SCK läuft kann ich dir leider nicht sagen, da ich das Oszi nicht mehr zur Verfügung habe. Wenn mich nicht alles täuscht, lief es bei <= 8MHz, da ich auch ein RFM70 Modul mit gleichem Takt anspreche, das laut Datenblatt max. 8MHz mitmacht. Wenn der FTDI bei 3.3V läuft, wirst du ihn wohl nicht kaputt gemacht haben. Funktioniert das Senden denn? Häng doch am besten mal deinen Schaltplan an. Gruß Dennis
Das hat mir schon viel geholfen. Glaube das ich beim Löten mist gebaut habe. Bin aber über das We nicht dahaim G, probier es dann am Montag noch mal.
Beim SSOP kannst du es ja leicht kontrollieren. Wenn du aber QFN genommen hast, brauchst du ein Mikroskop! Bei mir funktionieren zwei QFNs auf Anhieb :) Wenn du keinen Löt-/Designfehler hast, sollte das Senden klappen. Mein µC läuft bei 60MHz und sendet/empfängt mit dem Code meiner Lib. Man könnte sich also die SCK clock ausrechnen ;)
Ich habe den FT220x mit einem Nordic ARM Cortex-M0 laufen. Senden und Empfangen der USB-Daten funktioniert, nun möchte ich auch das interne EEPROM des FT220x nutzen. Da gibt es das Kommando 5 (0x12 im Kommando Byte) zum Setzen der Adressen, und das Kommando 7 (0x16 im Kommando Byte) zum Auslesen des Speichers. Und ich erhalte nur Schrott-Daten. Hat jemand das schon einmal erfolgreich durchgeführt? Habe beim FTDI-Support schon angefragt, die haben mich nur auf eine Application Note verwiesen, wesche ich eh schon durchstudiert habe. Grüße Edwin
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.