Hallo, es soll ein Leistungsmesser gebaut werden, am besten mit einem der Atmegas. Maximal Werte: 110V/3,2A bei 42kHz, am besten mit feineren Messbereichen für kleinere Spannungen/Ströme. Mir bereiten 2 Dinge Sorgen: Die "hohe" Frequenz der Schaltung und den Einfluss der Messschaltung auf die Originalschaltung. Die ADC Wandlung der Atmegas sind mit max 1Mhz spezifiziert, damit komme ich bei 13 Zyklen für die AD Wandlung auf 76kHz Sample Rate. Somit muss ich Spannung und Strom nacheinander messen. Die Messschaltung soll die Originalschaltung nicht beeinflussen. Ich dachte an einen 10mOhm Shunt mit LM358. Reicht dessen Geschwindigkeit, da die Verstärkung immer schlechter wird mit steigender Frequenz. Spannungsmessung sollte über einen Spannungsteiler funktionieren oder ich berechne die Leistung nach P=I^2*R Ich hoffe auf neue Ideen, stehe leider ganz extrem auf dem Schlauch :( Viele Grüße Max
Max Kinema schrieb: > es soll ein Leistungsmesser gebaut werden, Für Scheinleistung oder Wirkleistung?
Zuerst dachte ich daran Wirkleistung und Scheinleistung zu berechnen. Für den Anfang würde mir die Wirkleistung reichen, um nicht auch noch Phasenlage etc. betrachten zu müssen. Ich kann leider nicht einschätzen wie groß der Mehraufwand wäre für eine Messung von Schein-/Blindleistung. Reicht es mit Hummelschaltung und der dann vorhandenen Messschaltung zu messen? Am meisten Probleme bereitet mir einfach die Frequenz. Strom/Spannung sind übrigens Sinusförmig
Max Kinema schrieb: > Zuerst dachte ich daran Wirkleistung und Scheinleistung zu berechnen. > Für den Anfang würde mir die Wirkleistung reichen, um nicht auch noch > Phasenlage etc. betrachten zu müssen. Du solltest Dich noch mal mit den Grundlagen beschäftigen, dann wüsstest Du, das die Messung der Wirkleistung deutlich aufwändiger als die Messung der Scheinleistung ist. Normalerweise misst man 10...50 mal pro Periode die Augenblickswerte von Spannung und Strom und multipliziert diese. Ich denke, das wird bei Deiner Wunschfrequenz einen einfachen µC überfordern. Gruss Harald
Eine einfache Lösung wäre, die geteilte Spannung gleichzurichten und die Gleichspannung in den AD-Wandler. Ebenso die Spannung vom Shunt verstärken, gleichrichten und ab in den AD-Wandler. Das gibt schon mal die Scheinleistung. Den Sinus schnell abzutasten halte ich für unnötig. Wenn es dennoch sein muss, dann am besten mit externen AD-Wandlern mit ordentlich Sample Rate, ein paar hundert kHz müssten es schon sein. Als Gleichrichter eignen sich am besten aktive Gleichrichter, bestehend aus OP Amp und Diode im Rückkopplungspfad, einfach mal googlen. Wenn die Wirkleistung gemessen werden soll, würde ich die Nulldurchgänge detektieren und die Phasenverschiebung mit einem Timer ausmessen. phi = delta T f 360 Wirkleistung = U I cos (phi)
Harald Wilhelms schrieb: > Max Kinema schrieb: > >> Zuerst dachte ich daran Wirkleistung und Scheinleistung zu berechnen. >> Für den Anfang würde mir die Wirkleistung reichen, um nicht auch noch >> Phasenlage etc. betrachten zu müssen. > > Du solltest Dich noch mal mit den Grundlagen beschäftigen, dann > wüsstest Du, das die Messung der Wirkleistung deutlich aufwändiger > als die Messung der Scheinleistung ist. Normalerweise misst man > 10...50 mal pro Periode die Augenblickswerte von Spannung und Strom > und multipliziert diese. Ich denke, das wird bei Deiner Wunschfrequenz > einen einfachen µC überfordern. > Gruss > Harald Du hast natürlich recht, nach einem langen Tag habe ich da ein wenig was verdeht. Also komme ich mit der Sample Rate, wie erwartet, vorne und hinten nicht hin. Light schrieb: > Ist Spannung und Strom denn sinusförmig? Ja, wunderschöne sinusförmige Verläufe. Pink Shell schrieb: > Eine einfache Lösung wäre, die geteilte Spannung gleichzurichten und die > Gleichspannung in den AD-Wandler. Ebenso die Spannung vom Shunt > verstärken, gleichrichten und ab in den AD-Wandler. Das gibt schon mal > die Scheinleistung. Die würde mir Vorerst reichen. > Als Gleichrichter eignen sich am besten aktive Gleichrichter, bestehend > aus OP Amp und Diode im Rückkopplungspfad, einfach mal googlen. Warum aktiv? Schlägt sich die nicht Ideale Kennlinie oder Kapazität der Diode dermaßen schlecht auf das Messergebnis nieder? Welche Werte mich nach der Gleichrichtung erwarten. Oder gelten bei der aktiven Gleichrichtung die selben Faktoren für Effektivwert, Gleichrichtwert etc? Werde mich die Tage genauer Einlesen, danke für den Denkanstoß > Wenn die Wirkleistung gemessen werden soll, würde ich die Nulldurchgänge > detektieren und die Phasenverschiebung mit einem Timer ausmessen. > phi = delta T f 360 > Wirkleistung = U I cos (phi) Die Idee ist klasse, das sollte mit dem 16bit Timer gut klappen. Vielen Danke und Grüße Max
Max Kinema schrieb: > Warum aktiv? Schlägt sich die nicht Ideale Kennlinie oder Kapazität der > Diode dermaßen schlecht auf das Messergebnis nieder? So ist es. Wenn Du z.B. eine Wechselspannung hast, die zwischen +1 Volt und -1 Volt schwankt, dann wird ein aktiver Gleichrichter (mit Glättung) genau 1 Volt ausgeben. Mit einer einfachen Diode fehlen Dir ca. 0,6 Volt. Wie Du angedeutet hast, ist die nichtideale Kennline der Diode schuld. Die Kapazität einer schnellen Diode ist im pF-Bereich und kann bei diesen Frequenzen normalerweise vernachlässigt werden. > Welche Werte mich nach der Gleichrichtung erwarten. Oder gelten > bei der aktiven Gleichrichtung die selben Faktoren für > Effektivwert, Gleichrichtwert etc? Der Gleichrichter lässt nur die positiven Signale durch. Das Signal ist jedoch noch zeitabhängig und sieht aus wie ein kleines Gebirge :-) Um eine Gleichspannung daraus zu machen, wird man meistens einen Kondensator auf den Maximalwert aufladen (wie in einem Netzteil). Das wäre dann der Scheitelwert. Man könnte auch eine Mittelwertbildung machen, dann kriegst Du den Gleichrichtwert (oder quadrieren, mitteln und die Wurzel ziehen - Scherz). Auf Seite 31 des folgenden Dokuments (das berühmte AN-31) sind ein paar Schaltungen für aktive Gleichrichter. http://www.ti.com/general/docs/lit/getliterature.tsp?baseLiteratureNumber=snla140
Ich halte eine Gleichrichtung hier für ungeeignet. Das birgt die Gefahr, daß bei Phasenwinkeln ab +/-90° Fehlmessungen entstehen. Mit level shifter ist man eher auf der sicheren Seite.
Max Kinema schrieb: > Die ADC Wandlung der Atmegas sind mit max 1Mhz spezifiziert, damit komme > ich bei 13 Zyklen für die AD Wandlung auf 76kHz Sample Rate. Somit muss > ich Spannung und Strom nacheinander messen. Dann wirst Du die Wirkleistung nicht richtig berechnen können. Das hier ist für solche Aufgaben gemacht. http://www.microchip.com/wwwproducts/Devices.aspx?product=mcp3911 > ich berechne die Leistung nach P=I^2*R Das ist nur die Scheinleistung. Für die Wirkleistung musst Du über mehrere Perioden aufintegrieren:
Ich würde einen kleinen dsPIC anstelle eines AVRs nehmen. Kostet das gleiche, hat aber mindestens die 3-fache Rechenleistung, bei den dsPIC33EP mit ihren 70MHz deutlich mehr. zB: http://www.microchip.com/wwwproducts/Devices.aspx?product=dsPIC33EP256GP502 Und rechnen wirst Du müssen! fchk
Helge A. schrieb: > Ich halte eine Gleichrichtung hier für ungeeignet. Das birgt die Gefahr, > daß bei Phasenwinkeln ab +/-90° Fehlmessungen entstehen. Mit level > shifter ist man eher auf der sicheren Seite. ab +-90°? Ist nicht bei 90 die maximale Phasenverschiebung erreicht? Ich sehe die Fehlerquelle nicht. Erst bestimme ich die Frequenz, dann dem 16 Bit Timer den Wert des Nulldurchgangs bei ansteigender Spannung und Strom entnehmen. Aus der Differenz lässt sich die Phasenverschiebung messen, und wenn diese größer als +90° ist, muss entsprechend zwischen Kapazität und Induktivität 180° subtrahiert werden. Frank K. schrieb: > Ich würde einen kleinen dsPIC anstelle eines AVRs nehmen. Kostet das > gleiche, hat aber mindestens die 3-fache Rechenleistung, bei den > dsPIC33EP mit ihren 70MHz deutlich mehr. zB: > http://www.microchip.com/wwwproducts/Devices.aspx?product=dsPIC33EP256GP502 > > Und rechnen wirst Du müssen! > > fchk Ich werde mir beide Lösungen bestellen und aufbauen, einfacher dürfte die Gleichrichtung sein :S Melde mich sobald Schwierigkeiten auftauchen
Max Kinema schrieb: > Ich sehe die Fehlerquelle nicht. Erst bestimme ich die Frequenz, > dann dem 16 Bit Timer den Wert des Nulldurchgangs bei ansteigender > Spannung und Strom entnehmen. Aus der Differenz lässt sich die > Phasenverschiebung messen, Die Probleme und Fehler kommen dann, wenn Du keine "klassischen" Blindleistungsverbraucher hast, sondern z.B. Schaltnetzteile. Und die "vermehren" sich in normalen Haushalten immer mehr. Gruss Harald
Interessant zu wissen wäre noch wie lange du für eine Leistungsmessung brauchen möchtest? Nach wieviel Perioden möchtest du ein Messergebnis haben? Wenn deine Spannung und Strom wirklich so schön sinusförmig ist (hat keine das Messergebnis beeinflussenden Oberwellen), brauchst du theoretisch nur die doppelte Abtastfrequenz als deine Messfrequenz, auch einen analogen Antialiasing Tiefpass kannst du dir dann ersparen. Also einiges über deinen 42kHZ z.B. 100kHz. Um Spannung und Strom gleichzeitig abzutasten würde ich dir empfehlen eine uC auszusuchen, der 2 ADCs mit gleichzeitiger Abtastung hat oder einen extra ADC-Chip der das kann. Der Phasenfehler geht sehr stark in das Messergebnis mit ein! Rechne einmal nach was da 1 us bei 42kHz bedeuten kann! Der Rest ist Mathematik. Eine Mischung aus analog (Gleichrichten) und digital (Phasenverschiebung) messen halte ich für einen ziemlichen Murks. Wie genau man das hinbekommt bei verschiedenen Amplituden (des Stroms z.B.) sei mal in Frage gestellt, ein analoger Komperator (NUlldurchgangsschalter) hat ja auch eine gewisse Hysterese. Dazu noch eine sehr wesentliche Frage: Wie genau soll denn deine Leistungsmessung sein?
Friedrich Seuhs schrieb: > brauchst du > theoretisch nur die doppelte Abtastfrequenz als deine Messfrequenz Das ergibt aber nur die Frequenzinformation, einen sinnvollen Amplitudenwert nicht; gerade wenn sich die Amplitude während den Sampels ändert.
abtaster schrieb: >> brauchst du >> theoretisch nur die doppelte Abtastfrequenz als deine Messfrequenz > > Das ergibt aber nur die Frequenzinformation, einen sinnvollen > Amplitudenwert nicht; gerade wenn sich die Amplitude während den Sampels > ändert. Das stimmt nicht. Wenn man genügend lang die Quadrate integriert bekommt man die Amplidude sehr genau, die Frequenz eigentlich gar nicht, da muss man die Nulldurchgänge zählen. Das alles gilt nur für ein "quasistatioäres" Signal. Was bei sich ändernder Amplitude im Messzeitraum ergibt, wird wohl auch in der Nähe des theoretischen Effektivwerts liegen. Eine analoge Gleichrichtung liegt mMn viel schlechter. Alles ist aber natürlich von der gewünschten Genauigkeit abhängig. Die hat uns aber der TO noch nicht verraten.
Harald Wilhelms schrieb: > Die Probleme und Fehler kommen dann, wenn Du keine "klassischen" > Blindleistungsverbraucher hast, sondern z.B. Schaltnetzteile. > Und die "vermehren" sich in normalen Haushalten immer mehr. > Gruss > Harald Die werden nicht vorkommen, ich messe hinter einem Labornetzteil verschiedene Schaltungen. Friedrich Seuhs schrieb: > Eine Mischung aus analog (Gleichrichten) und digital > (Phasenverschiebung) messen halte ich für einen ziemlichen Murks. Wie > genau man das hinbekommt bei verschiedenen Amplituden (des Stroms z.B.) > sei mal in Frage gestellt, ein analoger Komperator > (NUlldurchgangsschalter) hat ja auch eine gewisse Hysterese. Das die Genauigkeit auf der Strecke bleibt, ist mir dabei bewusst. Deshalb werde ich mir zusätzlich auch noch einen schnellen AD-Wandler, den MCP3911 wie vorgeschlagen, besorgen und zweigleisig fahren. Einfach für mich selber auch zum vergleichen, spielen und lernen :D Friedrich Seuhs schrieb: > Alles ist aber natürlich von der gewünschten Genauigkeit abhängig. Die > hat uns aber der TO noch nicht verraten. Letztendlich wäre die Leistung +-3 Prozent wünschenswert. Mit den 16 Bit sollte das zu machen sein. Muss mir nur noch einen passenden, gut dokumentierten, µC aussuchen. Denke mit 20 Mhz werden die Atmegas zu langsam sein, um den ADC Chip auszulesen, zu rechnen, Display anzusteuern und später vielleicht ein USB-Interface zu realisieren. PIC 18F24K50, DSPic oder ähnliche. Hauptsache mit C -Compiler.
:
Bearbeitet durch User
Max Kinema schrieb: > PIC 18F24K50, DSPic oder ähnliche. Hauptsache mit C -Compiler. Schau dir doch auch mal den Cortex M4 an, der hat eine FPU. Das vereinfacht die SW wesentlich. Du musst quadrieren summieren und nach entsprechender Anzahl von Samples durch diese Anzahl dividieren und wurzelziehen. Das ist dann dein gewünschter Effektivwert. Willst du wirklich alle 16 bit weiterverarbeiten ist das mit integer auch recht aufwändig. Man muss skalieren und genau aufpassen damit die integer nicht überlaufen. Für +-3% genügen aber auch 12bit. Ich habe für 50Hz bis zur 50 Oberwellen sowas sowohl in integer als auch in floatingpoint gemacht. Aus meiner Erfahrung kann ich nur sagen, wenn irgedwie möglich dann floatingpoint verwenden, mach die ganze Mathematik einfacher. Der STM32F4.. mit 168Mhz würde sich bestimmt dafür sehr gut eignen.
Friedrich Seuhs schrieb: > Der STM32F4.. mit 168Mhz würde sich bestimmt dafür sehr gut eignen. Die Cortex M4 Serie scheint super zu meinen Anforderungen zu passen. Sowohl STM32F4 als auch STM32F3 bringen 12 bit ADC mit, der F3 scheint einen noch schnelleren AD Wandler, Wahnsinn. Damit kann ich mir vorerst den externen AD Wandler sparen.
1 | Two ADCs 0.20 μS (up to 39 channels) with |
2 | selectable resolution of 12/10/8/6 bits, 0 to |
3 | 3.6 V conversion range, separate analog |
4 | supply from 2 to 3.6 V |
Danke an alle, ich glaube ich kann nun Bauteile bestellen :)
Max Kinema schrieb: > Sowohl STM32F4 als auch STM32F3 bringen 12 bit ADC mit, der F3 scheint > einen noch schnelleren AD Wandler, Wahnsinn. Damit kann ich mir vorerst > den externen AD Wandler sparen. Geh einmal das ganze nicht zu euphorisch an. Ob du einen so schnellen ADC brauchst habe ich oben in Frage gestellt, ob der M3 auch bei 12 bit schneller ist als der M4 sollte man im Datenblatt nachschauen. Wichtig sind auch die errata-sheets, da sind dann noch Fehler drinnen die wohl nicht korrigiert werden und die nicht im normalen Datenblatt stehen. Vorsicht ist, soviel man hier mitliest, beim STM32F40x angesagt. Da wackeln die untersten bits angeblich recht heftig. Also hier in dem Forum suchen.
Max Kinema schrieb: > Sowohl STM32F4 als auch STM32F3 bringen 12 bit ADC mit, der F3 scheint > einen noch schnelleren AD Wandler, Wahnsinn. Damit kann ich mir vorerst > den externen AD Wandler sparen. Würde ich nicht machen, schon wegen der Möglichkeit, den ADC per ADUM1401 ö.ä. galvanisch vom Rest abzutrennen. Das kann bei 110V schon alleine aus Sicherheitsgründen erforderlich werden, denn das ist keine Niederspannung mehr. Und wenn Du einen JTAG Debugger oder einen PC per USB anschließt, könnte es einmal ganz heftig rumsen, wenn Du keine galvanische Trennung drin hast. Und direkt hinter dem ADC ist die günstigste Position für die Isolationsbarriere. fchk
Update: Erste kleine Gehversuche mit dem STM32F4 Discovery Board funktionieren, wahnsinnig schnell im vergleich zu max. 20Mhz Atmega Nun gehts an die Auswertung: Stromshunt ist ein 0,1Ohm Widerstand mit Vierleiteranschluss. Aus dem Beispiel EnergyMeter mit MCP3911 http://www.microchip.com/Developmenttools/ProductDetails.aspx?PartNO=ARD00385 Schaltplan: http://ww1.microchip.com/downloads/en/DeviceDoc/ARD00385_Rev4_Schematic.PDF werde ich nicht ganz schlau. Wie bekomme ich das Messsignal (ohne Phasenverschiebung) an den ADC: Mir fällt folgendes ein und würde gerne eine Meinung dazu bekommen: Spannungsteiler + Koppelkondensator = Halbe Referenzspannung als Offset überlagert vom Sinus. Aktive Gleichrichtung Messbereichsconverter, Levelshifter: ähnlich diesem hier: http://www.electronicdeveloper.de/ADCRangeAktiv.aspx
:
Bearbeitet durch User
Max Kinema schrieb: > Update: > > Erste kleine Gehversuche mit dem STM32F4 Discovery Board funktionieren, > wahnsinnig schnell im vergleich zu max. 20Mhz Atmega > > Nun gehts an die Auswertung: > > Stromshunt ist ein 0,1Ohm Widerstand mit Vierleiteranschluss. > > Aus dem Beispiel EnergyMeter mit MCP3911 > http://www.microchip.com/Developmenttools/ProductDetails.aspx?PartNO=ARD00385 > Schaltplan: > http://ww1.microchip.com/downloads/en/DeviceDoc/ARD00385_Rev4_Schematic.PDF > werde ich nicht ganz schlau. Mach das so nicht! Vergiss dieses Beispiel ganz schnell. Grund: Die gesamte (!) Schaltung liegt auf Netzpotential, nur die serielle Schnittstelle ist potentialgetrennt. Für die konkrete Anwendung ist das ok, für Dich als Nicht-Profi lebensgefährlich. Orientiere Dich an dieser AppNote: http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en557898 und da Figure 9. Zur Beschaltung: Du hast L1a, L1b und L2. Zwischen L1a und L1b hast Du Deinen Shunt. Von dem Shunt gehen zwei Leitungen an LINE_SHUNT1 und LINE_SHUNT2, die an CH0 gehen. Damit wird der Strom gemessen. Die Spannung wird an CH1 gemessen. Dazu geht L2 geht an HIGH in dem Schaltplan. Die Spannung soll also zwischen L2 und L1a oder L1b (egal welche) gemessen werden. Da der negative Input von CH1 auf GNDA geht, muss auch entweder L1a oder L1b (nur einer!) auf GNDA gelegt werden. So misst Du dann Strom und Spannung synchron. Direkt hinter der SPI-Schnittstelle des MCP3911 baust Du Optokoppler oder einen ADuM1401, damit Dein STM32 NICHT auf Netzpotential liegt - das würde ihn killen. Den MCP3911 und die eine Seite vom ADuM1401 (und nur das, nicht mehr) versorgst Du per Kondensatornetzteil wie in Figure 8 gezeigt. Der STM32 und die andere Seite des ADuM ist aus einem normalen Netzteil zu speisen. Jetzt solltest Du alleine weiterkommen. fchk
Frank K. schrieb: > Zur Beschaltung: Du hast L1a, L1b und L2. Zwischen L1a und L1b hast Du > Deinen Shunt. Von dem Shunt gehen zwei Leitungen an LINE_SHUNT1 und > LINE_SHUNT2, die an CH0 gehen. Damit wird der Strom gemessen. Was genau meinst du mit L2, L1a bzw L1b? Müssen die Bauteilwerte für die Messung des Shunts verändert werden? L1,R4, C1 stellen einen Tiefpass 2ter Ordnung da, wobei L nicht dimensioniert ist. Soll ich das L so dimensionieren, dass der Tiefpass und Dämpfung auf die Frequenz abgestimmt ist? Was tut R3? Dafür sorgen, dass sich bei niedriger werdender Shuntspannung der Kondensator entladen kann? > Die Spannung wird an CH1 gemessen. Dazu geht L2 geht an HIGH in dem > Schaltplan. Die Spannung soll also zwischen L2 und L1a oder L1b (egal > welche) gemessen werden. Da der negative Input von CH1 auf GNDA geht, > muss auch entweder L1a oder L1b (nur einer!) auf GNDA gelegt werden. Bei der Schaltung für die Spannung scheint fast der gleiche Tiefpass zu sein. Der Spannungsteiler aus 2* 330k und 1k sorgt im Beispiel für die maximale Spannung von 0,5V am ADC, wenn ich das richtig sehe. ( (230V*SQRT(2)*1kOhm)/ 661kOhm) ) Muss also für geringere Spannungen angepasst werden um den Messbereich auszunutzen. > So misst Du dann Strom und Spannung synchron. Direkt hinter der > SPI-Schnittstelle des MCP3911 baust Du Optokoppler oder einen ADuM1401, > damit Dein STM32 NICHT auf Netzpotential liegt - das würde ihn killen. Das habe ich bedacht, den Aufbau habe ich letzte Woche schon mit einem Atmega + Gyrosensor getestet. Nur als Spielerei zum Testen :) > Den MCP3911 und die eine Seite vom ADuM1401 (und nur das, nicht mehr) > versorgst Du per Kondensatornetzteil wie in Figure 8 gezeigt. Der STM32 > und die andere Seite des ADuM ist aus einem normalen Netzteil zu > speisen. Spannungsversorgung für MCU und co steht natürlich schon. Nur die 3,3V für Analog fehlen noch. Kann ich nicht auch einfach ein Labornetzteil nehmen und GNDB mit GND Labornetzteil verbinden? Hintergrund: Möchte nicht die Messung durch meine Messschaltung verfälschen, auch wenn es sich hierbei nur um ein paar Milliwatt entnahme handeln würde. Versuche das was ich baue auch wirklich zu verstehen. Leider ist das ET-Studium bis jetzt noch nicht hilfreich zur Beantwortung der Fragen. Freue mich, dass sich Leute die Zeit nehmen um mir zu helfen, danke! :)
Max Kinema schrieb: > Frank K. schrieb: > >> Zur Beschaltung: Du hast L1a, L1b und L2. Zwischen L1a und L1b hast Du >> Deinen Shunt. Von dem Shunt gehen zwei Leitungen an LINE_SHUNT1 und >> LINE_SHUNT2, die an CH0 gehen. Damit wird der Strom gemessen. > > Was genau meinst du mit L2, L1a bzw L1b? L1 und L2 sind die beiden Leitungen des zu messenden Stromkreises. > > Müssen die Bauteilwerte für die Messung des Shunts verändert werden? > L1,R4, C1 stellen einen Tiefpass 2ter Ordnung da, wobei L nicht > dimensioniert ist. Soll ich das L so dimensionieren, dass der Tiefpass > und Dämpfung auf die Frequenz abgestimmt ist? Schau in die Doku zum entsprechenden Devboard, was die da nehmen: http://www.microchip.com/Developmenttools/ProductDetails.aspx?PartNO=ADM00398 > Was tut R3? Dafür sorgen, dass sich bei niedriger werdender > Shuntspannung der Kondensator entladen kann? Auch. Ist außerdem Teil des Filters. > Der Spannungsteiler aus 2* 330k und 1k sorgt im Beispiel für die > maximale Spannung von 0,5V am ADC, wenn ich das richtig sehe. > ( (230V*SQRT(2)*1kOhm)/ 661kOhm) ) > Muss also für geringere Spannungen angepasst werden um den Messbereich > auszunutzen. korrekt. > >> So misst Du dann Strom und Spannung synchron. Direkt hinter der >> SPI-Schnittstelle des MCP3911 baust Du Optokoppler oder einen ADuM1401, >> damit Dein STM32 NICHT auf Netzpotential liegt - das würde ihn killen. > > Das habe ich bedacht, den Aufbau habe ich letzte Woche schon mit einem > Atmega + Gyrosensor getestet. Nur als Spielerei zum Testen :) >> Den MCP3911 und die eine Seite vom ADuM1401 (und nur das, nicht mehr) >> versorgst Du per Kondensatornetzteil wie in Figure 8 gezeigt. Der STM32 >> und die andere Seite des ADuM ist aus einem normalen Netzteil zu >> speisen. > > > Spannungsversorgung für MCU und co steht natürlich schon. Nur die 3,3V > für Analog fehlen noch. Kann ich nicht auch einfach ein Labornetzteil > nehmen und GNDB mit GND Labornetzteil verbinden? Hintergrund: Möchte > nicht die Messung durch meine Messschaltung verfälschen, auch wenn es > sich hierbei nur um ein paar Milliwatt entnahme handeln würde. Solltest Du nicht machen - erstens aus Sicherheitsgründen (110V sind keine Kleinspannung mehr), und zweitens könntest Du eventuell die galvanische Trennung aufheben. Alternative wäre ein galvanisch isolierter (!!!) DC-DC-Wandler mit 5V in und 5V out. Schau in Figure 8, schmeiß alles links von D1 und D2 und D1 und D2 selber weg und klemme da den Ausgang des DC-DC-Wandlers an. Zur Auswahl des DC-DC-Wandlers: Kein SIP-Gehäuse, sondern DIL-Bauform, wegen Isolationsabstand. Die Pins von Eingang und Ausgang sollen möglichst weit weg voneinander sein, um auch bei nicht ganz sauberer Leiterplatte einen Überschlag oder Kriechströme zu verhindern. Bei Netzspannung willst Du je nach Randbedingungen überall minimal 6 bis 8 mm Kriechstrecke haben, und das hast Du bei den einreihigen SIL/SIP-Modulen nicht. Du hast jetzt zwar keine Netzspannung, aber wenn Du so tust als ob, machst Du keinen Fehler. Bei den DC-DC-Wandlern steht auch immer die zulässige Isolationsspannung dran. 1000V sind schon ok. Wenn die irgendwo nicht dabei steht, Finger weg von dem Teil, dann ist es nämlich nicht isolierend. Das gibts auch, aber das kannst Du hier nicht gebrauchen. > Versuche das was ich baue auch wirklich zu verstehen. Leider ist das > ET-Studium bis jetzt noch nicht hilfreich zur Beantwortung der Fragen. > Freue mich, dass sich Leute die Zeit nehmen um mir zu helfen, danke! :) Gut, bei mir war die Reihenfolge anders. Ich habe schon in der Schulzeit (frühe 80'er) gebastelt und dann das Studium angefangen. fchk PS: Du kannst auch in den Datenblättern und Appnotes anderer Energiemess-ICs reinschauen. Die sind zwar für 50/60Hz ausgelegt, aber die Netzanschaltung ist immer ähnlich. Such mal nach ADE7753 (Analog Devices), STM STPM01 oder Cirrus CS5460A und schau mal auch die ganzen Appnotes durch.
2 Monate und unzählige Stunden später steht die Hardware fast. Ganz schöner Akt, auf ein neues System umzusteigen und sich die komplette IDE einzurichten. Derzeit sieht es so aus: Herzstück ist der STM32F407 auf dem Discovery Board. Angeschlossen ist: ein Display im 4Bit Modus an den GPIO's Taster, ebenfalls GPIO's MCP3911 über SPI2, sowohl spi als auch Versorgungsspannung galvanisch getrennt Spannung wird mit einem einfachen Spannungsteiler aus Präzisionswiderständen vorgeteilt und geht an den ADC Der Strom wird jetzt nicht mehr über einen Shunt gemessen, sondern über einen Hallsensor. Geht ebenfalls direkt an den ADC Zum Testen habe ich den STM32F4 1MHz PWM mit festem DutyCycle ausgeben lassen, angeschlossen wie hier: http://ww1.microchip.com/downloads/en/DeviceDoc/103-00398-R2.pdf Funkioniert super, für kleine Spannungen ist die Galvanische Trannung nicht notwendig. Ich war erstaunt über die Genauigkeit sogar bei höheren Frequenzen. Zu meinem Problem: Ich will nun den 10 MHz Quarz nutzen. Dafür änder ich das CONFIG Register (S. 59). Geht das überhaupt ohne Takt an Clockeingang?
1 | GPIO_ResetBits(GPIOB, GPIO_Pin_12); //CS=0 |
2 | SPI2_send(0x0C); //Adress |
3 | SPI2_send(0b00011110); //DATA |
4 | SPI2_send(0b00000000); //DATA |
5 | GPIO_SetBits(GPIOB, GPIO_Pin_12); ////CS=1 |
Leider gibt mir der ADC für die Channel nur 0 aus, ebenso für alle Register die ich auslesen will. Statt den 100nF wurden 22pF verwendet. Laut deren Rechnung aus dem Datenblatt (S.41) sollte Cload=22pF (RM=40 Ohm) betragen. Habe leider gerade keinen 10pF Kondensator, um auf die 20pF zu kommen. Was mache ich falsch? Vorher mit externer Clock klappte alles reibungslos. Welche Werte für die Kondensatoren muss ich nehmen, ist der 1MOhm Widerstand wirklich nötig, oder muss ich einfach nur den MCP3911 anders initialisieren? Die 3*8bit der SPI kommen richtig an, habe ich mit einem Oszilloskop überprüft. Letzte Lösung wäre ein Oszillator, aber ich würde gerne erfahren wo das Problem liegt. Datenblatt 3911: http://ww1.microchip.com/downloads/en/DeviceDoc/20002286C.pdf
Hallo, ein letztes Mal muss ich euch nerven, bevor der Leistungsmesser fertig ist. Angeschlossen ist der ADC Wandler über einen Spannungsteiler + Tiefpassfilter. Leider ergeben sich Differenzen beim Messen. Zum Testen messe ich derzeit nur die Spannung: Frequenz(kHz)|Leistungsmesser(V)|Oszilloskop(V) 5 |4,12 |4,1 10 |4,03 |4,1 20 |3,65 |4,1 30 |3,08 |4,1 40 |2,43 |4,1 50 |1,82 |4,1 Ich vermute es liegt am interen SINC Filter 3ter Ordnung. (Seite 34 im Datenblatt, http://ww1.microchip.com/downloads/en/DeviceDoc/20002286C.pdf) Aber auch wenn ich die Gleichung aus dem Datenblatt mit meinem Werten multipliziere komme ich nicht wirklich auf die richtigen Werte. Kann man den SINC3 Filter nicht auch ausschalten? Am Tiefpass vor dem MCP3911 liegt es nicht. Der ist entsprechend ausgelegt und wurde mit einem Oszi überprüft. Beweisbilder zeigen (leider in schlechter Qualität) das originale Signal (weiß) und das Signal am ADC (grün,kleiner) einmal bei 5kHz und bei 50kHz. Signal wird nicht nennenswert beeinflusst. Der ADC Wandler misst mit 125 kHz. Weitere Einstellungen:
1 | //Statuscom
|
2 | MODOUT 0 |
3 | DR_HIZ 1 |
4 | DRMODE 0 |
5 | DRStatus 3 |
6 | |
7 | //Config
|
8 | Prescale 0 |
9 | Oversampling Ratio 0 |
10 | Dither 3 |
11 | Az_Freq 0 |
12 | Clkext 0 |
Wenn alles fertig ist werde ich natürlich die Daten veröffentlichen. Viele Grüße
:
Bearbeitet durch Admin
Update: Laut Support ist mein Problem mit dem Chip MCP3911 nicht lösbar. Der Sin3 Filter lässt sich weder deaktivieren noch gescheit zurückrechnen. Muss mir nun Überlegen ob ich dem ganzen ein RMS Wandler vorschalte oder ein neuen ADC Wandler suche.
:
Bearbeitet durch User
Anstatt den Support zu fragen hättest Du auch das Datenblatt lesen können. Dort steht nämlich: "Additionally, the corresponding SINC filter is disabled to consume less current." Die MDAT Ausgänge lassen sich direkt an eine MCU oder DSP anschließen. Ohne Filter zu messen solltest Du auch schnell vergessen, weil bei der Konvertierung sehr viel Noise entsteht, muß wohl oder übel einen SINC- oder FIR-Filter vorschalten. Gruß
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.