Forum: Mikrocontroller und Digitale Elektronik Ports einstellen beim debuggen


von Moe (Gast)


Lesenswert?

Hallo Forum,

Habe ein Problem beim debuggen...
Ich nutze das Atmel Evaluation Kit ATAVRMC320 mit AVR Studio4.17 mit 
WinAVR. Auf dem Board ist ein ATmega32M1 Controller. Steuere damit ein 
BLDC-Motor an.
So jetzt zu meinem Problem: Wenn ich das Programm laufen lasse, der 
Motor dreht sich und ich dann auf Reset drücke versucht das Programm 
noch die nächste Kommutierung auszuführen und der Motor fängt an zu 
zittern. Dazu kommt noch das der Strom den der Motor zieht auf kurzeitig 
8A hoch geht und ich mir dadurch schon paar mal die Sicherung 
zerschossen hab bzw. mein Netzgerät geht in die Begrenzung.

Habe mir auch schon das Bsp von Atmel angeschaut. Da tritt dieses 
Problem nicht auf und wenn man da beim debug auf reset drücke dann 
werden alle Ausgänge auf low gestetz und der Motor läuft schon ruhig 
aus.

Jetzt meine Frage ist das ein Fehler bei mir Programm oder sind da 
irgend welche Einstellungen bei mir Falsch?
Noch kurz zu eurer Info ich habe noch nicht viel mit µC gemacht aber 
meine jetztige Aufgabe erfordert es von mir.

Hoff ihr könnt mir Helfen.

Gruß Moe

: Verschoben durch Moderator
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Moe schrieb:
> Jetzt meine Frage ist das ein Fehler bei mir Programm oder sind da
> irgend welche Einstellungen bei mir Falsch?

Was sagt denn das Datenblatt deines Controllers dazu?

Normalerweise sind bei den üblichen Controllern alle Pins nach einem
/RESET im tristate-Zustand (bzw. als Eingang geschaltet), allerdings
könnten diese PWM-Controller Sonderschaltungen besitzen, bei denen
die PWM-Kanäle nach dem Reset andere Zustände einnehmen, weil der
Zustand "hochohmig" in der Applikation nicht wünschenswert ist.

Die Details müsste aber das Datenblatt verraten.

Kannst du nicht den Motorstromkreis von der Versorgung des Controllers
trennen und den Motor strombegrenzt mit einem Labornetzteil betreiben?

von Peter D. (peda)


Lesenswert?

Moe schrieb:
> Habe mir auch schon das Bsp von Atmel angeschaut. Da tritt dieses
> Problem nicht auf und wenn man da beim debug auf reset drücke dann
> werden alle Ausgänge auf low gestetz und der Motor läuft schon ruhig
> aus.

Laut Datenblatt ist Low-Pegel unmöglich:

"The port pins are tri-stated when reset condition becomes active, even 
if no clocks are running."


Willst Du bei Reset Low, mußt Du externe Pulldowns ranpappen.


Peter

von Moe (Gast)


Lesenswert?

Motorstromkreis ist seperat über ein Labornetzteil und der Strom ist 
begrenzt so das nichts mehr passieren kann.

Was ich nicht verstehe ist wenn ich das Atmelbsp AVR192 debugge und auf 
Pause drücke sind die Ausgänge des PSC-Moduls sofort auf 0V, d.h. sie 
geben keine PWM mehr aus.

Bei meinem Programm jedoch ist das nicht der Fall. Wenn ich dieses 
debugge und auf Pause drücke geben die PSC-Ausgänge weiterhin die PWM 
aus.
Ist das normal oder habe ich Fehler in meinem Programm oder sind irgend 
welche Einstellungen falsch?

Hätte es gerne auch das bei mir dann keine PWM mehr ausgegeben wird da 
der Motor den ich angeschlossen dann versucht sich weiter zu drehen es 
aber nicht geht da das Programm angehalten worden ist. Und ich glaube 
nicht das es dem Motor gut tun wenn er dann Pfeift und Quitscht.

Hoff ihr könnt nachvollziehen was ich meine und mir helfen...

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Nun schau doch endlich mal ins Datenblatt, Kapitel 28.3.

von Peter D. (peda)


Lesenswert?

Moe schrieb:
> Was ich nicht verstehe ist wenn ich das Atmelbsp AVR192 debugge und auf
> Pause drücke ...

Dann würde ich mal sagen, "Pause" macht irgendwas, aber bestimmt keinen 
Reset.
Was macht denn "Pause"?

Vielleicht hält der Debugger nur die Mainloop an und läßt die Interrupts 
weiter laufen.


Es gibt Programme, die mögen es nicht, wenn man sie unerwartet irgendwo 
anhält, z.B. Regelkreise.
Da sollte man besser keinen HW-Debugger nehmen, sondern Debugausgaben 
einprogrammieren, die den Ablauf nicht stören.


Peter

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.