Forum: Mikrocontroller und Digitale Elektronik ADC für Strommessung an BLDC


von Peter (Gast)


Lesenswert?

Hallo,
ich möchte mit Hilfe eines ACS773 den Strom in der Phase eines BLDC 
messen. Zur weiteren Verarbeitung soll der Spannungsausgang an einem uC 
ausgewertet werden.

1. Die Auswetung mit einem atmega328p integriertem ADC funktioniert. Die 
Auflösung von 10-bit ist für die Auswertung nicht wirklich brauchbar.

Also benutze ich einen LTC1859 ADC welcher via SPI an die MCU 
angeschlossen wird.

2. Messung bei Stillstand ist sehr gut. Aber sobald ich den Motor 
einschalte, schwanken die Werte extrem.

Ich denke, das kommt von den Einschaltstörungen des BLDC. Wie kann ich 
nun am besten diese Störungen vom ADC fernhalten?
Aufgebaut ist zur Zeit alles auf einem Steckbrett.

Ich bin für hilfreiche Tips dankbar.

BG
Peter

von Ingo Less (Gast)


Lesenswert?

Peter schrieb:
> Wie kann ich
> nun am besten diese Störungen vom ADC fernhalten?
In der Mitte des PWM-Pulses messen, dafür ist der Center-Aligned-Mode 
gedacht. Das synchronisiert die Messung automatisch auf die PWM und der 
Abtastwert ist immer im "EIN" oder je nach PWM-Polarität "AUS" Zustand 
des Schalters und das auch noch mittig.

von Peter (Gast)


Lesenswert?

Danke für die schnelle Antwort. Ich habe bereits probiert mit einer 
Wartezeit von 20 mikrosekunden nach dem Schalten zu Messen, leider 
bleibt das Verhalten gleich, auf dem Oszi sind auch keine Spikes auf der 
Strommessung zu sehen.

von Peter (Gast)


Lesenswert?

Guten Morgen :)

Die Messung in die Mitte der PWM zu setzen brachte leider keinen Erfolg, 
es kommt nach wie vor immerwieder zu "GRenzausschlägen". Der 
Stromausgang zeigt am Oszi jedoch keine Auffälligkeiten, auf der Masse 
sind nur die EIN- / AUSSchaltstörungen zu sehen. Die Messung erfolgt 
aber dazwischen.

von Ingo Less (Gast)


Lesenswert?

Peter schrieb:
> schwanken die Werte extrem.
Kannst du das irgendwie zeigen/visualisieren?

von Peter (Gast)


Lesenswert?

Ingo Less schrieb:
> Kannst du das irgendwie zeigen/visualisieren?

Ich habe zwar versucht es mit Serialausgabe darzustellen aber dann 
erwische ich nicht jeden Wert, Aber ich habe da bereits gesehen, dass es 
Ausschläge gibt, welche so nicht möglich sind. Des weiteren habe ich als 
Debugmöglichkeit eine LED angeschlossen, welche beim überschreiten des 
SOLL-Wertes angehen soll. Diese Leuchtet jedoch auch unter dem Sollstrom 
auf, wenn die Maschine im Leerlauf ist und dieser Sollwert defeinitiv 
nicht erreicht wird!

von Peter (Gast)


Angehängte Dateien:

Lesenswert?

Anbei ein Screenshot vom Oszi wenn der Motor läuft.

GELB: Zeigt mit der steigenden Flanke den Beginn der ADC Conversation 
und mit der fallenden Flanke das Ende.
BLAU: Zeigt das Rauschen der Masse, wenn der Motor läuft.

von Klaus (Gast)


Lesenswert?

Peter schrieb:
> 1. Die Auswetung mit einem atmega328p integriertem ADC funktioniert. Die
> Auflösung von 10-bit ist für die Auswertung nicht wirklich brauchbar.

Warum reicht es nicht, einen Sensor mit +-1% Fehler mit einem ADC mit 
0,1% Auflösung auszulesen? Da ist doch schon die letzte dezimale Stelle 
falsch.

MfG Klaus

von Peter (Gast)


Lesenswert?

Klaus schrieb:
> Warum reicht es nicht, einen Sensor mit +-1% Fehler mit einem ADC mit
> 0,1% Auflösung auszulesen? Da ist doch schon die letzte dezimale Stelle
> falsch.

Weil ich mehr Stufen haben möchte um diverse Einstellungen vor zu 
nehmen. Mir reicht es nicht zwischen 6 und 8 Ampere zu unterscheiden 
sondern lieber zwischen 6,1 und 6,2.

von Klaus (Gast)


Lesenswert?

Peter schrieb:
> Mir reicht es nicht zwischen 6 und 8 Ampere zu unterscheiden

Setzen wir dazu mal eine Auflösung von 1A an, dann brauchst du dazu 3 
Bit.

Peter schrieb:
> sondern lieber zwischen 6,1 und 6,2.

Also 61 bzw 62 bei 0,1A pro bit. Das bekommst du bei 6 Bit Auflösung 
hin.

!0 Bit reichen also allemal.

MfG Klaus

von Peter (Gast)


Lesenswert?

Klaus,

der zu erwartende Strombereich ist 10 - 200 Ampere, Deshalb reichen die 
10 bit nicht.

von Peter (Gast)


Lesenswert?

Es geht ja auch nicht darum die Auflösung zu reduzieren, auch wenn es 
ausreichend wäre, sondern um eine Lösung um das Rauschen in den Griff zu 
bekommen.

Wäre für Hinweise und Vorschläge sehr dankbar.

von Dietrich L. (dietrichl)


Lesenswert?

Peter schrieb:
> Wie kann ich
> nun am besten diese Störungen vom ADC fernhalten?

Als erstes wäre ein "richtiges" Layout wichtig:

- ist der GND vom ACS773 und ADC getrennt geführt vom Digitalteil und 
den Leistungspfaden?
=> GND vom ACS773 mit GND des ADC (AGND) verbinden, und nur an dieser 
Stelle (GND des ADC) gibt es eine Verbindung zum Digital-GND.
- wo verlaufen die Leiterbahnen?
=> Das Analogsignal zwischen ACS773 und ADC sollte kurz sein und nicht 
durch verstörte Bereiche laufen. Ggf. kann man die Leitung auch 
abschirmen oder auf einer Leiterplatte mit AGND-Leitungen 
"stabilisieren" (rechts + links + Rückseite).

Wenn das nicht reicht, könnte man ein Filter vor den ADC bauen, z.B. ein 
einfaches RC-Filter.

Übrigens: Ist VCC von ACS773 und ADC zumindest mit Stützkondensatoren 
abgeblockt und am besten noch mit LC-Filter vom Digitalteil getrennt?

> Aufgebaut ist zur Zeit alles auf einem Steckbrett.

Das ist allerdings ein sehr ungünstige Umgebung (siehe oben)!

von Peter (Gast)


Lesenswert?

Danke für die Hinweise. Werde morgen den Analogteil „kürzer“ aufbauen 
und die Massen so wie oben beschrieben verbinden. Wenn das nicht zu 
besseren Werten führt werde ich um eine Proto Platine nicht drum herum 
kommen.

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
Noch kein Account? Hier anmelden.