Hallo, es gibt da ja den FT232R, den habe ich auch schon oft als UART verwendet mit 3 MBaud. Aber der hat ja noch den CBUS und kann da synchrones Bitbang machen. Dazu habe ich zwei Fragen: 1. Welche Datenrate bekommt man da maximal hin? 2. Kann man den CBUS irgendwie als GPIOs verwenden? Ich hätte gerne einen USB nach GPIO Stein. Vielen Dank!
Gustl B. schrieb: > Aber der hat ja noch den CBUS und kann da synchrones > Bitbang machen. Dazu habe ich zwei Fragen: > > 1. Welche Datenrate bekommt man da maximal hin? Schnarchlangsam. Die Schnecken überholen rechts und links. Das Problem vom CBUS ist, daß Du in einem ganzen URB nur ein Update des CBUS machen kannst und dann auf die Antwort warten musst bevor Du den nächsten senden kannst. Bei UART, normalem Bitbang etc. kannst Du viele neue Daten in einem URB zusammenfassen und auf einmal senden. Der FTDI haut die dann nacheinander raus. > 2. Kann man den CBUS irgendwie als GPIOs verwenden? Ich hätte gerne > einen USB nach GPIO Stein. Ja klar, das geht. Aber es gehen nur 4 GPIOs über CBUS, schau im Datenblatt welche es sind. Für normale GPIOs ist meist das Bitbang besser geeignet, weil schneller und mehr Pins. Die CBUS-Pins sind eher für langsame Zusatzdinge geeignet. Z.B. funktionieren die gut um einen Reset des µC oder Aktivierung eines Bootloaders zu machen.
:
Bearbeitet durch User
OK, also wenn ich das als GPIOs verwende wäre mir die Datenrate eigentlich egal solange ich ein definiertes Timing bekomme. Geht das, also dass man den einen GPIO genau x us nach einem anderen GPIO setzt? Was will ich machen? Ich will einen Baustein http://www.ti.com/lit/ds/symlink/acf2101.pdf testen der ein paar IOs hat für Reset und Hold. Da möchte ich eine kleine Platine bauen mit USB und einem Stein der GPIOs hat dann kann ich mal die verschiedenen Zeiten durchsweepen.
Gustl B. schrieb: > OK, also wenn ich das als GPIOs verwende wäre mir die Datenrate > eigentlich egal solange ich ein definiertes Timing bekomme. Geht das, > also dass man den einen GPIO genau x us nach einem anderen GPIO setzt? Nein. Der Jitter ist viel zu hoch. Je nach Auslastung des USB-Controllers, Betriebssystems und und und springt das heftig. Eigentlich sollte das synchrone Bitbanging genau das können was Du willst. Aber leider hat der FT232R in genau dem Bereich nen paar dicke Bugs, so daß auch da das Timing ziemlich durcheinander ist. Hier sieht man schön was ich meine: https://twitter.com/marcan42/status/695292366639378433 Dafür müsstest Du Dir einen neueren ICs von FTDI holen, diese Bugs sind bei den 2232H und der FTX-Serie gefixt. > mal die verschiedenen Zeiten > durchsweepen. An etwas, was dem Begriff "durchsweepen" auch nur ansatzweise gerecht wird, ist mit CBUS nicht zu denken.
Gustl B. schrieb: > Danke. Hm, dann verbaue ich doch lieber ein paar Buchsen und schließe > das an ein FPGA-Board an. Das klingt viel vernünftiger. Da wird das Timing wird um Größenordnungen stabiler sein.
Gustl B. schrieb: > Geht das, also dass man den einen GPIO genau x us nach einem anderen > GPIO setzt? Vor allem nicht mit dieser zeitlichen Auflösung, das ist um drei Zehnerpotenzen langsamer. USB-Transaktionen gibt es nur im Millisekundentakt, d.h. Du kannst nur alle paar Millisekunden die GPIOs ändern.
OK, wie sieht es mit einen uC aus der USB kann wie manche kleinen PICs. Da könnte ich doch ein Programm drauf laufen lassen, das je nach USB-Befehl eine bestimmte Timingsequenz durchfährt. Bekommt man da stabile Timings mit us Auflösung?
Gustl B. schrieb: > OK, wie sieht es mit einen uC aus der USB kann wie manche kleinen PICs. > Da könnte ich doch ein Programm drauf laufen lassen, das je nach > USB-Befehl eine bestimmte Timingsequenz durchfährt. klar, das ginge. Du musst halt das Programm für den µC schreiben. > Bekommt man da > stabile Timings mit us Auflösung? Ich kenn mich mit den kleineren PICs nicht aus. Aber z.B. mit einem STM32F042 oder STM32F072 wäre das gut machbar. Die können entweder ohne Quarz betrieben werden und dann den internen RC-Oszillator an den USB-Signalen kalibrieren oder mit Quarz betrieben werden. Für stabileres Timing würde ich die Variante mit Quarz bevorzugen. Du könntest natürlich auch einen anderen µC ohne USB nehmen den Du noch rumliegen hast und mit dem Du schon Erfahrung hast. Dann nimmst Du Deinen FT232R und nimmst ihn als USB-UART-Wandler (wofür er eigentlich gedacht ist) und sprichst damit per UART mit Deinem µC. Und der macht dann Deine Frequenz-Sweeps.
:
Bearbeitet durch User
Stimmt, das ginge auch. Welcher kleine/billige/leicht zu lötende/ohne viel externe Beschaltung uC kann denn sowohl über USB angesprochen werden (also z. B. wie ein UART über Python) als auch über USB programmiert werden? Ich würde gerne nur eine USB Buchse haben und nicht noch zusätzlich ein ISP Dingens. Mit uC habe ich fast keine Erfahrung, bin eher in der FPGA-Welt zuhause. Gibt es eigentlich einen FPGA den man ohne Programmieradapter direkt über USB bespaßen kann? Bei https://tinyfpga.com sieht es danach aus. Das wäre natürlich auch eine Möglichkeit aber wohl deutlich komplizierter als ein uC.
Gustl B. schrieb: > Stimmt, das ginge auch. Welcher kleine/billige/leicht zu lötende/ohne > viel externe Beschaltung uC kann denn sowohl über USB angesprochen > werden (also z. B. wie ein UART über Python) als auch über USB > programmiert werden? Ich würde gerne nur eine USB Buchse haben und nicht > noch zusätzlich ein ISP Dingens. Beide von mir oben genannte STM32-µCs haben einen integrierten Bootloader für USB. Den kannst Du über einen Pin (BOOT0) im Moment des Resets in diesen Bootloader starten lassen und dann per USB eine neue Firmware senden. Serielle Kommunikation (mit der USB-CDC-Klasse) geht natürlich auch. Viel externe Beschaltung etc. ist für die eigentlich nicht nötig, nen paar Kondensatoren zum Entkoppeln und ich würde halt den externen Quarz empfehlen. Ein passendes "ISP-Dingens" ist für die übrigens weder komplex noch teuer, such mal nach ST-Link V2, die gibts aus China für 2-3 EUR. > Mit uC habe ich fast keine Erfahrung, Du müsstest Dich zumindest ein bischen in die USB-Welt eindenken, mit Device-Deskriptoren, den verschiedenen Klassen etc. Und halt wie Du das auf dem µC umsetzt. Wobei es da natürlich auch viele Beispiele und Libraries für gibt. Meine Empfehlung wäre nur, von CubeMX und der ST-HAL die Finger zu lassen, die machen einem meiner Meinung nach das Leben nur schwerer als nötig. > bin eher in der FPGA-Welt zuhause. Gibt es eigentlich einen FPGA den man > ohne Programmieradapter direkt über USB bespaßen kann? Bei vielen FPGA-Develboards ist ein FTDI mit auf dem FPGA-Board mit drauf, der dann das SPI-Flash emuliert, welches den Bitstream in das FPGA lädt. Zusätzlich sind dann meist auch noch UART-Pins mit dem FPGA verbunden, so daß Du mit dem FPGA auch vom PC aus kommunizieren kannst.
:
Bearbeitet durch User
Gerd E. schrieb: > Bei vielen FPGA-Develboards ist ein FTDI mit auf dem FPGA-Board mit > drauf, der dann das SPI-Flash emuliert, welches den Bitstream in das > FPGA lädt. Zusätzlich sind dann meist auch noch UART-Pins mit dem FPGA > verbunden, so daß Du mit dem FPGA auch vom PC aus kommunizieren kannst. hier z.B.: ICE40HX1K-STICK-EVN Wenn Du dagegen ein fertiges Eval-Board für die STM32er willst, dann schau Dir mal das STM32F072B-DISCO an.
Es gibt auch 8-Bit-AVRs mit USB-Unterstützung, wie z.B. den Atmega32U4. Und der wird sogar von der Arduino-Umgebung unterstützt ("Arduino Leonardo" bzw. "Arduino Micro"). Unterstützung für CDC ist dort "bauseits" vorgegeben, das wird auf die Arduino-Klasse "Serial" umgebogen. Wenn man das Arduino-Framework nicht mag, kann man auch die deutlich leistungsfähigere USB-Umgebung Lufa verwenden. Den Atmega32u4 gibt es im QFN- und im TQFP-Gehäuse, letzteres ist dann doch etwas lötfreundlicher. Für erste Experimente --egal ob mit der Arduino-Umgebund oder etwas anderem-- kann man aber einen der günstigen Nachbauten des "Arduino Micro" verwenden, der kostet nur ein paar Euro und hat gleich eine USB-Buchse mit drauf.
Alternativ gäbe es auch einen MSP430 mit USB-Funktionalität, sogar auf einem Launchpad: http://www.ti.com/tool/MSP-EXP430F5529LP
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.