Forum: Mikrocontroller und Digitale Elektronik Schaltung funktioniert nur, wenn AVR MK2 angeschlossen ist


von A. P. (adrian_p)


Lesenswert?

Hallo zusammen!

Ich bin relativ neu auf diesem Gebiet und versuche gerade einen 
Brushless-Controller zu entwickeln.

Bisher lief alles ziemlich gut. Jedoch muss ich mich seit neustem mit 
einem etwas ungewöhnlichen Fehler rumschlagen: Meine Schaltung 
funktioniert ohne Probleme, solange die MOSFETs nicht angesteuert 
werden. Sobald mit den MOSFETs irgendetwas gemacht wird (z.B. StartUp 
des Motors) kommt es manchmal zu einem Reset des Mikrocontrollers. Das 
seltsame ist, dass dieses Problem nicht auftritt, sobald der 'Atmel 
AVR MK2 Programmer' dran hängt. Es tritt nur auf, wenn die 
Versorgungsspannung der MOSFETS auf volle +12V geschaltet ist. Drehe ich 
die Spannung runter auf ca. +6V passiert dies nicht mehr.

Da ich nicht genau weiss, was alles im Programmer drinn ist, habe ich 
auch keine Ahnung, ob es sich um einen Firmware- oder Layout-Fehler 
handelt. Falls ihr irgendetwas benötigt (Schaltplan, Code-Ausschnitte 
etc.) lasst es mich wissen.

Weiss jemand woran dieser Reset liegen könnte? Bin neu, also seid nicht 
zu hart zu mir :)

Gruss
AP

von Oliver J. (helmo2004)


Lesenswert?

Den Schaltplan bitte.

von Werner (Gast)


Lesenswert?

Da würde ich mal ganz dringend gucken, ob die Versorgungsspannung des µC 
stabil ist.

von A. P. (adrian_p)


Angehängte Dateien:

Lesenswert?

Der Schaltplan.

Ich habe schon versucht das mit einem Oszilloskop zu testen. Entweder 
ist der Power Fail so kurz, dass ich es mit dem Oszilloskop nicht sehe, 
oder es liegt gar keiner vor.

von Werner (Gast)


Lesenswert?

Mangow W. schrieb:
> Entweder ist der Power Fail so kurz, dass ich es mit dem Oszilloskop
> nicht sehe, oder es liegt gar keiner vor.

Wie schnell hast du denn wo geguckt und hattest du ein stabiles 
Triggersignal?
Je nach Größe deiner Last und benutzdem Netzteil, könnten die Spannung 
über den 330µF schon mal zusammenbrechen.
Man könnte dem 7805 einen extra Ladekondensator am Eingang spendieren 
und den von den übrigen +12V durch eine Dioden entkoppelt. Der würde 
dann nur für den µC einen kurzzeitigen Einbruch der Eingangsspannung 
überbrücken - wenn es denn daran liegt.
Macht der µC einen echten Power-On Reset oder könnte der Brown-Out 
Detektor zuschlagen?

von SNR (Gast)


Lesenswert?

Können auch EMV Probleme sein, die wegen anderer/besserer Massung nicht 
auftreten wenn der PC bzw. MKII angeschlossen ist.Passieren könnte das 
durch Rückwirkungen der induktiven Last.Hänge mal was rein ohmsches dran 
und schau ob es da auch auftritt.

von A. P. (adrian_p)


Lesenswert?

> Wie schnell hast du denn wo geguckt und hattest du ein stabiles
> Triggersignal?

Nun ja, ich habe mit einem Speicheroszilloskop die Sec./Div. ganz 
runtergedreht und mehrmals diesen Fehler provoziert. Der Fehler ist 
aufgetreten, aber das Oszilloskop hat nie etwas angezeigt.

> Je nach Größe deiner Last und benutzdem Netzteil, könnten die Spannung
> über den 330µF schon mal zusammenbrechen.
> Man könnte dem 7805 einen extra Ladekondensator am Eingang spendieren
> und den von den übrigen +12V durch eine Dioden entkoppelt. Der würde
> dann nur für den µC einen kurzzeitigen Einbruch der Eingangsspannung
> überbrücken - wenn es denn daran liegt.

Wie gross sollte denn dieser Ladekondensator sein und wo genau soll ich 
eine Diode platzieren?

> Macht der µC einen echten Power-On Reset oder könnte der Brown-Out
> Detektor zuschlagen?

Power-On Reset = Spannung ist so tief, dass ein Reset durchgeführt wird.
Brown-Out Detektor = Spannung unterschreitet ein bestimmtes Level und 
der µC resettet von alleine

Liege ich mit dieser Annahme richtig? Zudem weiss ich auch nicht, wie 
ich die beiden Resets von einander unterscheiden könnte.

