MSP430 DCO

Gast #40084
Hallo,
versuche schon seit geraumer Zeit den DCO auf eine hohe Taktrate(6,7,8 
MHZ) zu stellen, klappt bei mir aber nicht so richtig. Schaffe mit 
externem Widerstand max. 4MHZ und internem ca.1,2MHZ. Habe RSEL auf 7 
und DCO auf 7 eingestellt und Modulator schon mehrfach verändert. 
Vielleicht kann mir da jemand helfen.
Gast
bei welcher Spannung denn?
1.2MHZ intern erscheint mir sehr wenig.

hab mal folgende (bei 3.6 Volt) Werte gemessen:

    RSEL  |RSEL2  |RSEL1  |RSEL0  |MIN  |MAX
    ---------------------------------------------
    1  |0  |0  |1  |0.12  |0.25
    2  |0  |1  |0  |0.20  |0.41
    3  |0  |1  |1  |0.33  |0.68
    4  |1  |0  |0  |0.56  |1.14
    5  |1  |0  |1  |0.95  |1.94
    6  |1  |1  |0  |1.54  |3.16
    7  |1  |1  |1  |2.46  |5.05

externen Widerstand habe ich noch nie ausprobiert.
Gast
Erst mal danke für die Antworten. Hatte Resl und DCOCTL wie von Dir 
beschrieben eigestellt. Was meinst Du mit min und max, je nach 
Einstellung von DCOx ODER?

BCSCTL1 |=( RSEL2 | RSEL1 | RSEL0 );
DCOCTL |= ( DCO0 | DCO1 | DCO2 );

Habe mit die Betriebsspannung auch noch mal erhöht, da ich mit 3V 
gearbeitet habe. Eine leichte Erhöhung der Taktfequenz(50 bis 60KHZ) war 
fest zustellen, mehr aber auch nicht.
Gast
habs nicht mehr genau im Kopf, aber in den unteren Bit's von DCOCTL war 
doch auch noch irgendwas für die Geschwindigkeit...
zu MIN und MAX, die Widerstande stellen den groben Bereich ein, DCOCTL 
dann den Rest, 0xFF war meiner Meinung nach das schnellste, damit lief 
mein MSP430 mit ca 5MHz.

Wo steht eigentlich welche Werte man für den externen Widerstand nehmen 
kann? Hab ich nie gefunden...
Gast
Habe gerade mal einen externen 100KOhm Widerstand ausprobiert,
damit kommt der MSP430F123 locker über 10Mhz!
Wie stabil er dann noch läuft kann ich dir aber nicht sagen :)

clearBit(P2DIR , BIT5 );    //Pin

setBit(P2SEL, BIT5);       // Pin Funktion select

setBit(BCSCTL2,DCOR); // externen Widerstand ein

setBit(BCSCTL1, RSEL0 + RSEL1 + RSEL2);  // interne Widerstände ein

DCOCTL = 0xdc;       // ca. 10MHz schon bei 0xdc!

nebenbei soll die Frequenz mit externem Widerstand auch noch stabiler 
sein.
Gast
Laut Doku sollen auch mehr als 5 MHz möglich sein, wenn man einen 
externen Widerstand benutzt. Da steht 5MHz bei 200kOhm und 10 MHz bei 
100kOhm. Nachzulesen in slau049c Seite 4-8. Ich bin gerade dabei eine 
deutschsprachige Referenz zum MSP430f149 zusammenzustellen die dann im 
Netz landet, wenn es was wird. (Mitte/Ende Juli auf 
www.microkontroller.de)
Gast
Nochmal ich. Mir ist die Bedeutung des DCO-Modulators nicht ganz klar. 
Es wäre super wenn mir das einmal jemand erklären könnte, damit ich das 
in die Referenz aufnehmen (und auch selber anwenden) kann. Weiterhin 
übernehme ich mal die Tabelle von Lanius in diesem Thread. Wenn Du etwas 
dagegen hast melde Dich bitte bei mir.
Gast
was genau verstehst du denn nicht?
ich verstehe auch nur was man wissen muss :)

also RSELx steuern den Strom in den Taktgenerator und damit den groben 
Takt.

DCOx steuert den Takt dann feiner und

MODx am feinsten (schaltet x-mal zwischen zwei DCOx- Einstellungen hin 
und her).

da DCOx und MODx alle sinnvoll in DCOCTL untergebracht sind kann man 
sagen das RSEL den groben Tackt einstellt und DCOCTL den feinen.
Gast
Also ich hatte es auch so verstanden daß man damit irgendwie seine Takte 
synchronisieren kann. Ich meine, wenn ich einen 32,768 kHz Oszillator 
habe und eine ungenaue DCO.. kann ich dann den Modulator verwenden um 
einen genauen DCO-Takt zu bekommen in dem der DCO alle x Zyklen mit dem 
32 kHz Takt synchronisiert wird ? Und wenn ja, wie kriegt man das hin ?
Gast
zB den Watchdogtimer mit dem 32Khz-Clock 1 Sekunde laufen lassen, TimerA 
mit dem DCO-Tackt, dann TimerA-Interupts zählen und im Watchdoginterupt 
gucken ob zu viele oder zu wenige Interupts da waren und DCOCTL 
vergrößern oder verkleinern.
Gast
Hallo zusammen,

warum verwendet Ihr denn den DCO? Ich arbeite mit einem Quarzoszillator
an Pin 53 (XT2). Funktioniert sehr gut. Momentan betreibe ich einen
2,5MHz Kristall, habe aber auch schon mit 8MHz (Maximale Taktfrequenz)
gearbeitet.

Gruß Bitwise
Gast
Ich muß aus Kostengründen auf einen externen Quarz verzichten, daher
DCO.

Vielleicht kann ich mir noch einen 32kHz Quarztakt von einem anderen
Bauteil auf der Platine klauen, aber schnell genug wäre ich damit eh
nicht, also Quarz nur für ACLK, DCO für MCLK ;-)

Gruß m@is

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 23 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.