Hallo, Ich möchte in der nächsten Zeit eine art SDR bauen, dabei soll z.b. das 2m Amateurfunkband ins Basisband heruntergemsicht, TP begrenzt und Digitalisiert (10Ms / 12Bit ?) werden. Die Daten sollen wegen der größen Rechnenleistung/Speicher des PC und der "Einfachen" Programmierung in C++ vom PC ausgewertet werden. Nun stellt sich die Frage, wie schafft man es einen Datenstrom mit 10-15MByte/s vom AD-Wandler in den PC rein zu bekommen. USB2 ? 100Mbit Ethernet wird schon knapp? Wie sieht hier die einfachste Lösung aus?
Einfachste Lösung ist ein USB 2.0 Controller, wie der Cypress FX2 oder der FTDI FT2232H. Schau mal beim GnuRadio, die nehmen auch den FX2.
Der FX2 sieht interessant aus, 96Mbyte/s burst rate ;) 8051 hab ich auch schon in C und Assembler programmiert. Aber bei USB2 gibts doch bestimmt schon Probleme bei Millimeter kürzer/längeren leiterbahnen, Leiterbahnkapazitäten/Induktivitäten , Reflexionen durch nicht idealen abschluss... Kann man das als Nachrichtentechniker im 5. Semester meistern?
USB2 ist noch relativ problemlos. Das klappt auch über mehrere Steckverbinder und wurstige Billigst-China-Verlängerungskabel, die jeder Spezifikation widersprechen.
Matze schrieb: > Der FX2 sieht interessant aus, 96Mbyte/s burst rate ;) Jo, Marketing. Das gilt vom Slave Fifo in den Chip rein. USB HighSpeed schafft bei Bulk maximal 41,xx MB/s. Und diese 48 MHz am Slave Fifo schafft man aufgrund des komischen Timings nicht. Mit 25MHz am IFCLK bekommt man die Vorgaben entspannt hin und ist immer noch schneller als USB.
Sehr interessant! Ich würde auch gerne schnell Daten in den PC bekommen, derzeit verwende ich einen 1MBaud UART und am PC kann ich mit pyserial und Python einfach vom /dev/ttyUSB0 lesen und drauf schreiben. Ich hab keine Ahnung vom FX2 und wüsste daher wie groß der Aufwand ist. Also wie einfach kann man darauf zugreifen? Das mit dem UART geht sehr einfach derzeit. Und was muss man am FX2 selbst noch machen, also an Firmware? Am liebsten wäre mir ein Stein der schon fertig per FIFO Daten entgegennimmt und am PC einfach zu verwenden ist. Wie sieht es da mit den FTDI Steinen aus, da gibt es doch auch welche mit FIFO? Danke!
Ich hab gerade genau sowas gebaut. Liest 12 MB/s über USB ein. Trivial war das aber nicht gerade, weder software- noch hardwareseitig -- für mich zumindest. Es ist auf jeden Fall sinnvoll einen Mikrocontroller zu nehmen der ein bisschen mehr RAM hat, sodass der ein bisschen buffern kann, wenn der PC nicht nachkommt.
Musstest du Firmware für den FX schreiben? Wie greift man am PC darauf zu? Ich würde einen FPGA mit ein paar kBytes FIFO nehmen.
Meinst du mich? Ich hab einen uC mit integriertem USB2-Controller benutzt. Ein besserer Controller hilft eh nur begrenzt, ich meine, die Datenrate von USB 2.0 ist halt fix und schneller als diese Rate wird's sowieso nicht.
das_bin_ja_ich! schrieb: > Musstest du Firmware für den FX schreiben? Wie greift man am PC > darauf > zu? Ich würde einen FPGA mit ein paar kBytes FIFO nehmen. Ja, Firmware braucht man, aber beim Cypress SDK sind da viele Beispiele dabei. Slave FIFO ist das sinnvollste für FPGA Verbindung. Am PC brauchst du einen Treiber, da gibts eigentlich 3 Möglichkeiten (Windows): - CyUSB der Cypress Treiber. Mit dem haben wir aber schlechte Erfahrungen, weiterer Nachteil: Nicht digital signiert, x64 scheidet aus. - LibUSB-win32. Digital signiert, guter Support. - WinUSB (benutzen wir), digital signiert, ohne Installation im Windows vorhanden, wird von MS gepflegt.
OK dann lass ich das erstmal mit guten UART nach USB wie dem CP2102 bekomme ich schon bis 3MBaud. Ist sehr einfach zu benutzen auf PC Seite und auch mit dem FPGA.
das_bin_ja_ich! schrieb: > bekomme ich schon bis 3MBaud Das liegt halt etliche Größenordnungen unterhalb der gewünschten 15 MByte/sec - nämlich gerade mal 300 kByte/sec.
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.