Vielen Dank für die Antwort

von A. P. (adrian_p)


Lesenswert?

> Hänge mal was rein ohmsches dran
> und schau ob es da auch auftritt.

Den Motor habe ich bis jetzt nicht angeschlossen. Die Tests habe ich nur 
mit angehängtem Speicheroszilloskop durchgeführt.

von SNR (Gast)


Lesenswert?

Achso :-)

von A. P. (adrian_p)


Lesenswert?

Der Brown-Out-Detektor ist ausgeschaltet. An ihm liegt es nicht.

von R. Reusch (Gast)


Lesenswert?

Ich möchte mich in diese Diskussion nicht einklinken. Beim Blick auf das 
Schaltbild ist mir jedoch aufgefallen, dass...
- die P-Kanal-FETs falsch verschaltet sind (Drain und Source vertauscht)
- der MCP14E6 mit 12V versorgt werden muss, damit der P-Kanal-FET auch 
sperren kann.
Im Augenblick ist es so, dass es zu einem Kurzschluss kommt, sobald ein 
n-Kanal-FET leitet -> µC wird nicht mehr mit Spannung versorgt -> 
n-Kanal-FET wird nicht mehr angesteuert -> Spannung wieder da -> 
µC-Reset -> und das ganze von vorne...

von A. P. (adrian_p)


Lesenswert?

> Ich möchte mich in diese Diskussion nicht einklinken. Beim Blick auf das
> Schaltbild ist mir jedoch aufgefallen, dass...
> - die P-Kanal-FETs falsch verschaltet sind (Drain und Source vertauscht)
> - der MCP14E6 mit 12V versorgt werden muss, damit der P-Kanal-FET auch
> sperren kann.
> Im Augenblick ist es so, dass es zu einem Kurzschluss kommt, sobald ein
> n-Kanal-FET leitet -> µC wird nicht mehr mit Spannung versorgt ->
> n-Kanal-FET wird nicht mehr angesteuert -> Spannung wieder da ->
> µC-Reset -> und das ganze von vorne...

Ich bin mir nicht sicher, ob ich den Fehler nur bei dem Schaltplan 
gemacht habe, da die MOSFETS eigentlich gut funktionieren. Nur sobald in 
einem schnelleren Takt zwischen ihnen umgeschaltet wird, tritt das 
Problem auf.

Die MOSFETs sind wie folgt beschaltet:

P-Kanal:
- SOURCE an +12V
- DRAIN an die Phase (Motor)
- GATE an den MOSFET-Driver

N-Kanal:
- SOURCE an GND
- DRAIn an die Phase (Motor)
- GATE an den MOSFET-Driver

Sollte meiner Meinung nach stimmen, oder liege ich da falsch?

Gruss, AP

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Mangow W. schrieb:
> P-Kanal:
> - SOURCE an +12V
> - DRAIN an die Phase (Motor)
> - GATE an den MOSFET-Driver
>
> N-Kanal:
> - SOURCE an GND
> - DRAIn an die Phase (Motor)
> - GATE an den MOSFET-Driver
>
> Sollte meiner Meinung nach stimmen, oder liege ich da falsch?

Wenn sie wirklich so verschaltet sind stimmts. Das Schaltbild sagt, das 
die P-Kanals verkehrt herum sind. (Siehe die Recovery Diode).
Wenn die Schaltung ohne Last, aber bei hoher PWM Frequenz abschmiert, 
stimmen höchstwahrscheinlich die Totzeiten nicht, bzw. sind zu kurz. 
Typisch sind P-Kanal MOSFets sowieso langsamer. Bedenke bitte auch, das 
die MCP14E6 invertieren.
Zusätzlich würde ich den Motorkreis auch verdrosseln, um 
Spannungsspitzen aus der Gegen-EMK des Motors vom Regler und dem Rest 
der Schaltung fernzuhalten. Ausserdem sind Pullups an allen IN B zu 
empfehlen, um einen definierten Zustand bei unkonfiguriertem Port zu 
haben.

von A. P. (adrian_p)


Lesenswert?

> Wenn sie wirklich so verschaltet sind stimmts. Das Schaltbild sagt, das
> die P-Kanals verkehrt herum sind. (Siehe die Recovery Diode).

Wusste nur nicht, wie man bei TARGET Bauteile spiegelt, darum hab ich 
die MOSFETs falsch rum eingebaut.

> Wenn die Schaltung ohne Last, aber bei hoher PWM Frequenz abschmiert,
> stimmen höchstwahrscheinlich die Totzeiten nicht, bzw. sind zu kurz.

Die Schaltung schmiert ohne Last auch bei einem 1000ms-Delay zwischen 
den Kommutierungen ab. Meinst du mit Totzeit die Zeit zwischen den 
Kommutierungen?

