Forum: Mikrocontroller und Digitale Elektronik MSP430F169 startet nicht


von Msp 4. (msp430_crew)


Lesenswert?

Hallo!

Habe ein Problem mit einem Olimex-Headerbord mit dem MSP430F169 drauf.
Und zwar startet dieser beim Einschalten der Versorgungsspannung nicht! 
Erst nach einem Reset läuft er los!
Hab schon alles überprüft, der Quarz schwingt...den Kondensator am 
Reset-Eingang hab ich auch schon vergrößert...hat aber alles nichts 
gebracht!
Im Programm schalte ich nur den Watchdog ab und initialisiere das 
Taktmodul.
1
WDTCTL = WDTPW + WDTHOLD;    // Watchdogtimer ausschalten
2
BCSCTL1 &= ~XTS;      // XT1 = LF
3
_BIC_SR(OSCOFF);      // XT1 anschalten
4
5
BCSCTL1 |= DIVA_0;      // ACLK = 32kHz
6
BCSCTL1 &= ~XT5V;
7
BCSCTL2 = SELM_3 + DIVM_0;    // MCLK = XT1 = 32kHz

Bitte um Hilfe!!! Danke.

von Christian R. (supachris)


Lesenswert?

Tja, das is so nen MSP430-Phänomen.....wenn die Versorgungsspannung zu 
langsam ansteigt, startet der einfach nicht. Ich bau mittlerweile nur 
noch richtige Supervisor-ICs da dran. Der kleine SOT23 stört auch 
nirgends....

von Msp 4. (msp430_crew)


Lesenswert?

Na ist ja super...ich habe schon an mir selber gezweifelt.
Was mich nur verwundert, das mein erster MSP ohne Probleme startete.

Danke Dir.

Welchen Supervisor IC nutzt Du?

von Daniel (Gast)


Lesenswert?

HI

Kann man nicht nen grösseren C an den Resetpin des Controllers machen, 
damit er erst später anfängt, wenn die Betriebsspannung voll da ist?

von Msp 4. (msp430_crew)


Lesenswert?

Hallo Leute,
ich habs jetzt. Einfach einen hochohmigen Pulldown von Xout nach Masse 
Habe jetzt 820kOhm dran und funzt prima.

von Msp 4. (msp430_crew)


Lesenswert?

Hmmm, beim Start scheint der Pulldown-Widerstand gute Dienste zu leisten 
aber leider startet der MSP jetzt manchmal bei einem manuellen Reset 
(Druck auf Reset-Taster) nicht!
Alles sehr komisch!

von Christian R. (supachris)


Lesenswert?

Nimm einen TPS3836 o.ä. das klappt sicher.

von Gast (Gast)


Lesenswert?

Warte einfach, bis der Quarz stabil läuft:
Aus den Beispielen:
1
  do
2
  {
3
  IFG1 &= ~OFIFG;                           // Clear OSCFault flag
4
  for (i = 0xFF; i > 0; i--);               // Time for flag to set
5
  }
6
  while ((IFG1 & OFIFG));                   // OSCFault flag still set?

von Msp 4. (msp430_crew)


Lesenswert?

Gast wrote:
> Warte einfach, bis der Quarz stabil läuft:

Mein Oszillator läuft auf LF (32768Hz), d.h. das OSCFault-flag 
funktioniert nicht!

von Gast (Gast)


Lesenswert?

Stimmt. Steht im Kommentar. hatte ich übersehen. Dann hilft wirklich nur 
ein Supervisor. Normal ist das aber nicht.Ich habe hier auch ein 
F169-Board, zwar selbst gemacht, aber es läuft ohne Probleme. Aber 
selbst TI empfiehlt ja oftmals Supervisor, eigentlich kein Wunder, sind 
ja die eigenen.

von Msp 4. (msp430_crew)


Lesenswert?

Gast wrote:
> Stimmt. Steht im Kommentar. hatte ich übersehen. Dann hilft wirklich nur
> ein Supervisor. Normal ist das aber nicht.Ich habe hier auch ein
> F169-Board, zwar selbst gemacht, aber es läuft ohne Probleme. Aber
> selbst TI empfiehlt ja oftmals Supervisor, eigentlich kein Wunder, sind
> ja die eigenen.

