Forum: Mikrocontroller und Digitale Elektronik Problem mit Reset beim Trennen der Versorgung


von Resetter (Gast)


Lesenswert?

Hallo zusammen!

Ich habe ein Problem mit meinem Mikrocontroller und zwar geht es um den 
Reset. Es ist ein MSP430F2011.

Der Reset ist über 47k an Vcc und hat momentan einen 2n2 Kondensator 
gegen Masse.

Wenn ich die Versorgung trenne, dann wackelt der uC kurz an einem Pin, 
bevor er ausgeht. Das sollte ja eigentlich nicht sein. Es stellt auch 
ein Problem da, da dort ein Motor dran hängt, welcher dann kurz zuckt.

ABER: Wenn ich den Programmieradapter mit dran habe, so passiert das 
nicht (ez430f2013). Also der beeinflusst den Reset irgendwie in 
positiver Weise.


Kann mir da vielleicht einer helfen?

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Wie hast du den brownout detector des MSP430 programmiert/eingestellt?

von Resetter (Gast)


Lesenswert?

Ist der nicht immer aktiv?!!!

von Resetter (Gast)


Lesenswert?

Ich dachte, Versorgung weg -> zu wenig Spannung -> alles hochohmige 
Eingänge

von Alexander V. (avogra)


Lesenswert?

Hallo,
wenn der Programmieradapter mit an der Versorgung hängt, wird natürlich 
mehr Leistung entnommen -> evtl. sinkt dadurch die Versorgungsspannung 
beim abstecken schnell genug, damit der MSP nicht mehr anläuft? 
Vielleicht macht der Adapter auch seltsame Sachen am Reset, wenn man ihm 
langsam den Saft abdreht. Oder er benutzt ne Brown-Out-Detection, so 
dass sich der Programmieradapter irgendwann abschaltet, die 
Versorgungsspannung geht nochmal hoch, der MSP läuft nochmal kurz an.
Woran auch immer es liegt: Brown-Out-Detection ist nie ne schlechte 
Idee. Hat der MSP sowas?

Gruß, Alex

von Resetter (Gast)


Lesenswert?

Ja, alle Modelle haben einen! Nur wie gesagt, dachte das wäre 
standardmäßig eingeschaltet, so hatte ich es zumidnest verstanden - 
scheinbar hab ich das falsch verstanden.

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Jetzt hast du mich erwischt. Ist anders als beim AVR, beim MSP430, wenn 
vorhanden, dann immer aktiv.

[zitat http://focus.ti.com/lit/ml/slad011/slad011.pdf]
The MSP430 introduced the industry’s first ultra-low power BOR 
protection feature.
The brown-out reset (BOR) function forces a MCU into reset both on 
power-up when VCC rises and when VCC falls below the normal operating 
range, but not fully to ground.
While BOR protection is not unique, the MSP430 features a unique 
low-power implementation that is in the nA range. This makes BOR 
practical for all applications including those that are extremely low 
power. The MSP430 BOR function is so low power that it is always-on and 
active even in all low-power modes. This ensures the most reliable 
performance possible.
Competitor’s BOR protection is in the 10-50uA range, which is not usable 
in ultra-low power battery powered applications. This leaves the 
application vulnerable to BOR conditions.
[/zitat]

Allerdings gibt es Berichte über "mäßige Funktion" und "besser externen 
Resetcontroller nehmen" z.B. Beitrag "MSP430-Anfängerfrage"

ADD:
Hinweise zum externen Supply Voltage Supervisor (SVS)
http://focus.ti.com/lit/ml/slap126/slap126.pdf

von Resetter (Gast)


Lesenswert?

So ne scheisse! Aber vielen Dank!

von Resetter (Gast)


Lesenswert?

Hat den jemand für mich einen Tip bezüglich Reset-Baustein, welcher auch 
schon bei 3V Versorgung arbeitet?

von Resetter (Gast)


Lesenswert?

Habe nen 7702 gefunden, aber der is mit der Spannung auch schon eher 
grenzwertig

von Ralf (Gast)


Lesenswert?

Da gibts viele... MAX812, etc.

Ralf

von Wolfgang H. (frickelkram)


Lesenswert?

Darf ich mal nach fragen wie der Motor Treiber angeschlossen ist? Hängt 
der zufällig mit an einem Pin für den Programmieradapter? Kann es sein 
dass der Ausgang hochomig wird und dein Treiber dann kurzeitig einen 
nicht definierten Zustand am Eingang hat?
Es könnte sein dass Dein Programmieradaper für einen definierten Pegel 
sorgt und darum nichts passiert. Wenn dem so ist dann hilft ganz einfach 
ein Widerstand um den Treiber sicher zu sperren wenn der Ausgang 
hochomig wird.

von Resetter (Gast)


Lesenswert?

Wolfgang Heinemann schrieb:
> Wenn dem so ist dann hilft ganz einfach
> ein Widerstand um den Treiber sicher zu sperren wenn der Ausgang
> hochomig wird.

Also erstmal nein, ich programmiere über SBW - die Pins kann man 
garnicht anders zweckentfremden. Daran liegt es also nicht.

Zu deinem Text - meinst du damit Widerstände von den Basen nach GND? Ich 
benutze ein ULN2003, der hat die Pull-Down-Rs ja schon integriert, der 
definierte Pegel sollte da sein.

Aber das mit dem Programmiergerät wundert mich auch.

von Resetter (Gast)


Lesenswert?

Ich muss das hier leider nochmal aufwärmen...

Kann sich vielleicht jemand mal meine Initialisierung der Ports 
angucken? Ob da vielleicht der Fehler liegt? Das ist hier echt ein 
Problem mit meinem zuckenden Motor beim Aus- wie auch beim Einschalten.

Für alle, die die Thematik hier nicht kennen, ganz kurz:

MSP430F2011 wackelt beim Ein- und Ausschalten an einem Pin, an dem ein 
Motortreiber hängt. Der Motor zuckt dadurch leider kurz, was sehr stört.

Der interne Brownout des uCs scheint daran Schuld zu sein - einen 
externen kann ich leier nicht mehr einbauen, da alles schon auf der 
Platine sitzt. Ich hatte beim experimentieren immer den Debugger dran - 
mit Debugger verläuft der Reset ohne Probleme, kein Mux.

Ist meine Initialisierung so korrekt?
1
  P1SEL = 0x00; // Port 1 GPIO [1100 0000]
2
  P1REN = 0x3F; // P 1.0,1,2,3,4,5 Pull-Rs [0011 1111]
3
  P1OUT = 0x3C; // P 1.0,1 Pull-Down-Rs; P 1.2,3,4,5 Pull-Up-Rs [0011 1100]
4
  P1DIR = 0xC0; // P 1.0,1,2,3,4,5 Eingang; P 1.6,7 Ausgang
5
  P1IFG = 0x00; // Port 1 Interrupt-Flags loeschen
6
  
7
  P2SEL = 0x00; // Port 2 GPIO [0000 0000]
8
  P2REN = 0xC0; // P 2.6,7 Pull-Rs [1100 0000]
9
  P2OUT = 0xC0; // P 2.6,7 Pull-Up-Rs [1100 0000]
10
  P2DIR = 0x00; // Port 2 Eingang [0000 0000]
11
  P2IFG = 0x00; // Port 2 Interrupt-Flags loeschen

Ich schreib erst an den Port und deklariere ihn dann als Ausgang.

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.