Moin Zusammen, Konkret habe ich ein Projekt in dem ich einen STM32F767 einsetze, der 4 Sigma-Delta-Modulatoren einließt und verarbeitet. Nach etwas rechnerrei fällt ein Duty für die 100kHz PWM raus. Bei 100KHz habe ich bei der CPU ca. 10Bit Auflösung, das ist mir schon öfter negativ aufgefallen (pendeln im LSB). Außerdem hätte ich gern noch mehr ADCs der STM hat aber nur 4 Filter. Deshalb würde ich mich gern in FPGAs einarbeiten und suche ein Dev-Board mit FPGA um die schnelle Logic im FPGA zu realisieren. Der verwendete FPGA sollte aber noch in QFP erhältlich sein, sprich handlötbar. (LQFP208 mit 0,5mm Pinch ist kein Problem). Das angepeilte Design würde enthalten: - mehr als 4 Decimationsfilter für Sigma-Delta ADCs (21MHz Sample Takt) - High Resolution PWM (100kHz 12Bit Auflösung wäre schön), mit Deadtime usw. - Datenvorverarbeitung/schnelle Regelung gesteuert von einem STM32. ( Mittelwert, Differenziale von bis zu 64 samples der ADCs, nix wildes ) Ich habe leider keine Ahnung welchen Hersteller ich da nehmen kann. Reicht für sowas ein Lattice MachXO2 oder ähnlich oder brauche ich was größeres? Würde gern gleich ein Board anschaffen wollen auf dem ich entwickeln kann das aber auch für den Prototyp reicht. Ich hab zwar mal in der Uni VHDL auf einem Xilinx gemacht aber das ist Jahre her. Deshalb brauche ich auch etwas mit Einsteigerfreundlicher Doku. Gruß Tec
Moin, die MachXO2 haben m.W. keine Multiplier, deine Filter könnten die schnell vollmachen. Sonst sind die XO2/3 schön schnell, aber noch bisschen teuer... Ansonsten nehme ich für sowas gerne den Spartan6 im TQ144, da passt noch locker ein ZPUng-Core für die Konfiguration mit rein. Allenfalls hätte ich was in der Richtung, aber das muss noch durch ein paar Tests. Wenn du sonst nix findest, melde dich gerne per PM.
Moin, mmhh. Sehe ich das richtig das der Spartan 6 der letzte ist den es noch in TQFP gibt von Xilinx? Ansonsten hört sich das gut an. Ich befürchte das ist in ein 2 jahren nix mehr von Xilinx in QFP bekomme. Nur noch Reste auf Ebay... Oder über sehe ich was. Und Warum benutzen die keine geläufigen Gehäusebezeichungen? Außerdem bekomme ich die anscheinend nur bei Digikey, ich bestelle aber lieber bei Mouser. http://eu.mouser.com/ProductDetail/Lattice/LFXP2-5E-5MN132C/?qs=sGAEpiMZZMtI26rxh1qzjhF%2ffq%252b8F%252bq5 Wie ist sowas? Das Board würde mir auch gefallen, aber gibts die Atix7 in TQFP. http://eu.mouser.com/ProductDetail/Digilent/410-319/?qs=sGAEpiMZZMvt1VFuCspEMuFIhdmTw2Z5LVhXFXxK8MM%3d TQFP schränkt die Auswahl echt ein.
Altera/Intel MAX10 ist für sowas gut geeignet, da hast du nicht nur TQFP 144 Gehäuse, sondern auch das Config-Flash und die Spannungsregler auf dem Chip. Die haben viele Multiplizierer und sind auch bei Mouser erhältlich. Inzwischen gibt es viele MAX10 Entwicklungs-Boards, teilweise auch als Production-Boards verwendbar (siehe Beitrag FPGA IoT MakerBoard). Andi
Tec N. schrieb: > mmhh. Sehe ich das richtig das der Spartan 6 der letzte ist den es noch > in TQFP gibt von Xilinx? Ansonsten hört sich das gut an. Ich befürchte > das ist in ein 2 jahren nix mehr von Xilinx in QFP bekomme Keine Bange, den wird's noch lange geben, notfalls vom chinesischen Broker.
PWM in 12 Bit mit 100kHz, also 4 Ghz? Viel Spass. Wir hatten die Sache mit den PWM 100kHz schon mal, meine Ich. Schein zweimal, sogar. Beitrag "PWM 100 kHz, minimum 16 Bit Auflösung"
Meister E. schrieb: > PWM in 12 Bit mit 100kHz, also 4 Ghz? Viel Spass. Ganz so schlimm ist es auch wieder nicht, 12Bit * 100kHz ergibt 409.6 MHz clock , und das ist auf highend FPGAs schon erreichbar. Auf den oben erwähnten Chips ist wohl etwa die Hälfte realistisch, also 11Bit/100kHz oder halt 12Bit/50kHz Andi
Tec N. schrieb: > Konkret habe ich ein Projekt in dem ich einen STM32F767 Ein Pi 1 unter RiscOS pico mit externem parallel ADC z.B. sollte das billiger schaffen. http://www.linear.com/product/LTC2145-14 Oder ein Cortex-R5 statt einem Cortex-M7 z.B. http://www.ti.com/lsds/ti/microcontrollers-16-bit-32-bit/c2000-performance/safety/tms570/products.page#p1227=4096;4096
Andi schrieb: > Altera/Intel MAX10 ist für sowas gut geeignet, da hast du nicht nur TQFP > 144 Gehäuse, sondern auch das Config-Flash und die Spannungsregler auf > dem Chip. > Die haben viele Multiplizierer und sind auch bei Mouser erhältlich. > > Inzwischen gibt es viele MAX10 Entwicklungs-Boards, teilweise auch als > Production-Boards verwendbar (siehe Beitrag FPGA IoT MakerBoard). > > Andi Ich hab mal bei mouser direkt nach dem MAX 10 geguckt. Das ja n Schnapper der kleinste für 7€ das Stück, das doch schon mal ein Wort. Meister E. schrieb: > PWM in 12 Bit mit 100kHz, also 4 Ghz? Viel Spass. > Wir hatten die Sache mit den PWM 100kHz schon mal, meine Ich. Schein > zweimal, sogar. > > Beitrag "PWM 100 kHz, minimum 16 Bit Auflösung" Ich dachte auch nicht an eine PWM die direkt die 12Bit zählt. Sondern sowas wie eine High Resolution PWM die einen PWM LSB noch in sagen wir 5Bit aufteilt. Meine Hoffnung ist das ich diese Peripherie mit einem FPGA nachgebaut bekomme. Lothar schrieb: > Ein Pi 1 unter RiscOS pico mit externem parallel ADC z.B. sollte das > billiger schaffen. > > http://www.linear.com/product/LTC2145-14 > > Oder ein Cortex-R5 statt einem Cortex-M7 z.B. > > http://www.ti.com/lsds/ti/microcontrollers-16-bit-32-bit/c2000-performance/safety/tms570/products.page#p1227=4096;4096 Ah für den 60€ ADC mit nur 2 Kanälen kann ich mir ja dutzende Boards aufbauen. Wenn ich allein 3 von den Dingern brauche. Zumal ich meine Sigma Deltas mit +-50mV Eingang schon sehr charmant finde. Außerdem ist der R5 nur in BGA erhältlich und TI will ich mir bei Prozessoren eigentlich nicht antun. Meine Zeit kann ich schöner verbrennen. Ich werde mir das MAX10 Board mal bestellen. Das Ding ist aktuell und Altera ist ja kein schlechter Name. Danke für die Antworten. Gruß Tec
:
Bearbeitet durch User
Tec N. schrieb: > Ich dachte auch nicht an eine PWM die direkt die 12Bit zählt. Sondern > sowas wie eine High Resolution PWM die einen PWM LSB noch in sagen wir > 5Bit aufteilt. Wie möchtest Du das denn konkret realisieren? Bin gespannt. Schaltung? Andi schrieb: > Ganz so schlimm ist es auch wieder nicht, 12Bit * 100kHz ergibt 409.6 > MHz clock Rechnen nach 23.00 Uhr :-) :-)
Edi M. schrieb: > Wie möchtest Du das denn konkret realisieren? Bin gespannt. Schaltung? Keine Ahnung. Dafür habe ich zu wenig Erfahrung mit FPGAs. Ich stelle mir das so vor, dass ich einen normalen sagen wir 100MHz Zähler habe der ein PWM Signal generiert. Dieses Signal wird von einem Gatter übernommen das von einem Phasenverschobenen 100MHz Takt getrieben wird. Und diese Phasenverschiebung muss variabel sein. Die Frage ist ob das eine PLL in 10µs ausregeln kann und ob das überhaupt so geht. Aber sowas hat bestimmt schon mal jemand gemacht. Die Peripherie in einigen DSPs muss ja auch in reiner Digital-Technik laufen. Gruß Tec
Moin, ich würde mir das PWM-Konzept nochmal durchdenken, ob es nicht auch anders geht, denn solche Delay-Tricksereien für hohe Auflösung brauchen gehörig Erfahrung, abgesehen davon wird dir aber deine Taktquelle Probleme machen. Die hohe Auflösung bringt dir nix, wenn deine Referenz jittert, je nach FPGA-Technologie hast du da ganz unterschiedliches Verhalten der PLLs. Was willst du denn mit den PWMs erreichen? Analogwerte ausgeben ginge anders eleganter...
Ich steuere mit dem PWM Vollbrücken Stepdown/Up Wandler. Bei 48V Eingangsspannung und 5V Ausgang habe ich echt viel Ripple allein auf dem Strom nur weil der Duty im LSB kippt. Mit einem STm32F373 der so eine HRPWM hat geht das viel schöner. Da habe ich aber wieder das Problem das der nur SAR ADCs hat und ich damit einen lückenden Strom in der Spule nicht sauber erkennen kann. Deshalb die Sigma Deltas die einen sauberen Messwert liefern mit der Sample Gewichtung wie ich sie haben will. Das ist schon echt geil.
Tec N. schrieb: > Ich stelle mir das so vor, dass ich einen normalen sagen wir 100MHz > Zähler habe der ein PWM Signal generiert. Dieses Signal wird von einem > Gatter übernommen das von einem Phasenverschobenen 100MHz Takt getrieben > wird. Und diese Phasenverschiebung muss variabel sein. Sicher können FPGAs mit 10us genau arbeiten, aber Deine Idee hat mit FPGA nichts zu tun, sondern einfach mit einem wirren Konzept. Du musst Dir erst einaml überlegen, was Du haben willst. Schaltung hinmalen!
Nur mal ne Idee. So würd ich's probieren. PS: Funktioniert so nicht, aber wenn man die 8-Bit-PWM benutzt um beim R2R-Netzwerk zwischen den Werten des Dutycyles (bzw. der letzten 4 Bits) hin- und herschaltet müsste es gehen.
:
Bearbeitet durch User
Moin M.M. so wie ich deinen Vorschlag verstehe habe ich dann aber ein Analog Signal. Ich will aber eine PWM für eine Halbbrücke haben. Mein Problem ist eigentlich nur, dass ich keinen Controller finde mit einer HRPWM (<<10ns Auflösung der Pulsbreite) und integriertem Dezimationsfilter für die Signale von Sigma-Delta-Modulatoren. Diese HRPWM Peripherie muss doch auch in Digital Technik realisiert worden sein von den Herstellern. Wenn meine Vermutung passt muss das doch in einem FPGA realisierbar sein. @edit: https://www.researchgate.net/profile/Sivanandam_Kaliannan/publication/279205726_Design_and_Implementation_of_FPGA_based_High_Resolution_Digital_Pulse_Width_Modulator/links/5590c8eb08ae1e1f9bae2d1d/Design-and-Implementation-of-FPGA-based-High-Resolution-Digital-Pulse-Width-Modulator.pdf an sowas dachte ich. Nur ist ein Virtex-6 unnötig groß für meine Zwecke glaube ich. Gruß Tec
:
Bearbeitet durch User
Tec N. schrieb: > Keine Ahnung. Dafür habe ich zu wenig Erfahrung mit FPGAs. Das sind die besten Voraussetzungen. Ich hoffe, Du baust an einem Hobbyprojekt und nicht an einem sicherheitskritischen System. Tec N. schrieb: > Diese HRPWM Peripherie muss doch auch in Digital Technik realisiert > worden sein von den Herstellern. Wenn meine Vermutung passt muss das > doch in einem FPGA realisierbar sein. Sicher geht das und ein Dezimationsfilter braucht nicht unbedingt einen Virtex. Es kommt nur auf die Eingänge an, mit denen Du abtastest und wie. Den Virtex dürfte der im link genannte Herr benutzt haben, weil er ihn rumliegen hatte :-) Das Dezimieren kann man beliebig kompliziert machen. Einfach das Signal auf den Pin geben, wird aber nicht unbedingt zielführend sein, wegen Schaltschwellen, Rauschen etc. Das Abtastproblem kommt hinzu. Wichtigster Tipp: Ich würde mal erst den Filter weitgehend bauen und simulieren und mir dann den passenden FPGA aussuchen. Vielleicht auch mit etwas Reserve für weitere Kanäle und wer weiß was sonst noch ... Ich nehme an, der FPGA soll auch die Halbbrücke treiben? Da kommt dann nochmal das Thema Schaltschwellen, Pegel und Phasenrauschen rein. Je nach Analogbeschaltung kriegst Du das mit gefühlt
Edi. M. A. schrieb: > Je nach Analogbeschaltung kriegst Du das mit > gefühlt ... da fehlt noch was, oder? "Lattice MachXO2" Sollte für die Anwendung bequem reichen, denke Ich, wenn der FPGA sonst nichts macht. Komplizierte Regelungen würde Ich aber nicht im FPGA machen oder in einem ausreichend ausgebauten, wo ein richtiger Signalprozessor implementiert werden kann.
Kommt drauf an, es gibt Anwendungen, die im FPGA deutlich besser aufgehoben sind. Gerade bei schnellen Regelungen. Flugzeugtriebwerke brauchen z.B. eine schnelle Signalverabeitung mit hochgenauer Regelung bei hoher Abtastrate.
Ich will nur die Signalvorverarbeitung bzw. Nachbearbeitung im FPGA machen. Also quasi Berechnen der PWM Dutys und Berechnung verschiedenerer Messwerte aus den ADC Kanälen. ich habe mich da jetzt auf den MAX10 eingeschossen, weil ich mit Altera auf einem Cyclone V gute Erfahrungen gemacht habe, zwar nur mit der SW auf dem ARM aber Quartus gefiel mir eigentlich ganz gut.
:
Bearbeitet durch User
Worin besteht denn nun das konkrete Problem oder die Frage? Was soll denn z.B. der FPGA leisten, was der Prozessor nicht leisten konnte?
Ziemlich genau sowas habe ich mal gemacht. Mehrere Sigma-Delta-Signale einlesen, filtern, regeln und als PWM-Signal ausgeben. Die PWM-Frequenz lag bei 250 kHz, die Auflösung weiß ich aber nicht mehr. Dafür habe ich einen SmartFusion2 von Microsemi benutzt. Das ist ein SoC und hatte den Vorteil, dass die USB-Kommunikation zur Einstellung der Reglerparameter über der Prozessor lief und normal in C++ programmiert werden konnte. Dabei war wichtig, dass Fehler schnell erkannt werden. Deshalb wurden die Eingangsdaten einmal mit hoher Auflösung und einmal mit geringer Auflösung, aber dafür sehr schnell, gefiltert. Das konnte parallel laufen und während ein Filter das Signal mit hoher Auflösung errechnet hat, konnte gleichzeitig über ein anderes Filter mit wenigen Takten Verzögerung auf Fehlerfälle reagiert werden.
Je nachdem kann man das Problem auch mit Dithering lösen. Die PWM wechselt je nach eingestellten Sollwert zwischen zwei Weiten hin und her.
Peter schrieb: > Je nachdem kann man das Problem auch mit Dithering lösen. Die PWM > wechselt je nach eingestellten Sollwert zwischen zwei Weiten hin und > her. Oder, je nachdem was man regeln möchte, über eine Sigma-Delta-Modulation wieder ein 'Sigmal-Delta-Signal' erzeugen. Die Modulation funktioniert nicht nur in analog-zu-digital-Richtung.
@ Tec Nologic (tecnologic) Benutzerseite >Signal. Ich will aber eine PWM für eine Halbbrücke haben. Mein Problem >ist eigentlich nur, dass ich keinen Controller finde mit einer HRPWM >(<<10ns Auflösung der Pulsbreite) und integriertem Dezimationsfilter für >die Signale von Sigma-Delta-Modulatoren. Dies Kombination wird eher schwierig. Aber es gibt diese PWM-Generatoren als IC. http://www.ti.com/power-management/digital-power/overview.html Dort sind auch schon komplette Controller mit allem PiPaPo vorhanden. Ob das in dein Konzept paßt weiß ich nicht. >Diese HRPWM Peripherie muss doch auch in Digital Technik realisiert >worden sein von den Herstellern. Ist sie auch. > Wenn meine Vermutung passt muss das >doch in einem FPGA realisierbar sein. Jain. Sowas wurde von mehreren Leuten gebaut, ist aber als Soft-Core aufwändig und eher nicht sooo doll. Wenn man "nur" 100kHz/12 Bit == 410MHz braucht schafft man das einfacher mit normaler FPGA-Logik. Ein "langsamer" Block mit 50-100 MHz berechnet die Daten, welche dann von einem schnellen Datenblock serialisiert ausgegeben werden. Mit DDR-IOs sind das nur 205 MHz, das kann auch ein Spartan6. Und vergiss die Fokusierung auf QFP. Im Zweifelsfall musst du halt ein Mini-board auflöten. Oder vom Profi löten lassen. >an sowas dachte ich. Nur ist ein Virtex-6 unnötig groß für meine Zwecke >glaube ich. In der Tat. Der Trick mit den angezapftzen Gattern zur Generierung von phasenverschobenen Takten gibt es seit Ewigkeiten auch in FPGAs, so z.B. in den DLLs bei Xilinx, den IO-Delay Elementen etc. Das sind aber als Hard-Cores, die von vielen Leuten mit noch viel mehr Know How gebaut wurden.
Soviel Knowhow, um einen Takt zu schieben, braucht es auch nicht, meine Ich. Am meinsten Knowhow braucht man wohl, um zu erkennen, dies hier ein FPGA gar nicht von Nöten sein dürfte, weil Filterung auf mehreren Kanälen auch mit einem uc zu bewerkstelligen ist. Man darf eben bei PWM nicht in Zeitscheiben denken, wie das die Meisten wohl tun, siehe hier: Beitrag "Re: Differenzieren in VHDL" Der FPGA kann solche Sachen nämlich auch asynchron berechnen und zuvor sampeln. Dann ist man nicht an dessen Taktfrequenz und Auflösung gebunden.
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.