Für mich ist das ja auch das 2. Board mit dem MSP und beim ersten lief 
es wunderbar ohne Probleme!

von Christian R. (supachris)


Lesenswert?

Msp 430_crew wrote:
> Für mich ist das ja auch das 2. Board mit dem MSP und beim ersten lief
> es wunderbar ohne Probleme!

Glück gehabt. Mehr nicht.

von Msp 4. (msp430_crew)


Lesenswert?

Ein 5,1MOhm Widerstand von Xout nach Masse funktioniert noch besser!!!

Steht auch im Datenblatt für Betriebsspannungen unter 2,5V. Nur komisch 
das mein MSP an 3,3V läuft!

von Christian R. (supachris)


Lesenswert?

Dieser Widerdtand ist einfach dazu da, dass der Quarz-Oszillator bei 
niedrigen Spannungen überhaupt anläuft. Zuerst startet der MSP aber 
immer mit dem DCO, der läuft immer. Die einzig zuverlässige Möglichkeit 
ist ein Supervisor.

von Msp 4. (msp430_crew)


Lesenswert?

Also bis jetzt läuft das aber mit dem 5.1MOhm-Widerstand super! Er 
startet immer zuverlässig und beim manuellen Reset gibts auch einen 
Reset.

Wenn der DCO immer anlaufen würde, dann hätte ich doch aber nicht das 
Problem mit dem nicht-starten des MSP oder?

von Christian R. (supachris)


Lesenswert?

Der DCO läuft natürlich erst an, wenn der MSP aus dem Reset raus ist. 
Meistens passiert genau das aber nicht, wenn die Versorgungsspannung zu 
langsam ansteigt. Haben wir hier im Labor ausprobiert.

Bei dir wird eher das Problem gewesen sein, dass der LF-Oszillator nicht 
sicher anschwingt.

User Guide:

Note: LFXT1 Oscillator Characteristics
Low-frequency crystals often require hundreds of milliseconds to start 
up,
depending on the crystal.

Wenn du also den MCLK ofort auf den LFXT1 umschaltest, kann das nicht 
klappen.

von Ramon (Gast)


Lesenswert?

Hello to all, I am a student that this programming MSP430f169 for a 
project, but I have a small problem with the programming of the clock, 
my code for init the osccillator is the following one:
1
void InitOsc(void) 
2
{
3
  WDTCTL = WDTPW | WDTHOLD;   // Paramos el watchdog timer
4
  BCSCTL1 |= XTS;     // XT1 ~ high-frequency
5
  _BIC_SR(OSCOFF);     // turn on XT1 oscillator
6
7
  do     // wait in loop until crystal is stable
8
  IFG1 &= ~OFIFG;
9
  while (IFG1 & OFIFG);
10
11
  BCSCTL1 |= DIVA1 | DIVA0;     // ACLK = XT1 / 8 = 1 MHz
12
  IE1 &= ~WDTIE;       // desactiva WDT int.
13
  IFG1 &= ~WDTIFG;       // clear WDT int. flag
14
  WDTCTL = WDTPW | WDTTMSEL | WDTCNTCL | WDTSSEL | WDTIS1;
15
    // use WDT as timer, flag each. 512 pulses from ACLK
16
17
  while (~(IFG1 & WDTIFG));     // cuenta 1024 pulsos XT1 
18
19
  IFG1 &= ~OFIFG;       // clear osc. fault int. flag
20
  DCOCTL |= DCO2 | DCO1 | DCO0;
21
  BCSCTL1 |= RSEL2 | RSEL1 | RSEL0;   // MCLK = DCO, 8 MHz  (MCLK=Reloj de la CPU)
22
}
   And not because he still has to me blocked in the intruccion:
  While (~ (IFG1 and WDTIFG));
   It is supposed that on having put the Watchdog already not deberia to 
enter(approach) of indefinite form, but does it.

 Regards to all, I wait for answers

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.