Hallo, Ich möchte zwei simultane Kanäle eines AD7768 A/D Wandlers @ 256 kS/s nutzen. Die Auflösung beträgt jeweils 24 bit, was eine Datenrate von 2 x 24 bit x 256 kS/s = 12.288 Mbit/s ergibt. Diese Rohdaten möchte ich mittels eines Mikrocontrolers in Echtzeit und via USB 2.0 an einen PC übertragen. Aus einem früheren Projekt habe ich noch einen STM32F405RGT6 Mikrocontroller mit einem Takt von 168 MHz. Kann jemand abschätzen, ob dieser Mikrocontroller diese relativ hohe Datenrate hinbekommt? (Ein FPGA wäre natürlich die sicherere Alternative, wäre allerdings auch aufwändiger in der Realisierung.) Danke für eure Hilfe!
Ist doch SPI. Für 1536000 Bytes bei 20mhz SPI, braucht dieser hierfür 0,6144s.
SPI scheint laut Datenblatt nicht das Problem zu sein: "SPI1 can communicate at up to 42 Mbits/s, SPI2 and SPI3 can communicate at up to 21 Mbit/s"
Ich liebe es wenn man aus der Datenrate eines Bausteins die mögliche Arbeitsgeschwindigkeit seines Gesamtdesigns ermittelt (will heissen sich per copy&paste berechnet).
jo mei schrieb: > Ich liebe es wenn man aus der Datenrate eines Bausteins die > mögliche Arbeitsgeschwindigkeit seines Gesamtdesigns ermittelt > (will heissen sich per copy&paste berechnet). Gerade ja nicht, deshalb frage ich ja. Mir geht es ja genau um die Frage, ob der Controller die Daten verarbeitet bekommt und es dann auch schafft diese per USB wieder zu versenden.
Charly schrieb: > Gerade ja nicht, deshalb frage ich ja. Mir geht es ja genau um die > Frage, ob der Controller die Daten verarbeitet bekommt und es dann auch > schafft diese per USB wieder zu versenden. Warum nicht? Das weiterleiten ist quasi langweilig für den Controller. Könnte man auch mit DMA machen deine CPU hat quasi nichts zu tun. Also der DMA sammelt die Rohdaten von 1/10 Sekunde. In dieser Zeit hast du Freie Kapa. Anschließend stößt du einen weiteren DMA an, der die Daten zum PC sendet und deine CPU macht parallel ganz tolle Sachen mit deinen Rohdaten. In diesem Szenario hast du quasi 0Sekunden mit dem weiterreichen der Nutzdaten verbraucht.
Der genannte ADC hat SPI nur als Control Interface. Die Daten popelt man aus einer Mischung aus paralelem und seriellen Interface raus. Es braucht zwar 24 Takte, aber beide ADC Ergebnisse werden gleichzeitig rausgetaktet. Das ist aber kein Problem, brauchste eben 2 SPI Periph, die als Slave arbeiten. Der Takt kommt ja vom ADC. Das sollte aber kein Problem sein. Ein STM32F205 auf 120MHz sampelt hier 2 ADC Kanäle zu 16Bit und 250kS/s. Da es ein Wirkleistungsmessgerät ist wird auch noch auf diesen Samples direkt gerechnet, hier soll ja nur durchgereicht werden. Weiterhin muss nebenbei noch eine GUI ausgegeben werden. Was sonst noch gerne vergessen wird: Der STM32 kann nur USB2.0 480MBit mit einem externen ULPI PHY. Sonst geht nur USB mit 12MBit und das ist offensichtlich zu wenig.
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.