Hallo, ich würde gerne ein Energiemessgerät mit folgenden ADCs bauen: http://www.analog.com/media/en/technical-documentation/data-sheets/AD7403.pdf Zum Einlesen der Sigma-Delta-Wandler benötige ich ja ein SINC-Filter, welches ich in einem µC vermutlich nicht vernünftig realisieren kann. Die Idee wäre, das in einem kleinen CPLD oder FPGA umzusetzen. Ich hätte mir vorgestellt, dass das FPGA diese ADC und weitere (für die Spannungsmessung) ausliest, und die Werte dann einem µC fertig zur Verfügung stellt. Hinein in das FPGA müsste also das (oder die) SINC-Filter, das Interface zum ADC und das zum µC. Die Frage ist jetzt: Kann man das vernünftig in einem CPLD (MAX V) umsetzen? Wenn ja, wie groß müsste das sein? Oder benötige ich dazu ein richtigs FPGA mit den ganzen Arithmetikblöcken? Ich bin leider auf der Suche nach kleinen handlötbaren FPGA mit wenigen Pin nicht wirklich fündig geworden.
:
Verschoben durch Moderator
Richtig, SINC-filter sind viel zu kompliziert für moderne Microcontroller. Sowas lief nur auf den guten alten DSPs. Wenn das richtig gut und nach modernen Entwurfskriterien sein soll, wird ein MAX nicht reichen. Besser ist es, gleich einen richtigen FPGA mit ausreichend DSP-Elementen zu verwenden. Ich würde das entweder mit Xilinx HLS oder mit MATLAB Simulink machen. Du brauchst dann nur noch einen ADC-Link-Core und eine Instanz des FIR-Compilers aus MATLAB. Das Ganze möglichst hoch getaktet. Dann müssten sich die 50Hz schon gut genug erfassen lassen, um genau genug zu sein, denke Ich. Etwas einfacher in der Handhabung geht es mit einem Linux-System und der Programmierung des Interfaces in C. Dann kann man sich den Umweg über HSL und Synthese aus C heraus sparen, sondern das C direkt verwenden. Als Basis für ein schnelles und effektives Linux wäre ein Stratix gut geeignet. Zum Löten ist der Cyclone III wohl am Besten.
Alles totaler Quatsch. Heute löst man in den Hochschulen solche Probleme mit 128 Bit-RISC und Network-on-Chip. Mit links. Jetz aber mal zum Löten: Einen Spartan LX9 kriegt man grade noch mit der Lötlampe auf ne selbstgeäzte Platine gebraten. Nur bitte nicht das übrige FeCl3 in den Ententeich kippen.
Analog Devices ADSP-CM4xx Microcontroller haben ein Hardware SINC Filter drinne
Danke für die Antwort. Die Hardware hätte ich mir vorzugsweise selber gebaut, drum wäre ein einfaches CPLD natürlich schön gewesen. Ein FPGA kompliziert die Geschichte schon sehr. Ich nehme an, dass das kleinste MAX-10 hier reichen wird? Das ist schon ein richtiges FPGA mit 2k LEs und DSP-Blöcken.
Hurra schrieb: > Danke für die Antwort. Die Hardware hätte ich mir vorzugsweise > selber > gebaut, drum wäre ein einfaches CPLD natürlich schön gewesen. Ein FPGA > kompliziert die Geschichte schon sehr. > > Ich nehme an, dass das kleinste MAX-10 hier reichen wird? > Das ist schon ein richtiges FPGA mit 2k LEs und DSP-Blöcken. implementier doch den Filter mal auf Deinen µC. Und wenn er mehr als 10% der Ressourcen belegt, dann nimm einen µC für 3€ oder hänge eine 0 an den Quarz.
Hurra schrieb: > Zum Einlesen der Sigma-Delta-Wandler benötige ich ja ein SINC-Filter, > welches ich in einem µC vermutlich nicht vernünftig realisieren kann. Warum kannst du das nicht? Hurra schrieb: > Die Hardware hätte ich mir vorzugsweise selber gebaut, drum wäre ein > einfaches CPLD natürlich schön gewesen. Das, was ein CPLD rechnen kann, schüttelt ein billiger µC links aus dem Ärmel. > Ein FPGA kompliziert die Geschichte schon sehr. Allein schon der Ansatz, eine schnarchlangsame Funktion von einem µC auf programmierbare Hardware zu verlagern verkompliziert die Sache.
20MHz Delta-Sigma-Takt bei 16 Bit am Ausgang - das klingt nach hundert kHz oder so. Möglichkeit 1: Sinc-Rekonstruktion in analog. RC-Lowpass und ADC danach. Nicht die feine Art aber du musst dir nicht überlegen wie du das in ein FPGA(!) packst. Möglichkeit 2: Du liest dich etwas mehr in die Materie ein: Beitrag "Delta-Sigma-Modulator und SINC3 Filter" oder http://www.embedded.com/design/configurable-systems/4006446/Understanding-cascaded-integrator-comb-filters und realisierst dass du ein Sinc3 filter wahrscheinlich auch in einem alten XC9500 CPLD unterbringen könntest. Möglichkeit 3: Dir reicht ein simples IIR-Filter? Du bist mit den Koeffizienten flexibel? Dann lässt sich mit shiften und addieren auch weit kommen. Das PSOC4 hat "datapath"-Einheiten, eine 8-Bit ALU mit einer 8-schrittigen FSM dran. Da hab ich mal einen (8-Bit) decimator für ein Delta-Sigma-ADC reingepackt. Da fallen mir so viele Lösungsansätze ein... Du kannst natürlich auch ein sinc3 als FIR-Filter mit 20MHz getaktet in ein FPGA packen, aber da geht viel von der Eleganz von Delta-sigma verloren.
Lothar M. schrieb: > Hurra schrieb: >> Zum Einlesen der Sigma-Delta-Wandler benötige ich ja ein SINC-Filter, >> welches ich in einem µC vermutlich nicht vernünftig realisieren kann. > Warum kannst du das nicht?? Ja gut. Danke auch. Im Endeffekt kann man den Beitrag schließen. Ich werde mir ein anderes Projekt suchen, da ich für dieses offensichtlich zu dumm bin :-(
Sieh Dich doch mal auf der Seite von TI bei MSP430 um. diese haben vernünftige und für Deine Aufgabe ausreichende AD's implementiert. Und nen Tiefpass wirst Du ja wohl auch davor geraffelt bekommen... Z.B. einen aktiven...
Hurra schrieb: >> Warum kannst du das nicht?? > Ja gut. Danke auch. Die Frage war ernsthaft gemeint: warum erwartest du Probleme bei der spezifischen Implementierung der Aufgabe hier? Denn die eigentliche Frage war ja: >>>> ich würde gerne ein Energiemessgerät mit folgenden ADCs bauen Warum braucht dieses Energiemessgerät ein FPGA und einen uC, wo andere mit letzterem auskommen? > Im Endeffekt kann man den Beitrag schließen. > Ich werde mir ein anderes Projekt suchen, da ich für dieses > offensichtlich zu dumm bin :-( Man wächst an der Aufgabe. Wenn du das unbedingt machen willst, dann fang einfach damit an. Aber fang nicht mit einem CPLD an, dort wird die Hose schnell zu eng. Nimm ein FPGA und implementiere das Filter dort. Und wenn es läuft, dann denke über Optimierungsmaßnahmen nach und wenn du dabei herausfindest, dass es auf ein kleines CPLD passt, dann hast du dein gewünschtes Ziel erreicht. Dort wurde das mit dem FPGA schon mal implementiert: http://www.ti.com/lit/an/sbaa094/sbaa094.pdf
Hurra schrieb: > Ich werde mir ein anderes Projekt suchen, da ich für dieses > offensichtlich zu dumm bin :-( ... da zu wenig Wissen hast und wohl auch zu wenig engagement, Dich vorzubilden. Es gibt ja Implementierungen dazu und wenn man weiß, was für ein Filter man braucht, kann man es mathematisch hinschreiben. Wenn man das hat, kann man es auch in VHDL hinschreiben. Für PLD und FPGA ist das derselbe input. Du musst also Deine Fragestellung modular angehen und schauen, was Dir an Wissen fehlt. Das scheint einiges zu sein. Im Übrigen kann man hier wohl davon ausgehen, daß die Aufgabe eben genau darin besteht, eine einfache Geschichte in einen PLD zu bringen, um an allen Fronten zu lernen. Das erfordert aber einen gewissen Überblick über die nötigen Schritte, die zu gehen sind. Wenn DER nicht da ist, dann hast Du nicht nur die falsche Aufgabe, sondern bist auf dem falschen Berufsweg. Ich fürchte, hier ist weider ein Studi unterwegs, der im Hauruckverfahren schnell und oberflächlich was in einen Digitalbaustein quetschen will, um ein Ergebnis zu bekommen, das ihm sein Betreuer abfordert ohne zu kapieren, dass die baiscs noch gar nicht da sind. Leider ist das heute irgendwie normal: An der ehemaligen FH Darmstadt gab es dazu vor einigen Wochen eine Diskussion mit Lehrkräften über die weitere Ausrichtung der Fachbereiche und man konnte den Tenor erkennen: Mehr, mehr, mehr und schneller, schneller, schneller. Wissen reinstopfen um jeden Preis! Die Jugend soll für die Industrie 4.0 fit gemacht werden und am Besten binnen 3 Jahren lernen, eine completten JAVA-Compiler zu schreiben, der Bauanleitungen in CAD-script-Sprachen auswirft, um ganze Fabriken hinzustellen, die Satelliten bauen können, wobei die Elektronik per VHLD selbstkonfiguriert und die Software aus dem Model based design rausfällt. Praktisch scheitern die so oberflächlich gebildeten Studies dann aber schon am Newtonschen- oder Ohmschengesetz. Wenn in meiner Generation die FH-Studenten, weil sie im Mittel 1.5 Jahre weniger studierten, als "Dünnbrettbohrer-Ingenieure" betitelt wurden, dann muss man heute sicher von "Papp-Ingenieuren" reden: Wissen: 150%. Davon belastbar 50%. Verständnis 20%, Transferdenken 2%
Beitrag #4934940 wurde von einem Moderator gelöscht.
Beitrag #4935022 wurde von einem Moderator gelöscht.
Hurra schrieb: > Zum Einlesen der Sigma-Delta-Wandler benötige ich ja ein SINC-Filter, Hmmm... Ich glaube, das brauchst du nicht. Der AD7403 ist kein vollständiger ADC, sondern lediglich eine DS-Modulator. Wenn du die Energie im Signal (= Integral (Leistung) dt = Integral (Spannung mal Strom) dt) damit messen willst, brauchst du nichts weiter, als die Ausgangsbits der beiden Modulatoren als +1 (high) und -1 (low) zu interpretieren, sie miteinander zu multiplizieren (das Ergebnis ist wieder +/-1) und zu akkumulieren. Das Ergebnis repräsentiert die Energie. DZDZ
Hurra schrieb: > Hallo, > > ich würde gerne ein Energiemessgerät mit folgenden ADCs bauen: > http://www.analog.com/media/en/technical-documentation/data-sheets/AD7403.pdf Warum? Es gibt für die Energiemessung spezielle AFEs (Analog Front Ends), die alles benötigte enthalten. Beispielsweise: http://www.microchip.com/wwwproducts/en/MCP3911 für eine Phase und http://www.microchip.com/wwwproducts/en/MCP3913 für drei Phasen. Da kommt SPI raus, das Du mit einen Si86xx oder einem ADuM14xx galvanisch isolieren kannst, und anschließend musst Du nur noch aufintegrieren. Grundlagen E-Technik, erstes Semester halt. Wenn Du ein Gesamtpaket sucht, schau Dir das hier an: http://www.ti.com/product/msp430f6769a Dieser Prozessor ist extra für Stromzähler gebaut worden und hat 6 24-Bit ADCs eingebaut. Wohlgemerkt 6 einzelne, die alle parallel arbeiten und nicht einen mit einem Multiplexer davor. fchk
Lothar M. schrieb: > Hurra schrieb: >>> Warum kannst du das nicht?? >> Ja gut. Danke auch. > Die Frage war ernsthaft gemeint: warum erwartest du Probleme bei der > spezifischen Implementierung der Aufgabe hier? Denn die eigentliche > Frage war ja: >>>>> ich würde gerne ein Energiemessgerät mit folgenden ADCs bauen > Warum braucht dieses Energiemessgerät ein FPGA und einen uC, wo andere > mit letzterem auskommen? > Ok, dann habe ihc das falsch verstanden. Warum ich Probleme erwarte: Sagen wir, ich taste mit 20kSPS ab. Ich müsste 6 Kanäle messen, davon 3x Sigma-Delta mit 20MHz. Folgende Probleme sehe ich: - Die 3 Kanäle seriell mit 20MHz einlesen - Das durch den SINC-Filter jagen - Gain / Offset Korrektor drüberrechnen - Zusätzlich 3x Spannung messen - Daraus einen Leistungswert berechnen Ich würde gerne PIC32MX verwenden, weil ich die schon gut kenne. Mein Bauchgefühl sagt mir, dass ich alles das in 50µs nicht hinbekomme, oder zumindest bleibt mir nicht genug Rechenleistung für den Rest übrig. Ein FPGA würde mir schon viel abnehmen, da müsste ich nur noch die Werte abholen und hätte mehr Rechenzeit übrig. >> Im Endeffekt kann man den Beitrag schließen. >> Ich werde mir ein anderes Projekt suchen, da ich für dieses >> offensichtlich zu dumm bin :-( > Man wächst an der Aufgabe. Wenn du das unbedingt machen willst, dann > fang einfach damit an. Aber fang nicht mit einem CPLD an, dort wird die > Hose schnell zu eng. Nimm ein FPGA und implementiere das Filter dort. > Und wenn es läuft, dann denke über Optimierungsmaßnahmen nach und wenn > du dabei herausfindest, dass es auf ein kleines CPLD passt, dann hast du > dein gewünschtes Ziel erreicht. > Dort wurde das mit dem FPGA schon mal implementiert: > http://www.ti.com/lit/an/sbaa094/sbaa094.pdf Ich sehe ein, dass da ein FPGA sinnvoller ist. @Frank K: Den MSP430 würde ich nicht so gerne benutzen, mit diesen habe ich noch nie gearbeitet. Die Analog Frontend-IC von Microchip sehen dafür aber umso interessanter aus. Da werde ich mir morgen die Datenblätter genauer ansehen. Mich überrascht der Preis etwas, die sind schon sehr billig. Vermutlich ein Massenartikel. Danke schon mal für die Antworten! Ich werde beide Konzepte mal durchüberlegen und mich dann wieder melden.
Hallo, nach Sichtung der Datenblätter und weiterer Recherche, glaube ich ohne FPGA auszukommen. Dank dem Tipp von Frank K. mit den Analog Frontends bin ich auf einen sehr praktischen Baustein gestoßen: http://www.analog.com/media/en/technical-documentation/data-sheets/ADE7912_7913.pdf Da ist sehr viel schon integriert, zum Beispiel die galvanisch getrennte Versorgung für die "andere Seite". Und vor allem schon die ganzen Filter, Gain-Offset-Korrektur und der Nullspannungsdetektor. Die Hardware wird damit vergleichsweise simpel - ein Blockschaltbild für ein Konzept mit FPGA hat gezeigt, dass diese Lösung SEHR viel einfacher ist, insbesondere wenn man die nötige sichere Trennung bedenkt. Einzig die Samplerate ist um einiges schlechter. Für einen ersten Prototypen und zur Einarbeitung in den ganzen Digitalen-Signalverarbeitungskram wird das aber reichen. Für ein einfaches Leistungsmessgerät sowieso. Ich hoffe, mit einem einfachen PIC32MX470 auszukommen. Naja, wird man ja sehen. Das scheint mir vom Schaltungsaufbau die sinnvollste Lösung zu sein. Danke nochmal an Frank K. für den Tipp mit den Analog Frontends! Das ist wirklich hilfreich. Wenn ich ein Konzept habe, werde ich das hier einstellen.
Hurra schrieb: > Ich hoffe, mit einem einfachen PIC32MX470 auszukommen. Naja, wird man ja > sehen. Ähm... Schau mal hier. http://www.microchip.com/DevelopmentTools/ProductDetails.aspx?PartNO=ARD00385 Das ist ein Referenzdesign für den MCP3911, und zwar ein elektronischer Stromzähler. Die kommen da mit einem PIC18 aus. Das Design solltest Du Dir mal anschauen, dabei aber unbedingt im Hinterkopf behalten, dass die gesamte Schaltung auf Netzspannung liegt. In dieser Anordnung völlig in Ordnung, aber Du solltest den Prozessor besser galvanisch trennen. Erhöht Deine Lebenszeit. So, und wenn Du ganz fault bist, schaust Du Dir den CS5490 an. Der macht dann nämlich auch die ganze Mathematik selber, und Du brauchst Dir die Messwerte für Ueff, Ieff, P, Q und S einfach nur per UART abzuholen. Etwas ähnliches gibts auch für drei Phasen. Bei Analog sieht das ganze so aus: http://www.analog.com/en/products/analog-to-digital-converters/integrated-special-purpose-converters/energy-metering-ics/ade7953.html Hier musst Du die Werte per SPI rausholen. fchk
Frank K. schrieb: > dabei aber unbedingt im Hinterkopf behalten, dass die > gesamte Schaltung auf Netzspannung liegt. In dieser Anordnung völlig in > Ordnung, aber Du solltest den Prozessor besser galvanisch trennen. > Erhöht Deine Lebenszeit. Genau deswegen hat er sich ja die beiden AnalogDevices ADCs ausgesucht. Die sind galvanisch getrennt.
Was spricht denn gegen einen fertigen Chip wie zB ADE 7858 oder Familie. Der kann das alles mehr oder weniger.
Hi, ich habe mir ein Konzept basierend auf den ADE7912 überlegt, siehe Bild. Im Prinzip habe ich 3 unabhängige, voneinander galvanisch getrennte Kanäle vorgesehen. Mit denen könnte man entweder die Leistung eines Drehstromgerätes erfassen, oder von 3 Einphasigen Geräten gleichzeitig. Oder eine Messbereichsumschaltung realisieren. Sonst gibts noch eine Micro-SD-Karte (Langzeitaufzeichnung) und eine RTCC (mit Batterie oder Goldcap), so dass die Uhrzeit nicht bei jedem Abstecken neu zu stellen ist. Ein GLCD und Tasten gibts für die Bedienung. Zum Auslesen der Daten finde ich WLAN sinnvoll, zumindest hier im Haus habe ich nicht überall Ethernet, und einen PC herumschleppen finde ich unpraktisch. Eine Frage hätte ich noch: Würde mir ein Nulldurchgangssensor bei der Berechnung von Leistung, Netzoberwellen oder Blindleistung einen Mehrwert bieten? Für weitere Anregungen / Kritik wäre ich dankbar. Was die höher integrierten IC angeht: Das wäre mir zu unflexibel. Der ADE7912 erscheint mir da als recht sinnvoller Kompromiss - einfache Auswertung, aber noch flexibel.
Hurra schrieb: > ich habe mir ein Konzept basierend auf den ADE7912 überlegt, siehe Bild. ... > Für weitere Anregungen / Kritik wäre ich dankbar. Bitte einen Mod diesen thread aus dem FPGA-subforum in ein passenderes, bspw: https://www.mikrocontroller.net/forum/dsp zu verschieben.
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.