Hallo und frohe Weihnachten an alle... (FPGAs und CPLDs sind relativ neu für mich, bitte nicht steinigen...) Ich möchte gerne einen Delta Sigma PWM Demodulator/Filter (16bit Auflösung) auf Parallelumsetzer bauen, wo der Modulator selbst mit rund 20MHz läuft und Netzspannung abtastet (also 50Hz). Der Modulatorchip existiert bereits (AMC1303x). Vermutlich könnte das auch ein ESP32 mit 80Mhz Clock bewerkstelligen, aber da fehlt der Lerneffekt. Nun bin ich mir nicht sicher, ob ich das mit einem CPLD oder FGPA angehen sollte, da ich nicht wirklich weiss, wieviel Speicher/Flash nötig sein werden. Bevorzugt würde ich einen alten XC9572 nehmen, wenn man das in den CPLD gegossen bekommt, da ich dafür kein externes Flash brauche. Hat jemand Erfahrungswerte für einen derartigen Demodulator, worauf der am besten aufgehoben ist? Ich könnte einen AMC1210 verwenden, aber ich würde das gerne selber mal auf einem CPLD/FPGA realisieren. Ich möchte die Schaltung ungern aufblähen (FPGA muss nicht zwangsweise sein), aber bin offen für neues. Besten Dank
Schwer zu sagen. Gefühlsmäßig würde ich sagen, das sollte in einen CPLD passen, das ist aber Kaffeesatzleserei. Der beste Weg wird es sein, das mal zu implementieren und dann probeweise für CPLD zu synthetisieren. Dann hast du belastbare Ergebnisse, must aber eben eine Toolchain installieren. Aber das musst du sowieso machen. Allerdings ist CPLD nicht gerade die Zukunftstechologie.
Code ist in einem aus dem Datenblatt verlinkten PDF. https://www.ti.com/lit/an/sbaa094/sbaa094.pdf Sieht überschaubar aus ...
Wie groß ist denn die PWM-Frequenz?
vancouver schrieb: > Wie groß ist denn die PWM-Frequenz? 20 MHz, nehme ich an - steht so oben. Das ist in einem CPLD gar kein Thema. Ist ein klassisches Dezimationsfilter. Allerdings frage ich mich, wozu man eine 20MHz PWM benötigt, um Netzfrequenzen abzutasten. Das geht auch mit einem Bruchteil. Jedenfalls wirst du eine gute Dämpfung haben, bei DEM Übersetzungsverhältnis. Bei einem ESP32 würde ich aber mit der PWM-Frequenz auf 2MHz herunter gehen, das reicht bequem, um 50Hz zu erfassen und der Prozessor hat weniger zu tun, zumal du 3 Kanäle berechnen willst. (2 MHz entsprechen ungefähr dem, was die Audio-CD abliefert)
Gregor schrieb: > Allerdings frage ich mich, wozu man eine 20MHz PWM benötigt, um > Netzfrequenzen abzutasten. Wenn man das filtert und eine ordentliche ENOB haben will, dann bleiben von den 20 MHz noch ein paar kHz übrig.
Spice schrieb: > Ich möchte gerne einen Delta Sigma PWM Demodulator/Filter (16bit > Auflösung) auf Parallelumsetzer bauen, wo der Modulator selbst mit rund > 20MHz läuft und Netzspannung abtastet (also 50Hz). Der Modulatorchip > existiert bereits (AMC1303x). Was willst du denn bitte messen? Für 50Hz braucht man doch so einen Wandler nicht.(???) 3-Phasen-Überwachung für daheim wird es wohl kaum sein.
Sieht aber so aus als wäre das genau ein Anwendungsgebiet für den Baustein.
Wir machen das mit einem Übertrager zur Netztrennung von 400V (bei Dreiecks) auf 4V und nehmen ganz normale Wandler mit 3V und 2:1-Eingangsabschwächer. Der misst dann typisch 1,9V bzw. 1,15V Vss im Stern. Geht wunderbar mit einem Micocontroller, der noch Temperaturmessung und I2C mit bedient.
Besten Dank für die vielen Beiträge... Gustl B. schrieb: > Code ist in einem aus dem Datenblatt verlinkten PDF. > https://www.ti.com/lit/an/sbaa094/sbaa094.pdf Sieht überschaubar aus ... Das sieht ziemlich interessant aus Gregor schrieb: > vancouver schrieb: >> Wie groß ist denn die PWM-Frequenz? > 20 MHz, nehme ich an - steht so oben. Das ist in einem CPLD gar kein > Thema. Ist ein klassisches Dezimationsfilter. > > Allerdings frage ich mich, wozu man eine 20MHz PWM benötigt, um > Netzfrequenzen abzutasten. Das geht auch mit einem Bruchteil. Jedenfalls > wirst du eine gute Dämpfung haben, bei DEM Übersetzungsverhältnis. > > Bei einem ESP32 würde ich aber mit der PWM-Frequenz auf 2MHz herunter > gehen, das reicht bequem, um 50Hz zu erfassen und der Prozessor hat > weniger zu tun, zumal du 3 Kanäle berechnen willst. > > (2 MHz entsprechen ungefähr dem, was die Audio-CD abliefert) Bin relativ neu in dem Thema und habe mir das einfach mal zur Aufgabe gemacht, um in die Thematik mal reinzukommen. Ich brauche keine PWM am Ende, da gibt es anscheinend verschiedene Versionen von dem Chip, der verschiedene Ausgangssignale generieren kann. Wenn ich das richtig verstehe, bekomme ich am Ausgang des Chips ein Bitstream mit 20MHz/2, wo ich für eine x beliebige Dauer beliebig tief (bis 20MHz) abtasten/dezimieren kann? Wenn wenn man mag, könnte man sich aus dem Bitstream dann eine PWM bauen (auch wieder mit beliebiger Frequenz), richtig? -gb- schrieb: > Gregor schrieb: >> Allerdings frage ich mich, wozu man eine 20MHz PWM benötigt, um >> Netzfrequenzen abzutasten. > > Wenn man das filtert und eine ordentliche ENOB haben will, dann bleiben > von den 20 MHz noch ein paar kHz übrig. So in etwa habe ich mir das vorgestellt, da der Chip ja anscheinend genau für Netzspannungsmessungen gedacht ist. Quasi doch eine 3 Phasenüberwachung...
Harald E. schrieb: > Wir machen das mit einem Übertrager zur Netztrennung von 400V (bei > Dreiecks) auf 4V und nehmen ganz normale Wandler mit 3V und > 2:1-Eingangsabschwächer. Der misst dann typisch 1,9V bzw. 1,15V Vss im > Stern. Geht wunderbar mit einem Micocontroller, der noch > Temperaturmessung und I2C mit bedient. Du meinst: Übertrager 100:1 -> Spannungsteiler -> AD Wandler -> Mikrocontroller? Hört sich klassisch an, aber mir fehlt da die Logik in Hardware ;-) Hab für sowas auch mal einen Stromwandler vergewaltigt, Primärseitig 2mA RMS Strom fließen lassen, auf der Sekundärseite die 2mA durch einen Bürdenwiderstand fließen lassen, die Spannung auf ein OP geführt und anschließend mit einem Mikrocontroller gemessen. Geht auch...
Es kommt halt darauf an, was man messen will und welche Informationen man aus dem Signal ziehen möchte. Für einfach mal eben 50Hz messen, um Phase und Amplitude zu ermitteln, geht es deutlich einfacher und billiger, als mit extra Chips und PLDs. Für solche Überwachungseinheiten verwenden wir den ADC mit MUX in einem UC. Die Rate liegt bei unter 1MHz für 4 Kanäle mit 3 Phasen. Der Übertrager steckt als Luftspule + Koppelkapazitäten in der Platine. Da kann man sich den Weg über die Dezimation sparen. Ich frage außerdem aus einem ganz bestimmten Grund: Die Aufgabe kommt mir irgendwie bekannt vor und wurde so ähnlich vor Kurzem schon anderweit angefragt (mit praktisch demselben Chip). Entweder möchte dort / hier jemand seine Master-Thesis-Aufgaben vom Forum lösen lassen und hat vom Prof eine besonders umständliche Realisierung vorgeschlagen bekommen, oder er hat den Kern der Aufgabe nicht verstanden und es steckt mehr dahinter. ISt der Anspruch an die Messgenaugkeit komplizierter, sollte man sich die Aufgabe nochmals durchlesen oder vergegenwärtigen, was die Randbedingungen genau sind. Die 50Hz aus der Steckdose hinter meterlangen Kabeln sehen weidlich anders aus, als die an einem Synchrongenerator in einem Kraftwerk oder gar in der Nähe eines Großverbrauchers mit seinen Störungen. Für letzteres haben wir auch Lösungen abzubieten, die aber in Richtung 5-stellig gehen, für eine Einzelanlage. Am Ende möchte sich hier wieder jemand auf die Netzphase aufsynchronisieren, um seine DIY-PV-Anlage zu steuern. Dafür muss man aber schon einiges an Filter- und Regelaufwand treiben, dass es funzt und nicht Silvesterfeuerwerk gibt. Der Knackpunkt ist nämlich, dass man nichts mehr Gescheites misst, sobald man dort eingreift und sich aufschaltet.
Harald E. schrieb: > Für solche Überwachungseinheiten verwenden wir den ADC mit MUX in einem > UC. Die Rate liegt bei unter 1MHz für 4 Kanäle mit 3 Phasen. Der > Übertrager steckt als Luftspule + Koppelkapazitäten in der Platine. Da > kann man sich den Weg über die Dezimation sparen. Klingt sehr interessant. Luftspule + Kapazitäten in der Platine? Wie kann man sich das vorstellen? 4 Kanäle für 3 Phasen? Harald E. schrieb: > Ich frage außerdem aus einem ganz bestimmten Grund: Die Aufgabe kommt > mir irgendwie bekannt vor und wurde so ähnlich vor Kurzem schon > anderweit angefragt (mit praktisch demselben Chip). Lach, ich schreibe keine Masterarbeit mehr und eine PV Anlage betreibe ich auch nicht. Will mich nur in die Thematik Delta Sigma und die Verarbeitung der Daten einarbeiten (bestenfalls in Kombination mit einem CPLD oder FPGA). Netzspannung war an der Stelle naheliegend. Wenn am Ende was Zustande kommt, wo ich einen beliebigen Delta Sigma Wandler mit einem FPGA verarbeiten kann, bin ich zufrieden.
Spice schrieb: > Nun bin ich mir nicht sicher, ob ich das mit einem CPLD oder FGPA > angehen sollte, da ich nicht wirklich weiss, wieviel Speicher/Flash > nötig sein werden. Bevorzugt würde ich einen alten XC9572 nehmen, wenn > man das in den CPLD gegossen bekommt, da ich dafür kein externes Flash > brauche. Die XC95 sind grausam klein bezüglich der Speicherelemente, bei dem genannten haste gearde mal 72 Flipflops. Könntest also grade mal 3x 24 bit Zähler damit aufbauen. Um belastbare Zahlen für den Resourcenbedarf zu ermiteln, schreibst du einfach den HDL-Code, den Du ohnehin schreiben müsstest (egal ob FPGA oder CPLD) und lässt den mal für die beide Architekturen durchlaufen. Um ein konkretes Beispiel zu nennen wie wenig 72 FF sind, für eine 6-stellig 7-Segmentuhr die mit einem 95XC laufen sollte (36 oder 72) plant man besser einen niedrigen Uhrquarz (32768kHz) ein, weil sonst die Gefahr besteht, das die FF für den Takteiler ausgehen. >Ich möchte die Schaltung ungern >aufblähen (FPGA muss nicht zwangsweise sein), aber bin offen für neues. Dann schau die FPGA-Module an, Da gibt es kleine (62x25 mm) die man einfach auf seine Schaltung draufstecken kann, bspw https://shop.trenz-electronic.de/de/TEI0001-03-08-C8-MAX1000-IoT-Maker-Board-8kLE-8-MByte-RAM und dann hat man neben ca 20 FGPA-GIOS gleich USB, Externen Speicher, Flash etc. Die für Einsteiger kosten weniger als 40€, es gibt auch einige mit Extra Peripherie für Maschinensteuerung, etc.. Einfach mal bei Trenz oder arrow umschauen. https://www.arrow.de/products/analogmax-daq1/trenz-electronic-gmbh
Lutz Locus schrieb: > niedrigen Uhrquarz (32768kHz) Tippfehler: 32,768 KHz aber das sollte mit der bezeichnung Uhrenquarz klar sein. Gustl B. schrieb: > Code ist in einem aus dem Datenblatt verlinkten PDF. > https://www.ti.com/lit/an/sbaa094/sbaa094.pdf Sieht überschaubar aus ... Ich seh da mindestens 7 register a 25bit breit, das lässt den 95XC72 sicher 'platzen'.
Spice schrieb: > Will mich nur in die Thematik Delta Sigma und die > Verarbeitung der Daten einarbeiten (bestenfalls in Kombination mit einem > CPLD oder FPGA) Also "Delta Sigma" ist nur die (sozusagen) Vorsilbe. Du hast in dem, was du hier geschrieben hast, den Modulator mit dem Demodulator lustig durcheinander gebracht. Mein Vorschlag wäre, auf der einen Seite sowohl den Delta-Sigma-Modulator als auch den Delta-Sigma-Demodulator (resp. den Sigma-Delta-ADC) per Literatur verstehen zu lernen und auf der anderen Seite das Verstehen und Verwenden von CPLD's und FPGA's anhand anderer Verwendungszwecke zu erlernen. W.S.
Mal ne dumme Frage zur Demodulierung: Ja, man kann da Filter unterschiedlicher Aufwendigkeit bauen. Aber reicht es nicht die 1sen zu zählen? Ich stelle mir das vor wie ein 16 Bit Zähler, wenn eine 1 reinkommt, dann wird +1 gerechnet, wenn eine 0 reinkommt, dann -1. Alle 2**16 Takte hat man dann als Zählerwert die Anzahl der 1sen und somit einen 16 Bit Wert. Nachteil: Das ist langsam. 20 MHz / 2**16 = 305, man bekommt damit also nur 305 Werte je Sekunde. Braucht aber eben auch kaum Logik. Der Zähler macht aber ja sowas wie einen gleitenden Mittelwert. Da muss man nicht warten bis der komplett einmal erneuert wurde nach den 2**16 Takten, man kann auch zwischendrinnen Werte rausholen wenn man eine höhere Abtastrate haben will. So habe ich das bisher mit MEMS Mikrofonen gemacht die ja auch einen PDM Datenstrom ausgeben. Funktioniert wunderbar.
Gustl B. schrieb: > Ja, man kann da Filter unterschiedlicher Aufwendigkeit bauen. Aber > reicht es nicht die 1sen zu zählen? Natürlich reicht das und das tut man indirekt ja auch. Es passiert beim Aufwärts-Abwärtszählen eben nur kontinuierlich. Gustl B. schrieb: > So habe ich das bisher mit MEMS Mikrofonen gemacht die ja auch einen PDM Reden wir nun von PDM oder PWM? Bei MEMS ist der Anspruch nicht so hoch, da reicht eine einfache Dezimation.
Gregor schrieb: > Reden wir nun von PDM oder PWM? PDM. Ich weiß nicht wo hier im Thread das PWM herkommt. Ja, das hat der TO oben mal geschrieben, einmal, aber ein Delta Sigma Modulator erzeugt einen PDM Datenstrom. Also Pulsdichtemodulation. PWM könnte man als eine Sonderform der PDM betrachten bei der man alle 1sen und 0en sortiert und nebeneinander anordnet.
Gustl B. schrieb: > PWM könnte man als eine Sonderform der PDM betrachten bei der man alle > 1sen und 0en sortiert und nebeneinander anordnet. Das ist aber nur begrenzt richtig, weil die Eigenschaft Nr 1 des PDM die variable Wiederholrate ist. Ein Mittelwert um die 0 ist also nicht etwa: 0000.0000.0000.0000.1111.1111.1111.1111 sondern 0101.0101.0101.0101.0101.0101.0101.0101 Das hat Auswirkungen für die Signalanstiege, die viel feiner abgebildet werden, was bedingt, dass der DSM hohen Frequenzen besser folgen kann ... ... abhängig von der Ordnung des DS-Modulators, welche maßgeblich ist für die Art und den Umfang der Filterung. Nur mit Dezimation nach dem Datenblatt des ADC hat es immer noch ordentliche Störungen. Beitrag "CIC-Filter für Halbierung der Abtastrate" Beitrag "ADC - Dezimierung" Beitrag "Rate Decimation / Tiefpassfilter"
Lutz Locus schrieb: > Dann schau die FPGA-Module an, Da gibt es kleine (62x25 mm) die man > einfach auf seine Schaltung draufstecken kann, bspw > https://shop.trenz-electronic.de/de/TEI0001-03-08-C8-MAX1000-IoT-Maker-Board-8kLE-8-MByte-RAM > und dann hat man neben ca 20 FGPA-GIOS gleich USB, Externen Speicher, > Flash etc. Den MAX1000 habe ich hier zufällig liegen, werde damit mal starten. Lutz Locus schrieb: > Ich seh da mindestens 7 register a 25bit breit, das lässt den 95XC72 > sicher 'platzen'. ich habe mir das auch weniger Komplex als globalen 16bit Zähler vorgestellt, wo ich dann am Ende die Pulsdichte in einem Register vorliegen habe, schlimmstenfalls also 16 bit register... W.S. schrieb: > Mein Vorschlag wäre, auf der einen Seite sowohl den > Delta-Sigma-Modulator als auch den Delta-Sigma-Demodulator (resp. den > Sigma-Delta-ADC) per Literatur verstehen zu lernen und auf der anderen > Seite das Verstehen und Verwenden von CPLD's und FPGA's anhand anderer > Verwendungszwecke zu erlernen. Echt wilde Idee von dir, aber ich sagte doch bitte nicht direkt steinigen Gustl B. schrieb: > Gregor schrieb: >> Reden wir nun von PDM oder PWM? > > PDM. Ich weiß nicht wo hier im Thread das PWM herkommt. Ja, das hat der > TO oben mal geschrieben, einmal, aber ein Delta Sigma Modulator erzeugt > einen PDM Datenstrom. Also Pulsdichtemodulation. > PWM könnte man als eine Sonderform der PDM betrachten bei der man alle > 1sen und 0en sortiert und nebeneinander anordnet. PDM, sorry für die Verwirrung, einiges gelernt seit gestern ;-)
Spice schrieb: > ich habe mir das auch weniger Komplex als globalen 16bit Zähler > vorgestellt, wo ich dann am Ende die Pulsdichte in einem Register > vorliegen habe, schlimmstenfalls also 16 bit register... Da geht es schon los: Um 16 Bit Qualität im Register zu haben, muss man je nach eingeprägtem Spektrum mit bis zu 32 Bit Auflösung zählen. Das lässt sich z.B. testen, wenn man einen Funktionsgenerator mit eine hohen Frequenz und leichten Modulationen einspeist. Minimal reichen wahrscheinlich 16.5 Bit, also 17, wenn es sich um ein steriles Signal am unteren Bandende handelt. Statistisch, also für eine weisses Signal, sollten 24 Bit ok sein. Ich würde mit 32 Bit Zählern arbeiten und entsprechend lange integrieren. Für den Fall mit Netzfrequenz könnte weniger reichen. Für ein typisches Ratenfilter mit 3 Stufen braucht es mindestens N/2 je Stufe mehr an Bits, also S1 = 16 Bit, S2 = 16+8=24 Bit, S3 = 16+8+8=32 Bit. Das passt dann maximal zu den Dezimationsstufen N=8 -> 256. Damit kommt man auf 1/256/256/256 = 1/16 Mio runter. Für 50 Hz gehen wahrscheinlich 1/128. Dann reichen auch weniger Bits, sagen wir 16+23+30 oder so.
Spice schrieb: > PDM, sorry für die Verwirrung, einiges gelernt seit gestern ;-) OK, PDM braucht nach meinem Verständnis ein Startsignal um Bias-frei zu sein, das kommt dann zum seriellen Clock und Datenstrom hinzu. Dann steht da Drei Kanal in der Forderungsliste. Teilen sich die Drei Kanäle signale/Register (bspielwsweise, sclk,sinit) oder sind die komplett unabhängig? Wie schauts mit dem parallelen Output aus: Dreimal 16 bit. oder einmal plust eingehende Selectionssignale?.
Lutz Locus schrieb: > OK, PDM braucht nach meinem Verständnis ein Startsignal um Bias-frei zu > sein, das kommt dann zum seriellen Clock und Datenstrom hinzu. Wie meinst du das? Ich dachte eigentlich, dass ich zu einer beliebigen Zeit anfangen kann abzutasten, ohne irgendein Startsignal oder eine zusätzliche Synchronisierung? Bei 3 mal 16 bit würde ich das mit der parallelen Ausgabe nochmal überdenken. Ich vermute eine SPI wäre da die bessere Option. Die 3 Kanäle plus das FPGA/CPLD können sich eine Clock teilen, quasi parallel und synchron abtasten. Wenn da eine SPI dabei ist, ist sicherlich ein FPGA gesetzt, aber wie gesagt, ich habe den MAX1000 hier liegen, damit könnte ich erstmal spielen.
Spice schrieb: > Lutz Locus schrieb: >> OK, PDM braucht nach meinem Verständnis ein Startsignal um Bias-frei zu >> sein, das kommt dann zum seriellen Clock und Datenstrom hinzu. > > Wie meinst du das? Ich dachte eigentlich, dass ich zu einer beliebigen > Zeit anfangen kann abzutasten, ohne irgendein Startsignal oder eine > zusätzliche Synchronisierung? ich meine das im Zusammenhang mit: >> Ich stelle mir das vor wie ein 16 Bit Zähler, wenn eine 1 reinkommt, >> dann wird +1 gerechnet, wenn eine 0 reinkommt, dann -1. Es wird also nur eine Art differenz übermittel und nicht der Absolutwert. Würde jetzt die Abtastung des 50 HZ sinus zum Zeitounkt des positiven Scheitelwertes beginnen würde der Zählerstand erst mal ins Negative gehen, statt dem wert von 230V o.ä. zu entsprechen. Deshalb wäre es doch nötig, den absoluten Startwert einzustellen, respektive wenn der Startwert des Zählers 0x0000 ist, mit der Abstadtung zu beginnen, wenn der Realwert die Entsprechung v.0x00 errreicht hat. > Wenn da eine SPI dabei ist, ist sicherlich ein FPGA gesetzt, Nö, SPI ist simple (xchieberegister) das sollte ein CPLD können. Da wird Dir sicher ein Lothar auf ein Beispiel verweisen können: http://www.lothar-miller.de/s9y/archives/31-SPI-Slave-im-CPLD.html > > Bei 3 mal 16 bit würde ich das mit der parallelen Ausgabe nochmal > überdenken. Ich vermute eine SPI wäre da die bessere Option. > Die 3 Kanäle plus das FPGA/CPLD können sich eine Clock teilen, quasi > parallel und synchron abtasten. Wenn da eine SPI dabei ist, ist > sicherlich ein FPGA gesetzt, aber wie gesagt, ich habe den MAX1000 hier > liegen, damit könnte ich erstmal spielen.
Lutz Locus schrieb: > Spice schrieb: >> Lutz Locus schrieb: >>> OK, PDM braucht nach meinem Verständnis ein Startsignal um Bias-frei zu >>> sein, das kommt dann zum seriellen Clock und Datenstrom hinzu. > Es wird also nur eine Art differenz übermittel und nicht der > Absolutwert Es gibt 3 verschiedene Aspekte bei dem Thema: 1 Offset im Signal vor dem Wandler (hängt von der analogen Messkette ab) 2 Übertragung von künstlichem Offset durch den Wandler (hängt am Wandler) 3 Offset bei der Integration (also durch den Startzeitpunkt im Sinus) Alle 3 erfordern an unterschiedlichen Stellen Eingriffe. Punkt 3 ist sicher der Fetteste: Wenn man die 50Hz über einen simplen Filter integriert, hat man immer einen Offset im Signal. Den muss man eben weginterpretieren. Punkt 2 ist der Geringste, den kriegt man mit Kalibierung weg Punkt 1 liegt irgendwo in der Mitte: Muss ebenfalls gemessen werden, indem man 2 und 3 eliminiert und das Ganze kalibriert. Oder man setzt einen Hochpass ein, dann erledigen sich 1+2. Bei 50Hz muss man hoch genug abtasten, um den Nullpunkt sehen zu können. Dann kann man sich auch darauf synchen und einen Offset mitmessen, falls der in den 50Hz noch drin sein sollten (was ja auf die lange Sicht nicht der Fall ist).
Lutz Locus schrieb: > Es wird also nur eine Art differenz übermittel und nicht der > Absolutwert. Würde jetzt die Abtastung des 50 HZ sinus zum Zeitounkt des > positiven Scheitelwertes beginnen würde der Zählerstand erst mal ins > Negative gehen, statt dem wert von 230V o.ä. zu entsprechen. Deshalb > wäre es doch nötig, den absoluten Startwert einzustellen, respektive > wenn der Startwert des Zählers 0x0000 ist, mit der Abstadtung zu > beginnen, wenn der Realwert die Entsprechung v.0x00 errreicht hat. Also müsste ich auf den Nulldurchgang warten? Den erkenne ich doch mit 50% Pulsdichte? oder ich sammle 32 bi ein und vergleiche die ersten 16 bit mit den weiteren 16 bit, dann weiss ich doch, ob es hoch oder runter wandert? Lutz Locus schrieb: > Nö, SPI ist simple (xchieberegister) das sollte ein CPLD können. Da wird > Dir sicher ein Lothar auf ein Beispiel verweisen können: > http://www.lothar-miller.de/s9y/archives/31-SPI-Slave-im-CPLD.html Besten Dank Gregor schrieb: > 1 Offset im Signal vor dem Wandler (hängt von der analogen Messkette ab) Die Messkette steht doch fest... Mit Widerständen runterkaskadieren und dann auf z.B. den oben erwähnten Delta Sigma Modular. Gregor schrieb: > 2 Übertragung von künstlichem Offset durch den Wandler (hängt am > Wandler) Den messe ich, indem ich ein definiertes Signal draufgebe und dann schaue, was hinten rauskommt. Kalibriere ich dann später im Code. Gregor schrieb: > 3 Offset bei der Integration (also durch den Startzeitpunkt im Sinus) Hier habe ich noch keinen Plan, da muss ich definitiv tiefer abtauchen. Gregor schrieb: > Oder man setzt einen Hochpass ein, dann erledigen sich 1+2. Wo genau? Analog oder Digital? Meinst du, um den Gleichanteil zu filtern? Gregor schrieb: > Bei 50Hz muss man hoch genug abtasten, um den Nullpunkt sehen zu können. > Dann kann man sich auch darauf synchen und einen Offset mitmessen, falls > der in den 50Hz noch drin sein sollten (was ja auf die lange Sicht nicht > der Fall ist). Wie schnell ist denn "hoch genug"? reichen die 20Mhz nicht?
Spice schrieb: > Wie schnell ist denn "hoch genug"? reichen die 20Mhz nicht? Die 20MHz sind offenbar die Modulator-Frequenz. Das ist ein 1-Bit Signal. Was es braucht, um einen Nulldurchgang bei 50Hz genau zu sehen, ist eine ausreichend hohe Auflösung in der Zeitachse und Pegelachse. Für die Dezimation wird die Abtastrate um z.B. 100.000 verringert, um auf am Ende 15 + 1/2 Bits zu kommen. Das wären dann noch 200Hz. Um 50Hz darzustellen, eventuell genug - für einen Nulldurchgang aber ein bischen wenig :-) Sicher wären 12 Bits und eine Rate von 20M/4000 = 5kHz besser. Dann hätte man bei 50Hz immerhin 100 Punkte -> 1% Oder 10 Bits -> 1:1000 -> 0,25%
Spice schrieb: > Der Modulatorchip > (AMC1303x) Interessante Anwendung - kenne ich doch von irgendwoher :-) Harald E. schrieb: > Ich frage außerdem aus einem ganz bestimmten Grund: Die Aufgabe kommt > mir irgendwie bekannt vor Nicht nur Dir :-) Kann es sein, dass diese Chips irgendwo beworben wurden und gleich Mehrere ihn für ihre Anwendung entdeckt haben? Um es allgemein zu beantworten: Ja, man kann den Datenstrom von DIESEM Chip und seinen Brüdern mit 20MHz verarbeiten, wenn man das passende Filter wählt (oder "den" passenden Filter *1). Man allerdings auch die Abtastfrequenz etwas senken, um zu einem Wert zu kommen, der bestimmte Vorteile hat. Man kann auch den Filtertypus etwas modifizieren und damit auf den Offsetdrift und BIAS Rücksicht nehmen, den der Chip hat. Vor allem kann man die Modulatorqualität (2. Ordnung) des Chips berücksichtigen und den Filter entsprechend auslegen, um in der "analogelektronischen" Sicht annähernd an die Qualität heran zu kommen, die der Hersteller in der Doku mit der Angabe "16@78kHz" verspricht. Je nachdem, wie hoch die Messgenauigkeit sein soll, kann man das mit einem zusätzlichen IIR+FIR so dezimieren, dass es für "Bässe" mit 20 Bit Analog-Qualität taugt. Man muss aber jeweils geschickt überabtasten, um die Artefakte das vorherigen Filters zu mildern. *2 Um es konkret zu machen: Meine Pyratone-PDM arbeitet an der Stelle mit 24.576MHz und erzeugt Bassfrequenzen bis 200Hz mit effektiv rund 20 Bit Genauigkeit bei einfacher RCRC-Filterung. Der interne "Demodulator" / Integrator der mitläuft und das steuert, prozessiert das Signal genau so, wie oben beschrieben: 25.576MHz IIR-BP(1Hz...50k) -> CIC3+(512, 48Khz) -> FIR128 (24kHZ) -> FIR128(192Hz) Funktioniert mit einem VHDL-Modul für 8-Kanal-Audio mit 192kHz in HDMI!*3 Cores erhältlich - getestet auf Xilinx S6, A7, Altera C3, C4 ------------------------------------------------------- *1 Beitrag "Re: Eigenschaften des Moving Avarage Filters" *2 Beitrag "Re: digitales Notchfilter mit TP kombinieren" *3 Beitrag "Re: HDMI Sound Input"
:
Bearbeitet durch User
Spice schrieb: > Gregor schrieb: >> 1 Offset im Signal vor dem Wandler (hängt von der analogen Messkette ab) > > Die Messkette steht doch fest... Mit Widerständen runterkaskadieren und > dann auf z.B. den oben erwähnten Delta Sigma Modular. Jeder Verstärker oder Wandler oder Abschwächer bringt einen Offsetfehler und ob es reicht, die Netzspannung mit Widerständen herunter zu teilen, darf man wohl mal getrost infragestellen. Normalerweise sitzt dort ein kapazitiver oder induktiver Übertrager. Spice schrieb: > Gregor schrieb: >> Oder man setzt einen Hochpass ein, dann erledigen sich 1+2. > Wo genau? Analog oder Digital? Meinst du, um den Gleichanteil zu > filtern? Ja. Geht analog oder digital. -gb- schrieb: > Wenn man das filtert und eine ordentliche ENOB haben will, dann bleiben > von den 20 MHz noch ein paar kHz übrig. Mal ehrlich: 50Hz auszumessen und dafür einen 20MHz PDM zu nehmen ist ein klein bissl overkill, oder?
Gregor schrieb: > Mal ehrlich: 50Hz auszumessen und dafür einen 20MHz PDM zu nehmen ist > ein klein bissl overkill, oder? Vielleicht. Das Produkt wird aber genau damit beworben. Vielleicht will man ja zusätzlich zu der Frequenz auch noch mehr sehen. Oder die Phasenlage genau ausmessen oder so ... der Hersteller wird sich schon was dabei gedacht haben.
Gustl B. schrieb: > Vielleicht. Das Produkt wird aber genau damit beworben. Vielleicht will > man ja zusätzlich zu der Frequenz auch noch mehr sehen. Wenn du die Netzfrequenz messen willst, dann brauchst du richtig Aufwand, weil die von dem Sollwert nur Bruchteile abweicht und das auch nur dynamisch und lokal, weil genügend Kraftwerke gegenregeln. Das hier: kleiner Einwurf aus der Dezimationstheorie schrieb: > Sicher wären 12 Bits und eine Rate von 20M/4000 = 5kHz besser. Dann > hätte man bei 50Hz immerhin 100 Punkte -> 1% reicht dann hinten und vorne nicht! Da brauchst du einen selbstkalibrierenden Wandler und eine regelrechte PLL. Was man eigentlich wird messen wollen, ist die Amplitude ohne den ganzen Dreck und das geht immer noch am Einfachsten mit einem Notchfilter. Das machst du für Stöme und Spannungen getrennt und hast alles, was du brauchst.
Spice schrieb: > Klingt sehr interessant. Luftspule + Kapazitäten in der Platine? Wie > kann man sich das vorstellen? 4 Kanäle für 3 Phasen? So ungefähr. Das Signal aus 230V ist ja "heiß" genug, um es anzuzapfen. Brauchst halt noch ne schlaue Implementierung für den Strom. Direkt über kapazitive-induktive Kopplung gibt es nur Spannung. Erstmal.
> Man kann auch den Filtertypus etwas modifizieren und damit auf den > Offsetdrift und BIAS Rücksicht nehmen Das geht bei einem Dezimationsfilter automatisch, dachte ich? > die Modulatorqualität (2. Ordnung) des Chips berücksichtigen und >den Filter entsprechend auslegen An welcher Stelle muss das passieren? Die Qualität des Modulators ist in dem Sinn ja nicht bekannt. Was kann beim Filter angepasst werden? > Direkt über kapazitive-induktive Kopplung gibt es nur Spannung Wie funktioniert das mit der "kapazitiv-induktiven" Koppelung? Ist das ein in die Platine eingebauter Trafo? Wie hoch ist die Leistung, die "angezapft" wird? Und wie bekommt man den Strom?
Mitleser schrieb: >> Direkt über kapazitive-induktive Kopplung gibt es nur Spannung > Wie funktioniert das mit der "kapazitiv-induktiven" Koppelung? > Ist das ein in die Platine eingebauter Trafo? > Wie hoch ist die Leistung, die "angezapft" wird? > Und wie bekommt man den Strom? Vermutlich mit einem planaren PCB Transformator, um an die Spannung ranzukommen.
Gregor schrieb: > Was man eigentlich wird messen wollen, ist die Amplitude ohne den ganzen > Dreck und das geht immer noch am Einfachsten mit einem Notchfilter. Das > machst du für Stöme und Spannungen getrennt und hast alles, was du > brauchst. Kannst du das bitte näher erläutern? Ein Notchfilter ist eine Bandsperre? Wie lege ich die aus? Wäre hier nicht ein Bandpass angebracht, um die 50Hz zu sehen und nicht zu sperren?
Beitrag #7323476 wurde vom Autor gelöscht.
Spice schrieb: > Ein Notchfilter ist eine Bandsperre? Vollkommen richtig. Das war von mir schlecht formuliert, denn aus Sicht des Signalflusses ist es das Gegenteil des Notch-Filters. Aus Sicht der Signalverarbeitung macht es aber keinen Unterschied. Die Koeffizienten werden einfach negiert, bzw. man zieht (für ein echtes Notch) die hervorgehobene Frequenz einfach von Einngang ab. Spice schrieb: > Vermutlich mit einem planaren PCB Transformator, um an die Spannung > ranzukommen. Der z.B. wäre auch schon eine Art Filter, weil der Trafo eine präferierte Übertragungsfrequenz hat, bei der die Übersetzung optimal ist.
Gregor schrieb: > Spice schrieb: >> Ein Notchfilter ist eine Bandsperre? > Vollkommen richtig. Das war von mir schlecht formuliert, denn aus Sicht > des Signalflusses ist es das Gegenteil des Notch-Filters. > > Aus Sicht der Signalverarbeitung macht es aber keinen Unterschied. Die > Koeffizienten werden einfach negiert, bzw. man zieht (für ein echtes > Notch) die hervorgehobene Frequenz einfach von Einngang ab. Verstehe... > Spice schrieb: >> Vermutlich mit einem planaren PCB Transformator, um an die Spannung >> ranzukommen. > Der z.B. wäre auch schon eine Art Filter, weil der Trafo eine > präferierte Übertragungsfrequenz hat, bei der die Übersetzung optimal > ist. kann man denn ein Trafo nur aus PCB Traces für 50Hz realisieren, wo man anständig die Spannung rekonstruieren könnte?
Mitleser schrieb: >> Man kann auch den Filtertypus etwas modifizieren und damit auf den >> Offsetdrift und BIAS Rücksicht nehmen > Das geht bei einem Dezimationsfilter automatisch, dachte ich? Bei solchen Filtern geht eigentlich nichts automatisch. Die haben alle ihre Eigenschaften, die man kennen und berücksichtigen muss. Klingt allgemein und banal - ist aber so. Konkret hat ein Dezimationsfilter (egal ob CIC oder vollst. FIR) immer eine Bandbreite und das gilt auch für den Drift. Das muss man in Einklang bringen. Eine einfache Driftkorrektur wäre z.B. ein Hochpass mit einer sehr niedrigen Grenzfrequenz von 0.x Hz. Wie tief die anzusetzen ist, hängt vom System ab. Mitleser schrieb: >> die Modulatorqualität (2. Ordnung) des Chips berücksichtigen und >>den Filter entsprechend auslegen > Die Qualität des Modulators ist in dem Sinn ja nicht bekannt. Aber das Prinzip und damit das Differenzial, das er bearbeitet. Ein Modulator höherer Ordnung hat eine höhere Qualität insgesamt mit zunehmendem Fokus auf die Oberwellen. Die Regelqualität zeigt sich letztlich im Störspektrum, das er erzeugt. Je hochfrequenter das ist, desto besser ist es zu filtern, wenn man hohe Frequenzen braucht. Höhere Modulatorordnungen erzeugen allerdings auch etwas mehr Rauschen, weswegen die für Anwendungen wie hier nicht unbedingt angebracht sind, weil man das Störspektrum eh gut wegbekommt, da das Nutzspektrum so tief liegt. Spice schrieb: > kann man denn ein Trafo nur aus PCB Traces für 50Hz realisieren, wo man > anständig die Spannung rekonstruieren könnte? Das würde mich auch mal interessieren. Im Grunde nimmt jede Leiterbahn das Verhalten des Nachbarn mit auf. Das sehen wir beim Audio sehr extrem. Müsste sich mit einem OPAMP verstärken lassen. Das gleiche muss auch beim Strom gehen, also Shunt in den Leistungszweig, OPAMP dran und dann den Übertrager, um zu entkoppeln. Einfache Stromsensoren arbeiten so. Ein Mitbewerber meines ehemaligen AG hat mal in einer Autoanwendung mit einem billigen Shunt die Batterieströme auf diese Weise in etwa so genau gemessen, wie wir mit komplizierten Stromsensoren. Wahrscheinlich aufs Mikrovolt gemessen, alles Rauschen aufgeladen und dann mit DSP gut gefiltert und auf die Regelung optimiert. Leider wollte man damaliger AG von Software nichts wissen, sondern hat probiert, alles analog zu lösen, wie er auch sonstige Vorschläge meinerseits ignoriert hat. (Ich erinnere mich gerade wieder daran, weil ich das Stichwort "spice" lese).
:
Bearbeitet durch User
Spice schrieb: > kann man denn ein Trafo nur aus PCB Traces für 50Hz realisieren, wo man > anständig die Spannung rekonstruieren könnte? Die Frage kann man sich leicht selbst beantworten. Bei nur 50Hz ist kaum Leistung zu übertragen. Es gibt eine optimale Frequenz unter Berücksichtigung von Steukapazitäten. Richtig Leistung geht nur mit einem kleinen Übertrager. Diese werden aus Störgründen mit wechselnden Frequenzen im Bereich 100kHz-200kHz betrieben. Geht über PWM.
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.