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
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.
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.
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.
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!
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.
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
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.
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
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.
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)!
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.