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.
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....
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?
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!
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.
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!
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!
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.
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?
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.
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
voidInitOsc(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