mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Taktrate LPC2134


Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen,
ich programmiere zur Zeit einen ARM7-LPC2134. Ich verwende für die 
Takterzeugung einen externen Oszillator mit 14,7456 MHz. Die Taktrate, 
die der Controller allerdings intern erzeugt liegt ca. um den Faktor 1,2 
höher. Wie kann dann sein?? Ich habe keinen Prescaler eingeschaltet.
Über Antworten würde ich mich sehr freuen.
Gruß
Michael

Autor: Robert Teufel (robertteufel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich nehme mal an Du hast Startup Dateien von Keil oder IAR 
benuetzt. Die schalten normalerweisse die PLL ein. Allerdings ist ein 
Faktor 1.2 SEHR merkwuerdig.

Da gibt es ausser der PLL nichts was den Takt nach oben schrauben 
koennte. Hast Du mal den clock am Eingang gemessen? Ist manchmal etwas 
schwierig weil der mit einer zusaetzlichen Lastkapazitaet evtl. anders 
ist als ohne. Ich denke an eine Schwingung auf der Oberwelle, was auch 
noch einen anderen Takt verursachen koennte, der waere dann allerdings 
3-fach oder so.

Gruss, Robert

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja ich habe den Keil-Compiler und auch die dazugehörige startup-Datei 
verwendet.
Den Takt habe ich gemessen, der ist tatsächlich exakt 14,7456 MHz. Die 
PLL habe ich auch ausgeschaltet.
Wenn der interne Takt ein ganzzahliges Vielfaches wäre, dann könnte ich 
es ja irgendwo verstehen...

Gruß Michael

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie hast du die 1,2 gemessen ?

Autor: Compy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich denk, du schwabbelst an einem Port-Pin um den Takt zu "messen", 
oder?
Vielleicht bei der Rückrechnung eine Instruktion übersehn? Taktzahlen 
für die verwendeten Instruktionen alle richtig eingesetzt?

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ich denk, du schwabbelst an einem Port-Pin um den Takt zu "messen",
>oder?

Ja.
Ich will den Timer Interrupt so einstellen, dass er alle 100 us auslöst. 
Verknüpfe dann den Interrupt mit einem Port-Pin (LED). Laut Rechnung 
müsste das Timer-Register dann auf
0,0001 sec * 14745600*1/sec = 1474,56 = 0x5C3 eingestellt sein. Bei 
diesem Wert löst der Interrupt dann aber ca. alle 80 us aus. Ich habe 
den Wert dann hingemurkst und auf 0x748 eingestellt um die 100 us zu 
erhalten.

>Wie hast du die 1,2 gemessen ?

Der Faktor 1,2 ist dann einfach der Faktor von 80 us auf 100 us 
(ungefähr).

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.