www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MSP430 und Quarz


Autor: Daniel G. (daniel83)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen,

Ich habe zwei test Boards aufgebaut und habe nun Probleme mit dem Takt. 
Der Oszilator ist auf beieden Boards der gleich 8Mhz Oszilator und auf 
beiden gleich angeschlossen. (siehe Plan)
void vInitSystem( void )
{
  unsigned int i;
  WDTCTL = WDTPW + WDTHOLD;             // Stop WDT
BCSCTL1  |=  XTS ;
       


  do {
    IFG1 &= ~OFIFG;                       // Clear OSCFault flag
    for (i = 0xFF; i > 0; i--);           // Time for flag to set
  } while ((IFG1 & OFIFG) == OFIFG);      // OSCFault flag still set?


  BCSCTL2 |= SELM1+SELM0;
.....
}

void main (void)
{
uword uwOldTime;


  // init of all system- components
  vInitSystem();
  vInitTimer();
  vInitUart();


  // mainloop
  while(1)
  {

   PORT_LEDGREEN_OUT  ^= PIN_LEDGREEN;


  } // while(1)
} // void main (void)

Mit einem Board bleibe ich in der Überprüfung des Quarzes steken. die 
letzte anweisung ist dort die For() Schleife. nehme ich die Überprüfung 
heraus, so läuft das Programm ab.

Ich hoffe mit meiner Riesen while(1) Schjleife tue ich das was ich 
möchte, nämlich den Takt wenn auch halbiert ausgeben.

An einem Board kann ich an der LED, welche ich schalte 0,5 Mhz messen, 
auf dem anderen Board, das mit den Problemen bei der Initialisierung nur 
60kHz.

Ich hätte natürlich gerne die 8 MHz, die ich angeschlossen habe.

Kann mir Jemand weiter helfen?

Autor: Stefan Wimmer (wswbln)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...hast Du wirklich Quarze angeschlossen? Das Bauteil im Schaltplan 
sieht eher so nach Keramikresonator mit eingebauten Lastkondensatoren 
aus (CSTCC von Murata oder so). Da wäre ich mir so aus dem Hut jetzt 
nicht sicher, ob die Oszillatorschaltung des MSP430 dafür ausgelegt ist.

Autor: Daniel G. (daniel83)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Stefan,

Deine annahme ist korekt. es handelt sich um einen "Resonator 
CSTCC8,00MG" von Murata. Ich habe eine andere Schaltung vor mir, auf der 
auch ein Oszilator mit eingebauten Lastkondensatoren verbaut ist, 
zumindest sagt das sowohl der Schaltplan, als auch, dass auf dem Board 
keine Kondensatoren in Oszilatornahe zu finden wären. Das Referenzboard 
ist aber nicht von mir, deshalb kann ich das nur annehmen und nicht mit 
bestimtheit sagen.

Autor: Stefan Wimmer (wswbln)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe gerade mal ins Datenblatt geschaut - eigentlich müsste es mit 
Resonator gehen. Hast Du beachtet, dass Du entweder den LFXT1 Oszillator 
im HF-Mode oder den LFXT2 Oszillator verwenden musst?

Such' mal im Datenblatt der F1xx Serie nach "Sourcing MCLK from a 
Crystal".

Autor: Daniel G. (daniel83)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe mich an diesem Artikel 
http://www.mikrocontroller.net/articles/MSP430_Cod... 
orientiert. Das Beispiel für init_XT, weil XT 2 hab ich nicht 
angeschlossen. das Durfte in etwa dem eintsprechen, was in der Anleitung 
in ASM steht, das ist leider nicht meine Stärke.
; Select LFXT1 (HF mode) for MCLK
BIC #OSCOFF,SR ; Turn on osc.
BIS.B #XTS,&BCSCTL1 ; HF mode
L1 BIC.B #OFIFG,&IFG1 ; Clear OFIFG
MOV #0FFh,R15 ; Delay
L2 DEC R15 ;
JNZ L2 ;
BIT.B #OFIFG,&IFG1 ; Re−test OFIFG
JNZ L1 ; Repeat test if needed
BIS.B #SELM1+SELM0,&BCSCTL2 ; Select LFXT1CLK

das ist aus dem Manual

Autor: Stefan Wimmer (wswbln)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...und Dein Delay wird nicht vom C-Compiler wegoptimiert?

Autor: Daniel G. (daniel83)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn mir der Compiler das als nächste Anweisung beim inline debuggen 
anzeigt??

Ich glaube aber nicht, das dort der Hase begraben ist. Sondern eher 
tatsächlich in möglicherweise defekter Hardware.

Für mich interesant ist die Frage, ob die initialisierung grundsätzlich 
korekt ist?
Die 0,5 MHz genauer 0,578MHz die 8 MHz sind, weil ich diese Halbiere und 
der Prozessor je Port Pin, den er setzten muss 1 Taktbraucht, also für 
den einen Port 8Takte *2 weil ich nur wechsele?

Wenn beide WErte irgendwie zufällig sind, dann bringt mich diese 
Überlegung auch nciht weiter und ich kann nicht wirklich auf Fehlersuche 
gehen.

Autor: Daniel G. (daniel83)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich suche auch eine Möglichkeit um ordentlich den Takt zu ermittel. 
Meine LED Wariante kann ja nicht der sicherste Weg sein.
Den Oszilator kann ich am Montag vieleicht mal tauschen das ergebnis mit 
dem Schnellen Board stimmig ist und ein Software bug damit 
ausgeschlossen ist.

Autor: Stefan Wimmer (wswbln)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mal andersrum gefragt: Was steht dir eigentlich an Messmitteln zur 
Verfügung?

Autor: Daniel G. (daniel83)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe auf der Arbeit, wo auch die Boards stehen ein Digital 
Industrieal Skop von Fluke und Rowley Chrosstudio mit entsprechendem 
JTAG Interface

Autor: Jörg S. (joerg-s)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst dir die internen Clocks an den µC Pins direkt ausgeben lassen. 
Einfach den entsprechenden Pin (Siehe Datenblatt) mit PSEL umschalten.
Dann kannst du problemlos mi dem Oszi messen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.