> Typisch sind P-Kanal MOSFets sowieso langsamer. Bedenke bitte auch, das
> die MCP14E6 invertieren.

Die MOSFETs einzeln getestet, funktionieren eigentlich ziemlich gut. Nur 
wenn ich die StartUp-Sequenz ausführe kommt es ohne Programmer zum 
Reset.

> Zusätzlich würde ich den Motorkreis auch verdrosseln, um
> Spannungsspitzen aus der Gegen-EMK des Motors vom Regler und dem Rest
> der Schaltung fernzuhalten.

Was meinst du mit Motorkreis verdrosseln? Der Motor war bisher zwar noch 
nicht dran, aber so kann ich vielleicht zukünftige Fehler beheben.

Ich habe stark den Spannungswandler in Verdacht. Kann es sein, dass 
dieser unter der Last der vielen MOSFET-Driver kurzzeitig den Geist 
aufgibt?

Gruss, AP

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Mangow W. schrieb:
> Kann es sein, dass
> dieser unter der Last der vielen MOSFET-Driver kurzzeitig den Geist
> aufgibt?

Im Moment hängt ja keine Last dran. Deswegen vermute ich ein 
'Shoot-Through', bei dem sowohl der obere als auch der untere MOSFet der 
Halbbrücke kurzzeitig beide durchgeschaltet sind, etwas, das man 
natürlich unbedingt vermeiden muss. Sobald nämlich eine stärkere 
Stromquelle als ein Labornetzteil (z.B. ein Akku) angeschlossen wird, 
sind die MOSFets in höchster Gefahr, bzw. der Shunt brennt ab. In dem 
Moment landen 12Volt über 680 Ohm auf dem ADC Eingang, und das mag der 
auch nicht.

Die Totzeit ist also eine Wartezeit zwischen dem Ausschalten einer 
Kommutierung und dem Anlegen der nächsten. Prinzipiell ist bei deiner 
Schaltung von Nachteil, das du verschiedene Typen nimmst, also die 
Totzeit entsprechend den Typen anpassen musst. Die Gate-Turnoff Zeit 
entnimmst du dem Datenblatt - dies ist die Zeit vom Wegnehmen der Gate 
Spannung bis zum vollständigen Sperren des MOSFets.
Je nach Software musst du auch unbedingt undefinierte Zustände auf den 
GateDrivern vermeiden. Also füge noch die oben erwähnten Pullups an den 
IN B (N-Kanal Treibern) hinzu.
AVR447 enthält übrigens ein nettes Beispiel dafür, wie man mit 3 Timern 
eine gute PWM erzeugt und dann sogar noch Sinusmodulation anschaltet. 
447 ist für Motoren mit Sensoren, und ich glaube AVR446 für Motore ohne 
Sensoren.
Ach so, die Drossel. Ja, eine kräftige Spule im 12 Volt Kreis zu den 
MOSFets verhindert, das Umschaltspitzen zurück auf den Rest sproddeln. 
Direkt an den MOSFets sollten auch noch ein paar Kerkos und evtl. sogar 
ein Elko sein zum Sieben der 12 Volt. Nicht für den Motor, sondern um 
den Rest der Schaltung zu schützen.

von A. P. (adrian_p)


Lesenswert?

> Die Totzeit ist also eine Wartezeit zwischen dem Ausschalten einer
> Kommutierung und dem Anlegen der nächsten. Prinzipiell ist bei deiner
> Schaltung von Nachteil, das du verschiedene Typen nimmst, also die
> Totzeit entsprechend den Typen anpassen musst. Die Gate-Turnoff Zeit
> entnimmst du dem Datenblatt - dies ist die Zeit vom Wegnehmen der Gate
> Spannung bis zum vollständigen Sperren des MOSFets.
>
> Also füge noch die oben erwähnten Pullups an den
> IN B (N-Kanal Treibern) hinzu.
>
> Ach so, die Drossel. Ja, eine kräftige Spule im 12 Volt Kreis zu den
> MOSFets verhindert, das Umschaltspitzen zurück auf den Rest sproddeln.
> Direkt an den MOSFets sollten auch noch ein paar Kerkos und evtl. sogar
> ein Elko sein zum Sieben der 12 Volt. Nicht für den Motor, sondern um
> den Rest der Schaltung zu schützen.

Vielen Dank für die Tipps! Ich werde diese Umsetzen sobald es geht.

Ich habe übrigens den Fehler gefunden. Schlussendlich sind es immer die 
dümmsten Fehler, die einem passieren. Die Verbindung zwischen dem 
Spannungswandler und dem Mikrocontroller hatte ihre Macken => schneller 
Spannungseinbruch.

Aber trotzdem vielen Dank für die Posts und die Verbesserungsvorschläge!

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.